·

10 min

BDD vs. TDD: Unterschiede, Einsatz und Kombination

Roman Kirchmeier - Autemos

Roman Kirchmeier - Autemos

Ein Entwicklungsteam vergleicht in einem Schweizer Büro BDD-Verhalten und den TDD-Zyklus

Der Vergleich BDD vs. TDD betrifft Entscheidungen auf verschiedenen Ebenen; beide Praktiken können im selben Feature zusammenarbeiten. BDD klärt beobachtbares Verhalten durch konkrete Beispiele zwischen Fachseite, Test und Entwicklung. TDD führt Entwickler über einen fehlschlagenden Test, minimale Implementierung und Refactoring zu kleinen Codeentscheidungen. Eine Metaanalyse von 27 TDD-Studien fand einen kleinen positiven Gesamteffekt auf externe Qualität und wenig bis keinen erkennbaren Gesamteffekt auf Produktivität (IEEE, 2013). Pauschale Geschwindigkeitsversprechen sind daher unseriös. Die Wahl hängt davon ab, wer ein Artefakt lesen muss, welche Frage es beantwortet und wie schnell Feedback gebraucht wird. Der BDD-Grundlagenartikel erklärt den übergeordneten Prozess.

Kurz gefasst: BDD klärt fachliches Verhalten zwischen mehreren Rollen; TDD gibt Entwicklern kurze Rückmeldung zu Codeverhalten. Eine Metaanalyse von 27 Studien fand keinen klaren allgemeinen Produktivitätseffekt für TDD (IEEE, 2013). Kritische Features können BDD für Akzeptanz und TDD für Komponenten kombinieren.

Abbildung 1: BDD und TDD im Vergleich über sechs Entscheidungskriterien.

Was ist der Unterschied zwischen BDD und TDD?

BDD beginnt mit gemeinsam besprochenen Verhaltensbeispielen, TDD beginnt mit einem kleinen fehlschlagenden Test für den nächsten Codeabschnitt. Cucumber beschreibt BDD über Discovery, Formulation und Automation (Cucumber, 2026). Die Agile Alliance beschreibt TDD als eng verflochtene Arbeit aus Programmierung, Unit Tests und Design durch Refactoring (Agile Alliance, 2026).

Behavior Driven Development ist ein kollaborativer Entwicklungsprozess. Beteiligte klären anhand konkreter Beispiele, welches Verhalten Nutzer oder angebundene Systeme beobachten sollen. Diese Beispiele können als ausführbare Spezifikationen dokumentiert werden. Gherkin und Cucumber sind mögliche Mittel dafür, aber keine Voraussetzung.

Test Driven Development ist eine Entwicklungspraxis. Ein Entwickler schreibt zuerst einen kleinen Test, sieht ihn fehlschlagen, ergänzt den kleinsten nötigen Produktionscode und verbessert danach die Struktur. TDD wird häufig auf Unit- oder Komponentenebene eingesetzt. Die Praxis selbst schreibt keine feste Testebene vor.

Dan North fasste die Verbindung von Story und Verhalten knapp: „A story’s behaviour is simply its acceptance criteria“ (Dan North, 2006). Der Satz erklärt, warum BDD ein fachlich lesbares Kriterium braucht. TDD kann anschliessend die internen Codepfade absichern.

BDD vs. TDD: Wie unterscheiden sich die Abläufe?

BDD arbeitet in drei Praktiken, TDD in kurzen Red-Green-Refactor-Zyklen. Beide beginnen vor der fertigen Implementierung mit einem zunächst fehlschlagenden Beispiel. Die Beteiligten, Sprache und Reichweite unterscheiden sich.

Phase

BDD

TDD

Vorbereitung

Discovery mit konkreten fachlichen Beispielen

Liste kleiner Codeverhalten

Form

Formulation in lesbarer Domänensprache

automatisierter Test in Programmiersprache

Startsignal

ausführbares Beispiel schlägt fehl

Unit- oder Komponententest ist rot

Umsetzung

Systemverhalten wird implementiert

minimaler Produktionscode macht den Test grün

Nacharbeit

Beispiel bleibt als überprüfte Spezifikation

