Schulung Unit Testing / Testgetriebene Entwicklung / Test Driven Development (TDD)

Beschreibung/Inhalt

Seit einigen Jahren ist die testgetriebene Softwareentwicklung in aller Munde. Durch diesen Ansatz der Softwareentwicklung entsteht Software von sehr hoher Qualität. Eine hohe Testabdeckung verhindert Fehler schon bei der Erstellung und erleichtert auch die Änderung bestehender Software.

Darüber hinaus hat das testgetriebene Vorgehen einen starken Einfluss auf das Design der Software. Es entsteht eine bessere interne Struktur, wodurch die Software langfristig wartbar und durch systematisches Refactoring auch änderbar bleibt. Dieses Seminar vermittelt die wichtigsten Entwurfsmuster und Prinzipien für ein solches Design.

Eine gute Testgetriebene Entwicklung ist jedoch schwieriger umzusetzen, als man im ersten Moment denkt. Es erfordert einiges an Erfahrung. Deshalb steht ein praxisnahes Fallbeispiel im Mittelpunkt der Schulung, an dem Sie unter intensiver Betreuung das Gelernte direkt anwenden. Dabei lernen Sie auch den dazugehörigen Entwicklungsprozess und die unterstützenden Werkzeuge kennen.

Neben der eigentlichen Testprogrammierung erlernen Sie auch wichtige Elemente der Testmethodik und Testfallfindung. Dazu zählen Themen wie: Grenz- und Extremwertanalyse, Äquivalenzklassenbildung und deren Anwendung, sowie zustandsbasiertes Testen. Zudem werden Techniken wie Code Coverage und Fehlerinjektion angewendet, um die Qualitätsbeurteilung der erstellten Tests zu unterstützen. Das Erstellen guter Testfälle ist nicht trivial, aber mit ein paar grundlegenden Techniken kann man sehr schnell wesentliche Fortschritte machen!

Ein weiterer wesentlicher Aspekt ist das Erstellen einer Testfallumgebung, die die Testfallausführung erleichtert oder erst ermöglicht. Gerade für die Testfallautomatisierung ist dies von besonderer Bedeutung. Hierzu werden typische Fallstricke, sowie "Best Practices" vermittelt.

Es wird aufgezeigt, wie die unterschiedlichen Testarten sich in einer Gesamtumgebung sinnvoll ergänzen können: Vom Unit-Test über Integrationstest bis zum System- und Abnahmetest, sowie Lasttests etc. Zu guter Letzt wird betrachtet, wo die Grenzen der Testautomatisierung liegen und welche weiteren Maßnahmen der Qualitätssicherung zur Verfügung stehen.

Erleben Sie testgetriebene Entwicklung und überzeugen Sie sich selbst von den Vorteilen!

Dieses Schulungsmodul bieten wir mit diversen Programmiersprachen an, z.B. Java, C++, C#, JavaScript, TypeScript

# Konzepte

  • Motivation für Unit Tests
  • Grundkonzept Unit Testing
  • Unittest vs. Integrationstest
  • White-Box-Test vs. Black-Box-Test
  • Unit Testing versus Test Driven Development (TDD)
  • Testfallfindung / User-Stories als Dreh- und Angelpunkt zur Testfallfindung
  • Testmethodik und Testerstellung
  • Der Zusammenhang von Refactoring und Testen
  • Ermitteln der Testqualität durch Code-Coverage
  • Anwendung von Stellvertreterobjekten (Dummy & Mock)
  • Testdatenerstellung und -pflege
  • Grenz- und Extremwerte
  • Äquivalenzklassen
  • Abgrenzung und Zusammenspiel von Unit Tests mit Integrations- und Systemtests
  • Anwendung von TDD-Praktiken


  • # Testarten
  • Unit Tests
  • Integrationstests
  • Oberflächentests
  • Datenbanktests
  • HTTP-Tests (Web-UI und/oder Web-APIs)


  • # Überblick über die Werkzeuge für Unit Testing und TDD
  • Unit-Test-Frameworks
  • Unit-Test-Runner
  • Werkzeuge für Code Coverage
  • Mock-Objekt-Hilfsbibliotheken


  • # Testing in der Praxis
  • Testautomatisierung mit Werkzeugen (Werkzeuge nach Kundenwunsch/Vereinbarung)
  • Erstellen einer Testumgebung
  • Testgetriebenes Design
  • Entwicklung von testbarem Code ("Design for Testability": Verwendung von Abstraktion, Schichten, Pattern)
  • Ermitteln der Testqualität durch Code-Coverage und Fehlerinjektion
  • Mocking: Anwendung von Stellvertreter-Objekten (Dummy-Objekte) und die Gefahren dabei
  • Das Prinzip von Integration von in Continuous Integration (CD) und Continuous Delivery/Deployment

  • Dauer
    Auf Wunsch. Gerne geben wir Ihnen eine Empfehlung zur notwendigen Schulungsdauer, wenn Sie uns in der Anfrage Ihre Vorkenntnisse und Ziele nennen.
    Ort
    Online oder in Deutschland, Österreich und der Schweiz an Ihrem Firmensitz
    Schulungsdidaktik
    Nach Ihrer Wahl: Klassische Schulung mit PC-Übungen, reine Präsentation ohne PC-Übungen oder interaktiver Workshop mit Beratungsanteil