Acceptance Test-Driven Development (ATDD)
Eine kollaborative Methode, bei der Stakeholder, Tester und Entwickler Akzeptanzkriterien als automatisierte Tests vor der Implementierung definieren.
Klassifikation
- KomplexitätMittel
- AuswirkungOrganisatorisch
- EntscheidungstypOrganisation
- OrganisationsreifeFortgeschritten
Technischer Kontext
Prinzipien & Ziele
Use Cases & Szenarien
Kompromisse
- Tests werden zu detailliert und binden Implementierungsdetails.
- Falsche oder unvollständige Akzeptanzkriterien führen zu falscher Implementierung.
- Zu starke Abhängigkeit von Werkzeugen kann Flexibilität einschränken.
- Fokus auf Verhalten statt Implementierungsdetails in Szenarien.
- Keep tests kurz und isoliert, um Flakiness zu vermeiden.
- Integriere Tests früh in CI und messe Feedbackzeiten.
I/O & Ressourcen
- User Stories und Akzeptanzkriterien
- Fachliche Stakeholder für Klärung
- Testautomatisierungs-Framework und CI-Pipeline
- Automatisierte Akzeptanztests als Spezifikation
- Verringerte Anzahl ungeplanter Nacharbeiten
- Besser dokumentierte Anforderungen
Beschreibung
Acceptance Test-Driven Development (ATDD) ist eine kollaborative Methode, bei der Stakeholder, Tester und Entwickler akzeptanzorientierte Tests vor der Implementierung definieren. Ziel ist frühzeitige Klärung von Anforderungen, automatisierte Akzeptanztests und schnelles Feedback. ATDD signifikant reduziert Missverständnisse und verbessert Testabdeckung im Entwicklungsprozess.
✔Vorteile
- Klare Anforderungen und weniger Nacharbeit aufgrund von Missverständnissen.
- Schnelles Feedback und stabilere Releases durch automatisierte Tests.
- Bessere Zusammenarbeit zwischen Fachseite, QA und Entwicklung.
✖Limitationen
- Aufwand für Pflege und Anpassung von Akzeptanzszenarien.
- Benötigt disziplinierte Zusammenarbeit und stabile Anforderungen.
- Nicht alle Nicht-funktionalen Anforderungen lassen sich als Akzeptanztest abbilden.
Trade-offs
Metriken
- Prozentsatz automatisierter Akzeptanztests
Anteil der Akzeptanzkriterien, die durch automatisierte Tests abgedeckt sind.
- Mean Time to Feedback
Durchschnittliche Zeit vom Festlegen eines Szenarios bis zum Feedback aus CI.
- Regressionserkennungsrate
Anteil der regressiven Fehler, die frühzeitig durch Akzeptanztests erkannt wurden.
Beispiele & Implementierungen
E-Commerce Checkout
Akzeptanzkriterien für Bezahlprozess wurden als automatisierte Tests definiert und in CI ausgeführt, wodurch Zahlungsfehler früh entdeckt wurden.
Online-Banking Überweisung
Regulatorische Anforderungen wurden in ATDD-Szenarien abgebildet und als Prüfpfad dokumentiert.
API-Versionierung
Kompatibilitätsanforderungen zwischen API-Versionen wurden durch Akzeptanztests abgesichert.
Implementierungsschritte
Schritt 1: Schulung des Teams in ATDD-Grundsätzen und Given-When-Then-Format.
Schritt 2: Durchführung von Feature-Sessions mit Stakeholdern zur Definition von Akzeptanzszenarien.
Schritt 3: Implementierung minimaler Funktionalität bis die Tests grün sind.
Schritt 4: Automatisierung der Szenarien im gewählten Testframework und Anbindung an CI.
Schritt 5: Regelmäßige Wartung und Review der Tests bei Änderungen.
⚠️ Technische Schulden & Engpässe
Tech Debt
- Veraltete Akzeptanzszenarien, die nicht mehr den aktuellen Geschäftsregeln entsprechen.
- Monolithische Test-Suites mit schlechter Ausführungsperformance.
- Fehlende Testdatenverwaltung für reproduzierbare Tests.
Bekannte Engpässe
Beispiele für Missbrauch
- Akzeptanztests werden als ausführliche UI-Skripte erstellt und sind fragil.
- Business-Entscheider werden nicht eingebunden; Tests spiegeln falsche Annahmen.
- Tests werden nicht gepflegt und führen zu vielen False-Positives.
Typische Fallen
- Zu frühe Detailfestlegung zwingt Implementierungskonzepte.
- Unzureichende Testdaten führen zu instabilen Tests.
- Keine klare Trennung zwischen Akzeptanz- und Unit-Tests.
Erforderliche Fähigkeiten
Drivers (Architectural Drivers)
Constraints
- • Verfügbarkeit fachlicher Stakeholder für Sessions
- • Limitierte Ressourcen zur Testautomatisierung
- • Legacy-Systeme ohne geeignete Test-Schnittstellen