4 Min. Lesezeit

Was ist verhaltensgetriebene Entwicklung (BDD) wirklich?

Was ist verhaltensgetriebene Entwicklung (BDD) wirklich?

Viele Teams lernen schneller aus Beispielen als aus Regelbüchern. Mit verhaltensgetriebener Entwicklung wird diese Gewohnheit zur Praxis. Beispiele werden abgebildet, verfeinert und als lesbare Szenarien geschrieben. Mit Tools wie Cucumber, SpecFlow und Reqnroll werden diese Szenarien zu ausführbaren Spezifikationen, die vertikale Slices anleiten und den Fortschritt sichtbar machen. Der Ansatz verkürzt das Feedback, reduziert Übergaben und vermeidet den kleinen Wasserfall-Effekt am Ende eines Sprints. Außerdem wird eine gemeinsame Sprache für alle Rollen geschaffen, was das Risiko und die Nacharbeit senkt. Open-Source-Werkzeuge und -Gemeinschaften spielen hier eine Schlüsselrolle. Die stille Lektion ist einfach. Beginnen Sie mit Beispielen, halten Sie die Abschnitte klein, und lassen Sie die Ergebnisse sprechen.

Podcast Episode: Was ist verhaltensgetriebene Entwicklung (BDD) wirklich?

In dieser Folge spreche ich mit Gáspár Nagy über Behavior Driven Development (BDD). Wir schauen uns an, warum ein einfaches Beispiel eine Spezifikation schlagen kann. Fußball lernt man nicht aus einem Regelbuch. Man lernt, indem man spielt und sich Spiele ansieht. BDD nutzt den gleichen Trick, um ein frühes Verständnis aufzubauen. Wir besprechen das Schreiben von lesbaren Szenarien und deren Umwandlung in ausführbare Spezifikationen mit Cucumber, SpecFlow und Reqnroll. Wenn es gut gemacht ist, führt dies zu vertikalen Slices, zeigt den Fortschritt und stoppt den Mini-Wasserfall am Ende eines Sprints.

"If you have a good understanding of the requirements, you can write better test cases, tests for that the developers might be able to make it immediately the right way and they don't need to do so much rework." - Gáspár Nagy

Gáspár Nagy, der Erfinder von SpecFlow & Reqnroll, bringt über 20 Jahre Erfahrung als Coach, Trainer und Experte für Testautomatisierung in sein Unternehmen Spec Solutions ein. Er ist der Co-Autor der Bücher "Discovery: Explore behaviour using examples" und "Formulation: Document examples with Given/When/Then" und leitet außerdem SpecSync, das Teams bei der Verfolgbarkeit von Tests mit Azure DevOps und Jira unterstützt. Er ist in der Open-Source-Community durch die Leitung des Reqnroll-Projekts aktiv. Gáspár gibt seine Erkenntnisse auf Konferenzen weiter und unterstreicht dabei sein Engagement, Teams bei der Implementierung verhaltensgetriebener Entwicklung (BDD) zu unterstützen.

apple spotify youtube

Highlights der Episode

  • Einfache Beispiele kommunizieren Anforderungen besser als umfangreiche Spezifikationen
  • Beispiel-Mapping strukturiert Gespräche und deckt Regeln frühzeitig auf
  • Lesbare Szenarien werden mit Cucumber oder SpecFlow zu ausführbaren Spezifikationen
  • BDD führt vertikale Slices und macht Fortschritt sichtbar
  • BDD verhindert den Mini-Wasserfall am Ende eines Sprints

Wie verhaltensgetriebene Entwicklung Teams und Software Qualität verändert

Was ist verhaltensgetriebene Entwicklung wirklich?

In der neuesten Folge von Software Testing Unleashed begrüßt Gastgeber Richie Gaspar Notch - den Erfinder von SpecFlow und ReconRole - zu einer lebhaften, erfahrungsreichen Diskussion über verhaltensgetriebene Entwicklung (Behavior Driven Development, BDD). Während BDD manchmal als ein weiteres Testverfahren abgetan wird, macht Gaspar Notch deutlich: BDD ist viel mehr als das. Im Kern geht es bei BDD um Zusammenarbeit und gemeinsames Verständnis. Es ist ein Entwicklungsansatz, der sich auf diese drei Säulen konzentriert: besseres Verständnis der Anforderungen, zuverlässige Verifizierung und effektive Dokumentation.

Gaspar erklärt, dass die sichtbarsten Elemente von BDD die "Szenarien" sind - textuelle Beschreibungen des Systemverhaltens, die in einfacher Sprache verfasst und in der Regel mit "Geben-Wenn-Dann"-Schritten strukturiert sind. Tools wie Cucumber, SpecFlow und RocknRoll helfen Teams bei der Automatisierung dieser Szenarien, aber der Prozess beginnt schon viel früher: mit gemeinsamen Beispielen und Gesprächen.

Lernen durch Beispiele: Der Kern von BDD

Die verhaltensgetriebene Entwicklung lässt sich von der Art und Weise inspirieren, wie Menschen von Natur aus lernen: durch Beispiele. Wie Gaspar betont, lernt niemand Fußball, indem er das Regelwerk studiert - er beginnt damit, zu spielen und andere zu beobachten. Bei Software vermitteln Spezifikationen allein selten das vollständige Bild.