Refactoring verbessert Code und Teststruktur

Martin Fowler ergänzt vor Red-Green-Refactor eine Testliste, die den nächsten kleinen Schritt sichtbar macht (Martin Fowler, 2023). Bei BDD erfüllt Discovery eine andere Funktion: Fachseite, Test und Entwicklung prüfen Annahmen, Grenzfälle und Begriffe, bevor ein Szenario automatisiert wird.

Ein BDD-Beispiel kann auf API-, Service-, Komponenten- oder UI-Ebene laufen. Ein TDD-Test kann ebenfalls unterschiedliche Grenzen prüfen, bleibt in der Praxis oft kleiner und näher am Code. Die BDD-Testing-Anleitung trennt Beispiele, Testebenen und Ausführung ausführlich.

Welche Methode passt zu welcher Aufgabe?

BDD passt zu Entscheidungen, die mehrere Rollen fachlich verstehen und freigeben müssen; TDD passt zu schnellen Designentscheidungen innerhalb der Entwicklung. Für geschäftskritisches Verhalten mit komplexen Komponenten ist die Kombination oft passend.

Kriterium

BDD

TDD

Leitfrage

Welches Verhalten soll beobachtbar sein?

Welches kleine Codeverhalten fehlt?

Hauptleser

Fachseite, Test, Entwicklung

Entwickler oder Pair

Startartefakt

Gespräch plus konkretes Beispiel

kleiner automatisierter Test

Sprache

Domänenbegriffe, Gherkin optional

Programmiersprache und Testframework

Typischer Umfang

Feature, Regel, Service oder Nutzerergebnis

Unit oder Komponente

Takt

Discovery, Formulation, Automation

Red, Green, Refactor

Rückmeldung

gemeinsame fachliche Auslegung und Systemverhalten

lokales Codeverhalten und Refactoring-Sicherheit

Hauptfehler

Toolkauf ohne Discovery, veraltete Szenarien

grosse Schritte, langsame Suite, triviale Assertions

Nutzen Sie TDD, wenn ein Entwickler rasche Rückmeldung zu Codegrenzen und Design braucht. Ergänzen Sie BDD, wenn Fachseite und Technik vor der Umsetzung dasselbe Verhalten bestätigen müssen. Eine direkte Akzeptanzprüfung kann günstiger sein, wenn niemand ausserhalb der Entwicklung die ausführbare Spezifikation lesen oder besprechen wird.

Wie arbeiten BDD und TDD zusammen?

Abbildung 2: Ein BDD-Beispiel setzt die Akzeptanzgrenze, TDD entwickelt die Komponenten.

BDD und TDD arbeiten zusammen, indem ein fachliches Beispiel die äussere Akzeptanzgrenze setzt und kleine TDD-Zyklen die benötigten Komponenten entwickeln. Cucumber beschreibt diese geschichtete Nutzung ausdrücklich für Anwendungsverhalten und wiederverwendbare Bausteine (Cucumber, 2019).

  1. Fachvertretung, Tester und Entwickler besprechen eine bevorstehende Änderung anhand konkreter Beispiele.

  2. Das Team dokumentiert die vereinbarte Regel. Gherkin ist dafür optional.

  3. Ein Beispiel wird zu einer ausführbaren Akzeptanzprüfung und schlägt zunächst fehl.

  4. Entwickler bauen die nötigen Komponenten in kleinen TDD-Zyklen: roter Test, minimaler Code, Refactoring.

  5. Komponentenprüfungen und Verhaltensprüfungen laufen in der CI/CD-Testautomatisierung.

  6. Das Team verknüpft Anforderung, Risiko, Test, Ergebnis, Defekt und Freigabe in den zuständigen Systemen.

Die beiden Suiten beantworten verschiedene Fragen. Ein Unit-Test lokalisiert fehlerhaftes Codeverhalten. Ein BDD-Beispiel zeigt, ob das vereinbarte Ergebnis an der betrachteten Systemgrenze weiterhin gilt. Die Testpyramide hilft, Ausführungsdauer und Reichweite dieser Prüfungen auszubalancieren.

