Ich fange mit BDD an und das ist meine Geschichte:
Feature: Months and days to days
In order to see months and days as days
As a date conversion fan
I need a webpage where users can enter
days and months and convert them to days.
Ich habe Zweifel ...
Soll ich meine Szenarien schreiben, bevor ich etwas codiere, oder sollte ich zuerst ein Szenario schreiben und dann Code schreiben, ein Szenario erneut schreiben und dann Code schreiben und so weiter ...?
Wenn ich meine Szenarien vorher schreiben sollte, können meine Schritte genehmigt werden und der Produktionscode wird immer noch nicht ausgeführt?
Wann sollte ich meinen Code umgestalten? Nach Abschluss der Funktion oder nach jeder Szenarioimplementierung?
Antworten:
Aus der Geschichte schließe ich, dass Sie selbst codieren.
Normalerweise besteht der Zweck von BDD darin, Gespräche zu ermöglichen, insbesondere zwischen dem Unternehmen und den Entwicklern, damit das Team sicher sein kann, dass sie ein gemeinsames Verständnis erreicht haben. Wir schließen auch gerne Tester ein, da diese erkennen können, wenn wir Szenarien verpasst haben.
Wenn Sie dies alleine tun, schnappen Sie sich eine Gummiente und erklären Sie der Ente das Verhalten Ihrer Anwendung. Geben Sie einige Beispiele, wie es funktionieren sollte. Das werden Ihre Szenarien sein.
Zunächst würde ich vorschlagen , diese Szenarien nicht zu automatisieren. Sie können sie aufschreiben, wenn Sie möchten. Denken Sie daran, dass die Geschäftsergebnisse, die Sie mit der Ente geteilt haben, ungefähr die richtige Ebene sind, um sie auszudrücken. Sie sollten jetzt eine Vorstellung davon haben, wie sich die App verhält, und Sie können die Szenarien manuell durchgehen. Ich mag es, alles, was noch nicht funktioniert, wie einen Fehler zu behandeln . Ich habe manchmal mit der Automatisierung begonnen, aber nur wenn ich sehr gut weiß, wie das System funktioniert, bin ich mit den Tools vertraut und die Benutzeroberfläche ist gut verstanden. Selbst dann muss ich es oft ein bisschen überarbeiten, wenn ich den Code geschrieben habe.
Sagen Sie Ihrer Ente auf einer niedrigeren Ebene, wie sich jede Klasse verhalten wird. Geben Sie einige Beispiele an. Gummienten sind perfekt in der Lage, die Fachsprache zu verstehen. Jetzt haben Sie Ihr BDD auf Einheitenebene, auch bekannt als Unit-Tests. Hier findet der Rot-Grün-Refaktor-Zyklus statt. (Ich muss nicht mehr so viel umgestalten, weil ich über die Verantwortlichkeiten meiner Klassen nachdenke, sie in einer geschäftsorientierten Sprache formuliere und sie sowieso ziemlich schön herausfallen. Aber ich Ich mache das jetzt schon eine Weile. Es ist in Ordnung, wenn du das tust.)
Refactor es nicht zu viel. Wir möchten immer noch Feedback zu unserem Code erhalten, da es immer Dinge gibt, die wir nicht wissen und die wir nicht kennen . Perfektion ist hier dein Feind. Machen Sie es gut genug, machen Sie es lesbar und fahren Sie dann fort. Wenn Sie etwas perfekt machen müssen, um weitere Änderungen vorzunehmen, tun Sie dies, wenn Sie weitere Änderungen vornehmen.
Wenn Sie die Möglichkeit haben, Feedback zu Ihren Szenarien von Geschäftsinteressenten zu erhalten, diese jedoch nicht bei Ihnen sitzen, können Sie ihnen Szenarien senden, sobald Sie dies geschrieben haben und bevor Sie sie automatisieren. Möglicherweise möchten Sie auch ein Modell der Benutzeroberfläche senden, damit diese Wörter mit Aktionen korrelieren können. Gehen Sie damit der Codierung nicht zu weit voraus. Arbeiten Sie mit der Annahme, dass das, was Sie bereits getan haben, falsch ist , und Sie müssen Feedback einholen, um herauszufinden, wie.
Als letzten Hinweis sollten Sie Geschichten im Allgemeinen nicht aus der Sicht eines Benutzers formulieren (Szenarien, ja, aber keine Geschichten). Sie sind keine User Stories. Es sollte wahrscheinlich so etwas wie lesen:
Es gibt sowieso ein höheres Ziel, das Sie suchen. Auf diese Weise können Sie auch die Funktionen ermitteln, die Sie benötigen. Viel Glück damit und Entschuldigung für den extra langen Beitrag.
quelle
Beides wird funktionieren. Wähle eins.
Es macht nicht viel aus.
Je mehr Szenarien Sie haben, desto mehr Design können Sie im Voraus ausführen.
Je mehr Szenarien Sie haben, desto länger dauert es, bis etwas erledigt ist.
Nein. Sie überarbeiten, wenn es schwierig wird, das nächste Szenario zu entwerfen .
quelle
Verwenden Sie beschreibende Verben
Treffen Sie keine Designentscheidungen in Geschichten ["Ich brauche eine Webseite" ist eine Designentscheidung]
Verwenden Sie Business-Value-Ziele in Geschichten
Schreiben Sie so viele Funktionen und Geschichten wie möglich, bevor Sie mit dem Codieren beginnen. Geschichten informieren sich gegenseitig , beeinflussen die Funktionen und informieren das Design.
Refactor nach jeder Geschichte. Rot-Grün-Refaktor.
quelle