
19.09.2023
In diesem Beitrag bewertet Andreas BDD und geht darauf ein, ob es in jeden Projekt-Alltag integrierbar ist.
Immer wieder werden wir gefragt, wie der Einsatz von BDD zu bewerten sei. Auf den ersten Blick sprechen viele Gründe für Behavior Driven Development:
Warum sollten wir BDD also nicht überall einsetzen? Oder anders gefragt: Passt BDD in jeden Projekt-Alltag?
BDD ist ein Entwicklungsprozess, der sich auf vier Schritte zurückführen lässt:
Im Kern handelt es sich also um einen Test-Driven-Ansatz, der an den Anfang des Entwicklungsprozesses formalisierte Anforderungen setzt.

In der Praxis können Lifecycle-Management-Systeme verwendet werden, in denen die Szenarien sowohl für manuelle als auch automatisierte Testfälle ausführbar sind. So können bspw. mit opentext ALM Octane oder in Jira mittels XRAY die Szenarien als Testfälle direkt in der Gherkin-Syntax erfasst werden.
Diese (formalisierten) Anforderungen bilden eine verbindende Einheit – von Business-, Entwicklung-, QA bis hin zu Infrastruktur-Teams. Jedes Team bringt dabei seine Sichtweisen ein und erarbeitet somit eine gemeinsame Datenbasis.
BDD setzt also ein hochwertiges Requirement Engineering sowie ein funktionsübergreifendes Team voraus.

In der Praxis sind hingegen immer wieder andere Konstellationen anzutreffen:
Hier fällt es schwer, eine allgemeine Aussage über den sinnvollen Einsatz von BDD zu treffen.
Wer BDD leben möchte, sollte sich deshalb bewusst die folgenden Fragen stellen:
Wenn man sich gängige Tutorials zum Thema BDD anschaut, kann man schnell den Eindruck erhalten, dass Gherkin eine einfach einzusetzende Sprache ist.
Ist sie auch – wenn man ein paar Spielregeln beachtet:
1. Jede Anforderung, jedes Szenario, ist Testautomatisierungs-Quellcode.
2. Jede Anforderung, jedes Szenario, beschreibt erwartetes Verhalten.
3. Jede Anforderung, jedes Szenario, muss (kontinuierlich) testbar sein.
BDD ersetzt kein Testautomatisierungs-Framework, sondern ergänzt eine weitere Schicht.

Im Akzeptanztest werden i.a.R. umfassende Workflows abgetestet. Die Testfälle umfassen oftmals viele Einzelschritte, die schon für sich genommen aufwändig zu automatisieren sind. Auch ohne BDD ist diese Testebene der aufwändigste Prozessschritt im Rahmen einer Produkt-Entwicklung. Heißt dies im Umkehrschluss, in dieser Ebene auf BDD zu verzichten?
Wie so oft hilft es, einen Blick auf den gesamten Testprozess zu richten. Wenn es gelingt, jeden einzelnen Prozessschritt automatisiert zu testen, wie groß ist das verbliebene Risiko im Gesamt-Prozess?
Der Fokus auf die Prozessschritte hilft dabei in mehrfacher Hinsicht:
Der „Akzeptanztest“ kann deshalb stark fokussiert erfolgen. Explorative Tests oder A/B-Tests mit ausgewählten Nutzergruppen sind hier oftmals kostengünstiger und decken das gleiche Risiko ab als der Versuch, eine vollständige Testautomatisierung mit BDD umzusetzen.
Eine allgemeine Antwort, ob BDD für einen Akzeptanztest sinnvoll ist, ist letztlich nur im konkreten Projekt-Kontext möglich.
BDD verbindet alle Fachbereiche auf Basis einheitlicher, formalisierter Anforderungen.
Die Verwendung von BDD ist kein Selbstläufer und bedarf sorgfältiger Planung im Projekt. Nur weil die Syntax modern und einfach wirkt, bedarf es trotzdem kontinuierlicher Anstrengungen, diese Ebene in der Testautomatisierung sinnvoll einzusetzen.

Ich durfte im Podcast „Software Testing – Qualität, Testautomatisierung & Agilität“ von Richie Seidl zu Gast sein. In der Episode „Ein kritischer Blick auf BDD“ gehe ich gemeinsam mit dem Host darauf ein, weshalb BDD nicht immer die beste Lösung ist.

Erstgespräch vereinbaren