Test Driven Development (TDD) ist ein Entwicklungsvorgehen, dass aus der agilen Entwicklung und dem Extreme programming hervorgegangen ist. TDD ist eine agile Softwareentwicklungsmethode, bei der Tests vor der eigentlichen Implementierung des Codes geschrieben werden. Das Ziel ist, die Entwicklung zu strukturieren, Fehler frühzeitig zu erkennen und eine hohe Codequalität zu gewährleisten.
Dabei werden in einem iterativen Prozess …
bis alle Tests erfolgreich durchgeführt werden.
Entwickle und teste kleine, isolierte Einheiten von Funktionalität nacheinander. Reduziert die Komplexität und erleichtert das Debuggen.
Tests werden vor der Implementierung geschrieben, um die Anforderungen zu klären und den Fokus auf das Ziel zu behalten.
Die Tests sind automatisiert, sodass sie bei jedem Build oder Deployment wiederholt ausgeführt werden können.
Natürlich musst du sowohl für das Erstellen der Tests als auch für das Programmieren der Funktionen/Methoden ein gutes Verständnis der Anforderungen haben. Ergeben sich im Verlauf der Entwicklung neue Erkenntnisse zu den Anforderungen, so wird der Prozess wiederholt. Die Tests werden ergänzt oder korrigiert und erneut ausgeführt.
Für einen Taschenrechner benötigen wir eine Funktion add
um Zahlen zu addieren.
Zunächst schreiben wir alle relevanten Unit Tests:
Anschliessend programmieren wir die Funktion add
und führen alle Unit Tests aus.
Solange nicht alle Tests erfolgreich sind, wird die Funktion add
überarbeitet.
Jeder Unit Test beim TDD soll nur einen Aspekt prüfen. Wir wollen möglichst kleine Codestücke testen und nicht das Zusammenspiel mehrere Codeteile. Bei Bedarf setzen wir Mockups von Funktionen ein, die nicht Teil des aktuellen Tests sind.
Häufig werden zunächst die Unit Tests für die erfolgreiche Verarbeitung erstellt. Im Verlauf der Entwicklung werden dann weitere Tests für Fehlersituationen oder Extremwerte ergänzt.