Der Titel sagt alles, oder? Ich möchte den Tweet von @SimonHoh zum Anlaß nehmen, den Publikumsjoker zu Rate zu ziehen. Um den Joker so gut wie möglich auszuschöpfen, werde ich vorab aus strategischen Gründen keine Äusserungen dazu abgeben
.
Um beim Bild der Rateshow zu bleiben, muss es natürlich auch eine Frage und vier Auswahlantworten geben.
Was verstehen Sie unter BDD ?
- A: BDD ist TDD, nur besser
- B: BDD ist etwas anderes als TDD
- C: BDD ist TDD, und noch viel mehr
- D: BDD ist der Bundesverband Deutscher Detektive
Ich bin gespannt auf die Bewertung des Publikums (gerne auch mit Begründung). Deine Meinung zählt! Ach ja, Frei nach Sigi Schwarz kann natürlich auch jede Antwort genannt werden, die nicht in der Auswahl genannt wurde (also ‘was zum Naschen!)
by.NET Stories: Digitale Erfahrungen » Blog Archive » Meta-Test: NSpec – der spezifizierende BDD-VeteranonApril 22nd 2010[...] wie nicht anders zu erwarten war, alles um Spezifikationen. Ich werde hier nicht näher auf die Gemeinsamkeiten oder Unterschiede zwischen TDD und BDD eingehen, werde auch nicht groß ausholen, wie und wieso BDD entstanden ist. Es sei nur kurz [...]
by.NET Stories: Digitale Erfahrungen » Blog Archive » Meta-Test: TDD & BDD Test-Frameworks im VergleichonApril 13th 2010[...] hinter mir, doch nicht zuletzt die in jüngster Zeit individuellen, manchmal irritierenden Aussagen zu TDD und BDD geben mir Anlass genug, [...]
byDominik JungowskionMarch 27th 2010Ich bin für BDD = BugDriven Development
byIlker CetinkayaonMarch 25th 2010@Rage, zur A/C-Unschärfe: Ja gewiß, es ist eine (zugegeben gewollte) Unschärfe. Dies rührt jedoch nicht aus Ermangelung der Antwort-Optionen zur Fragestellung, sondern dient vielmehr zur Anregung. Anregung im Sinne des überdenkens zur Beziehung TDD zu BDD.
Stellt BDD einen (mindestens ebenbürtigen) Ersatz zu TDD dar (A)?
Oder aber stellt BDD eine generalisierbare Methodik zur Verfügung, aus deren Spezialisierung TDD hervorgeht (C)?
Gekürzt lässt sich die Divergenz zu A/C folgend umschreiben: Ist TDD eine Teilmenge von BDD? Oder sind TDD und BDD unterschiedliche Felder, die in Ihrer Anwendung durchaus eine Schnittmenge aufweisen?
Zu dem Vorschlag “Ausprobieren”: Ja, sogar mit Nachdruck und Intensität.
bySimon HohenadlonMarch 20th 2010Nachdem ich hier anscheinend den Günther Jauch gespielt habe, möchte ich auch meine Sicht der Dinge darstellen. Ich habe ja in meinem Tweet etwas gedankenlos die beiden – auf xUnit.BDDExtensions bezogenen – Hashtags so aneinandergestellt, dass man sie als Satz verstehen kann.
Ich denke, die drei Begriffe sind ziemlich überladen, daher möchte ich mal wieder versuchen, sie auf ihre wörtliche Bedeutung und Herkunft zurückzuführen:
Bei Unit Testing ist das Verständnis vielleicht noch am einheitlichsten: man testet Code programmatisch auf der Ebene der kleinsten Einheit.
TDD schiebt das erste D in den Vordergrund: Tests steuern die Entwicklung des Codes und nicht anders herum, also test first. Auch wenn es nicht im Begriff vorkommt, denke ich dass man hierunter allgemein Unit Tests versteht.
BDD hat mit TDD ganz klar die beiden Ds gemeinsam. Insofern sehe ich nicht, dass man die Specs im ursprünglichen Sinn auch nach der Implementierung schreiben kann. Der Unterschied Behaviour zu Test hat für mich zwei Aspekte:
1. das Verhalten der Anwendung aus Benutzersicht. Insofern ist die Antwort B.
2. Verhalten im Gegensatz zu Test. Der Begriff Test hat ja auch Dan North gestört. Das leitet mich eher zu Antwort A.
Zurück zu meinem Tweet: der bezog sich ja auf eine Gegenüberstellung von xUnit.BDDExtensions und Unit Testing im Osherove style. Insofern sich BDD in xUnit.BDDExtensions manifestiert, ist meine Antwort ganz eindeutig: A. Ich kann ja meine Präsi mal uploaden, wenn sie fertig ist.
Von Roy Osherove gibt es übrigens eine paar aktuelle Tweets zu dem Thema.
byRageonMarch 20th 2010Es treffen A und C zu, wobei hier wohl absichtlich inhaltliche Unschärfe verwendet wurde um 4 Auswahlmöglichkeiten zu erhalten – Redundanz als Kunstgriff
Behaviour Driven Design erweitert ja lt. Definition das Test Driven Design … heisst das ich darf meine Tests doch nicht hinterher schreiben?
Und ich glaube durchaus, daß auch das Ziel von BDD letztlich gutes Design ist.
Ausprobieren – Fragezeichen?
byRalf WestphalonMarch 20th 2010Alles falsch
Ich bin für “Buddhistischer Dachverband Diamantweg” – denn das steht auch zur Auswahl: http://de.wikipedia.org/wiki/BDD
Aber im Ernst: Ich votiere für B: BDD ist etwas anderes als TDD.
Begründung:
-BDD kann ich auch machen, wenn ich Tests nach der Implementation schreibe. Es geht darum, welche Form Tests (oder “Verhaltensdefinitionen”) haben.
-BDD macht keine Aussage über Design, sondern Anforderungskonformität. TDD hat jedoch den Anspruch, zu gutem Design zu führen.
Aber das ist natürlich nur meine bescheidene Meinung.
-Ralf