Wo liegt ATDD zwischen BDD und TDD?

ATDD bezeichnet die gemeinsame Festlegung von Akzeptanztests vor der Implementierung und überschneidet sich stark mit BDD. Die Agile Alliance nennt Kunden-, Entwicklungs- und Testperspektive als Beteiligte und weist darauf hin, dass ATDD teils Specification by Example oder BDD genannt wird (Agile Alliance, 2026).

Eine starre Taxonomie würde Unterschiede zwischen Teams verdecken. ATDD betont häufig die Akzeptanzgrenze einer Story. BDD beschreibt in vielen Quellen einen breiteren Ablauf aus Discovery, Formulation und Automation. TDD konzentriert sich auf kurze Implementierungszyklen. Entscheidend bleibt das konkrete Artefakt: Wer liest es, welche Entscheidung hält es fest und wann entsteht es?

Gherkin ist in BDD und ATDD möglich, aber nicht vorgeschrieben. Cucumber ist ebenfalls optional. Die Aussage „Cucumber is not part of BDD“ stammt von Seb Rose und trennt Prozess und Werkzeug sauber (Cucumber, 2017).

Warum scheitern BDD- und TDD-Einführungen?

Abbildung 3: 166 untersuchte BDD-Publikationen zeigen eine Lücke bei Industriemetriken (JSS, 2023).

BDD- und TDD-Einführungen scheitern häufig an teilweiser Anwendung, fehlender Verantwortung und wachsenden Wartungskosten. Die Forschung liefert keine feste Erfolgsquote, zeigt aber konkrete Risikomuster mit klar begrenzten Stichproben.

Eine Studie zu 50.000 populären Open-Source-Projekten in 5 Sprachen fand BDD-Frameworks in rund 27 Prozent der Stichprobe. Eine kleinere Befragung mit 31 Entwicklern innerhalb derselben Studie zeigte, dass Tests oft während oder nach dem Produktionscode entstanden (Information and Software Technology, 2020). Framework-Nutzung belegt daher keine konsequente BDD-Praxis.

Eine Befragung von 75 BDD-Anwendern in 26 Ländern berichtete Wartungsprobleme, wenn Spezifikationen anwuchsen (SANER, 2018). Eine Mapping-Studie mit 166 Publikationen aus den Jahren 2006 bis 2021 fand wenige Industriemetriken zu BDD-Prozess und Artefakten (Journal of Systems and Software, 2023).

  • BDD wird als Toolprojekt gestartet, ohne gemeinsame Discovery.

  • Szenarien werden nach der Implementierung von einer Rolle allein geschrieben.

  • Feature-Dateien kopieren UI-Klicks und altern bei Oberflächenänderungen.

  • TDD-Schritte werden zu gross, Tests zu langsam oder Assertions bedeutungslos.

  • Niemand besitzt Beispiele, Tests und Versionierung dauerhaft.

  • Management erwartet eine garantierte Produktivitätssteigerung ohne lokale Messung.

Messen Sie im eigenen Kontext Klärungsfehler, Pflegezeit, entkommene Anforderungsfehler und Aufwand für Nachweissuche. Vergleichen Sie diese Werte vor und nach einer begrenzten Einführung. Solche lokalen Daten sind belastbarer als fremde Prozentversprechen.

Was brauchen regulierte Teams zusätzlich?

Abbildung 4: BDD und TDD decken nur den Testteil einer vollständigen Nachweiskette ab.

Regulierte Teams brauchen neben BDD- und TDD-Ergebnissen eine verknüpfte Nachweiskette aus Anforderung, Risiko, Test, Ergebnis, Defekt, Behebung, Version und Freigabe. Das ISTQB nennt Traceability von Testfällen zu Anforderungen und von Testergebnissen zu Risiken als Grundlage für Abdeckung und Restrisiko (ISTQB, 2024).

Cucumber deckt nach eigener Einordnung nur einen Teil des Lebenszyklus ab. Feature-Datei, Software und Testbericht lassen sich verbinden; Ursprung, Historie und Freigabe brauchen weitere Kontrollen (Cucumber, 2020).

