Test Driven Development (TDD)
Test Driven Development ist eine Entwicklungstechnik, bei der Tests vor dem eigentlichen Code geschrieben werden.
Klassifikation
- KomplexitätMittel
- AuswirkungTechnisch
- EntscheidungstypArchitektur
- OrganisationsreifeReif
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Mangelnde Testabdeckung
- Missverständnisse bei Anforderungen
- Verlust der Fokussierung auf das Ziel
- Regelmäßige Code-Reviews durchführen.
- Kontinuierliches Testen während des Entwicklungsprozesses.
- Dokumentation der Testfälle pflegen.
I/O & Ressourcen
- Entwicklungsanforderungen
- Testwerkzeuge
- Entwicklerwissen
- Funktionierende Software
- Dokumentierte Tests
- Rollout-fähiger Code
Beschreibung
Test Driven Development (TDD) ist ein iterativer Prozess, bei dem zuerst Tests für eine Funktionalität geschrieben werden, bevor die Implementierung erfolgt. Dieser Ansatz fördert Qualität und Wartbarkeit des Codes und hilft, Bugs frühzeitig zu identifizieren.
✔Vorteile
- Erhöhte Software-Qualität
- Frühzeitige Fehlererkennung
- Verbesserte Code-Wartbarkeit
✖Limitationen
- Höherer initialer Aufwand
- Mögliche Verzögerungen im Projekt
- Benötigte Erfahrung mit TDD
Trade-offs
Metriken
- Fehlerrate
Maß für die Anzahl der gefundenen Fehler in der Software.
- Testabdeckung
Prozentualer Anteil des Codes, der durch Tests abgedeckt ist.
- Entwicklungskosten
Gesamtkosten der Softwareentwicklung einschließlich Tests.
Beispiele & Implementierungen
Online Shop mit TDD
Ein Online Shop verwendet TDD, um neue Funktionen zu entwickeln und dabei einen hohen Qualitätsstandard zu gewährleisten.
Mobile App Entwicklung
Ein Team entwickelt eine mobile App und setzt TDD ein, um die Nutzererfahrung zu optimieren.
Webentwicklungsprojekt
In einem Webentwicklungsprojekt wird TDD genutzt, um sicherzustellen, dass neue Codezeilen keine bestehenden Fehler verursachen.
Implementierungsschritte
Schritte zur Einführung von TDD definieren.
Schulung des Teams in TDD-Techniken.
Erste TDD-Projekte implementieren.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Unzureichende Testabdeckung.
- Veraltete Testfälle.
- Mangelnde Dokumentation von Tests.
Bekannte Engpässe
Beispiele für Missbrauch
- Testdaten nicht versionieren.
- Tests nicht regelmäßig aktualisieren.
- Zu viele Abhängigkeiten in Tests.
Typische Fallen
- Einmalige Tests nicht anpassen.
- Geringe Teamakzeptanz.
- Fokussierung auf Testabdeckung über Code-Qualität.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Ressourcenverfügbarkeit
- • Teamgröße
- • Budgetbeschränkungen