Stattdessen müssen die Teams "gemeinsam an diesem Verständnis arbeiten", indem sie gemeinsam Beispiele erstellen, die die Anforderungen zum Leben erwecken. Diese konkreten Szenarien beleuchten die oft übersehenen Details und decken Unklarheiten auf, bevor sie zu Nacharbeit oder falsch abgestimmten Lösungen führen. Gaspar sagt: "Wenn man die Anforderungen gut versteht, kann man bessere Testfälle schreiben, die Entwickler machen es vielleicht schon beim ersten Mal richtig, und der Kunde bekommt das, was er eigentlich will."

Zusammenarbeit ist der Schlüssel: Wessen Aufgabe ist die Beispielerstellung?

Ein weit verbreiteter Irrglaube ist, dass das Schreiben von BDD-Szenarien allein in der Verantwortung des Product Owners liegt. Gaspar räumt schnell mit diesem Vorurteil auf: Echtes BDD bedeutet, dass Szenarien in Zusammenarbeit mit Produktverantwortlichen, Entwicklern und Testern erstellt werden. Dabei geht es nicht darum, kurzfristig die Geschwindigkeit zu optimieren - es geht darum, ein gemeinsames Verständnis sicherzustellen und die Voraussetzungen für weniger Fehlerzustände und eine reibungslosere Teamarbeit zu schaffen.

Die Teams können Methoden wie Example Mapping oder Feature Mapping anwenden oder einfach ihre eigenen Diskussionen führen. Entscheidend ist, dass die Erstellung von Szenarien zu einer Gruppenarbeit wird - die Vorteile zeigen sich in der Klarheit und Vollständigkeit sowohl der Anforderungen als auch der Lösungen.

Szenarien einfach und lesbar halten

Es ist für Teams verlockend, jeden Testfall zwanghaft in das Geben-Wenn-Dann-Format einzupassen, aber Gaspar warnt, dass dies zu unübersichtlichen, unlesbaren Szenarien führt. BDD-Szenarien sollten prägnant sein und sich auf das Geschäftsverhalten konzentrieren - keine erschöpfende Liste aller möglichen Randfälle. Ihr Hauptzweck ist die Kommunikation - sowohl die Dokumentation als auch die Verwirklichung von Anforderungen.

Gaspar empfiehlt, BDD-Szenarien von herkömmlichen Testfällen zu trennen, indem sie entweder anders organisiert oder klar gekennzeichnet werden, um Verwechslungen zu vermeiden. Die Lesbarkeit ist nicht verhandelbar: "Wenn Sie ein Team von zehn Leuten brauchen, um herauszufinden, was ein Szenario bezweckt, ist der Wert verloren."

Von Szenarien zu ausführbaren Tests - und echten Fortschritten

Sobald sich das Team auf Szenarien geeinigt hat, können Tools wie Cucumber und seine .NET-Pendants (SpecFlow und jetzt RocknRoll) diese in automatisierte Tests umwandeln. Jeder Geben-Wenn-Dann-Schritt kann auf Code abgebildet werden, der die beschriebene Aktion im System ausführt. Durch diesen Prozess entstehen ausführbare Spezifikationen: eine Dokumentation, die sowohl mit dem Code als auch mit den Anforderungen synchron bleibt.

Gaspar betont, dass BDD am effektivsten ist, wenn die Entwicklung im wahrsten Sinne des Wortes von diesen Szenarien "angetrieben" wird - indem die Funktionalität Schritt für Schritt, Beispiel für Beispiel, implementiert wird. Dieser inkrementelle Ansatz (manchmal auch als vertikales Slicing bezeichnet) hilft Teams, "Mini-Wasserfälle" innerhalb von Sprints zu vermeiden, reduziert den Stress am Ende von Iterationen und sorgt für fortlaufende Transparenz darüber, was bereits getan wurde und was noch zu tun ist.

Die Rolle der Tools: Open Source und Gemeinschaft

Gaspars Weg mit BDD umfasst die Mitarbeit an Tools wie SpecFlow und die Einführung seines Nachfolgers RocknRoll für das .NET-Ökosystem. Er hebt nicht nur die Bedeutung von Werkzeugen für die Automatisierung hervor, sondern auch, wie die Open-Source-Zusammenarbeit den Geist von BDD widerspiegelt: Menschen, die über Grenzen hinweg zusammenkommen, um gemeinsame Probleme zu lösen und das Handwerk voranzubringen.

Building the Bridge

Bei der verhaltensgetriebenen Entwicklung geht es nicht darum, eine weitere Test-Ebene hinzuzufügen - es geht darum, eine Brücke zwischen Unternehmen und Technologie zu schlagen und so Raum für Klarheit, Zusammenarbeit und Vertrauen zu schaffen. Wie Gaspar und Richie zeigen, liegt die wahre Magie von BDD in den Gesprächen, die es auslöst, und dem gemeinsamen Verständnis, das es schafft.

Wenn Ihr Team eine sinnvollere Zusammenarbeit und eine höhere Qualität der Ergebnisse anstrebt, bietet BDD einen Weg nach vorn - ein Beispiel nach dem anderen.

Mehr Autonomie für Teams

Mehr Autonomie für Teams

Teamkultur und psychologische Sicherheit werden als entscheidende Treiber für eine effektive Zusammenarbeit und Problemlösung in der...

Weiterlesen
Built In Quality

Built In Quality

Gelebte Agilität geht über das Befolgen von Frameworks hinaus. Der Erfolg liegt in der Skalierung von Fähigkeiten und nicht nur in der Anwendung von...

Weiterlesen
Performanztests sind keine Lasttests

Performanztests sind keine Lasttests

In den letzten zwei Jahrzehnten haben sich Performanztests von Bare Metal und umfangreichen Browser-Skripten zu APIs, Cloud und Kubernetes...

Weiterlesen