DORA verlangt seit 17. Januar 2025 für betroffene Finanzunternehmen ein risikobasiertes Testprogramm, Behebung von Befunden und mindestens jährliche Tests kritischer oder wichtiger ICT-Systeme (EUR-Lex, 2022). DORA schreibt weder BDD noch TDD, Cucumber oder Gherkin vor. Keine der Praktiken beweist für sich allein Compliance.

Häufig gestellte Fragen

Die Antworten grenzen Einsatz, Kombination und Nachweise direkt voneinander ab.

Ist BDD besser als TDD?

Keine Methode ist für jede Aufgabe besser. BDD eignet sich für gemeinsame Entscheidungen über beobachtbares Verhalten. TDD gibt Entwicklern kurze Rückmeldung zu kleinen Codeentscheidungen. Geschäftsrelevante Features mit komplexen Komponenten können beide Praktiken einsetzen.

Kann ein Team BDD und TDD gleichzeitig einsetzen?

Ja. Das Team kann ein fachliches Beispiel mit BDD vereinbaren und als Akzeptanzprüfung ausführen. Die beteiligten Komponenten entstehen danach in kurzen TDD-Zyklen. Beide Suiten laufen in CI und beantworten unterschiedliche Fehlerfragen.

Braucht BDD Gherkin oder Cucumber?

Nein. BDD braucht Zusammenarbeit und konkrete Beispiele. Gherkin kann diese Beispiele strukturiert dokumentieren, Cucumber kann sie ausführen. Andere Formate und Werkzeuge sind möglich.

Wie unterscheidet sich ATDD von BDD?

ATDD betont vorab vereinbarte Akzeptanztests aus Kunden-, Entwicklungs- und Testperspektive. BDD umfasst in vielen Definitionen Discovery, Formulation und Automation. Die Begriffe überschneiden sich laut Agile Alliance deutlich (Agile Alliance, 2026).

Reicht BDD für Audit-Trails in regulierten Teams?

Nein. Ein ausführbares Beispiel kann Anforderung und Testergebnis verbinden. Risikoakten, Defekte, Historie, Behebungen und Freigaben brauchen verknüpfte Lebenszyklus-Kontrollen. DORA verlangt Tests, schreibt aber keine dieser Entwicklungsmethoden vor.

Fazit

BDD und TDD beantworten verschiedene Fragen. BDD klärt das beobachtbare Verhalten mit Fachseite, Test und Entwicklung. TDD steuert kleine Codeentscheidungen durch fehlschlagende Tests, minimale Implementierung und Refactoring. Nutzen Sie TDD für schnelle Rückmeldung innerhalb von Komponenten. Ergänzen Sie BDD, wenn mehrere Rollen ein geschäftsrelevantes Ergebnis vorab vereinbaren müssen. Für regulierte Systeme gehören beide Testarten in eine grössere Nachweiskette. Der gemeinsame Bezugspunkt bleibt ein klar beschriebenes Verhalten mit einer prüfbaren fachlichen Erwartung. Autemos kann unterstützte Anforderungs- und Testfallbeschreibungen in visuelle Workflows und ausführbaren Code überführen; die öffentliche Dokumentation nennt keinen Cucumber- oder `.feature`-Import. Prüfen Sie den Übergang über Test Workflows und besprechen Sie Ihre Anforderungen mit uns.

Autemos erleben. In nur 30 Minuten.

Überzeuge dich selbst und erlebe, wie einfach, flexibel und kontrolliert moderne Testautomatisierung heute sein kann.

Social Connect

© 2026 Autemos. Ein Produkt der selementrix GmbH.

Autemos erleben.
In nur 30 Minuten.

Überzeuge dich selbst und erlebe, wie einfach, flexibel und kontrolliert moderne Testautomatisierung heute sein kann.

Social Connect

© 2026 Autemos. Ein Produkt der selementrix GmbH.

Autemos erleben.
In nur 30 Minuten.

Überzeuge dich selbst und erlebe, wie einfach, flexibel und kontrolliert moderne Testautomatisierung heute sein kann.

Social Connect

© 2026 Autemos. Ein Produkt der selementrix GmbH.