"Gegeben" beschreibt den Kontext, in dem das Szenario stattfindet. Es beschreibt entweder einen Zustand, oder es beschreibt etwas, dass passiert ist. Also formuliere es entweder in der kontinuierlichen Gegenwart oder in der Vergangenheitsform.
Given the invoice is two weeks late <-- continuous present
Given the invoice was submitted <-- past
Sie werden auch feststellen, dass es nichts sagt, der die Rechnung gestellt. Das ist gut für den Kontext, weil es egal ist, wie es dort hinkam. Wir nennen das "passiv" im Gegensatz zur "aktiven" Stimme.
"Wenn" beschreibt ein Ereignis, das passiert. Ich stelle das gerne in die Gegenwart, aktive Stimme. "Der Hund biss den Jungen" ist aktive Stimme. "Der Junge wurde gebissen" ist passiv, da nicht erwähnt wird, wer es getan hat. Indem wir erwähnen, wer das tut, erinnern wir die Leute daran, dass ein Benutzer beteiligt ist, selbst wenn dieser Benutzer ein anderes System ist.
When I check my accounts
When the admin creates a new record
When the ETL begins
"Dann" beschreibt, was in diesem Zusammenhang für dieses Ereignis passieren soll. Ich verwende gerne das Wort "soll", das eine konditionale Zeitform ist. Es ist auch in der passiven Stimme, weil das "wann" abdecken sollte, wie es passiert ist.
Then the invoice should be marked as paid
Then I should receive an email <-- "I" am not the doer so this is still passive voice
Das Wort "sollte" hat einen zusätzlichen Vorteil. In den Tagen der Waterfall-Entwicklung haben wir versucht, alle Anforderungen zu erfüllen, aber wir haben es nie geschafft.
Mit dem Wort "sollte", kapseln wir die Idee, dass Unsicherheit noch existiert. Es ermutigt die Menschen zu hinterfragen, ob die Anforderungen genau sind, und angesichts der sich ändernden Technologie und Innovation, ob sie noch genau sind noch.Es ist einfacher, eine Idee zu ändern, wenn sie nicht "muss" oder "wollen" verwendet, da dies Worte sind, die Gewissheit ausdrücken, und wenn Sie überzeugt sind, dass sich jemand anderer über etwas sicher ist, werden Sie weniger zurückschlagen .
Indem wir uns zurückdrängen und andere Vorschläge machen, bekommen wir "Exploration by Example", und es ist die Vorstufe zur Spezifikation oder Test mit Beispielen, die nette Nebenprodukte sind. Idealerweise werden Sie mehr Szenarien durchgehen, als Sie tatsächlich halten, und entscheiden, welche innerhalb und außerhalb des Bereichs liegen. Das Wort "sollte" hilft dabei sehr, und es hilft auch, es zu behalten, wenn Sie diese Szenarien erfassen und aufschreiben.
Und natürlich hilft es, "Given" und "Then" zu unterscheiden (aber hoffentlich nicht "When", da das sowieso in der aktiven Stimme formuliert wird).
Also, wenn ich dein Beispiel „etwas tun“ verwenden, so könnte ich sagen:
Given something was done
When someone does something
Then something else should have happened.
Jetzt keine Ihrer Szenarioschritte sind ähnlich, und Sie haben geklärt, was Sie wirklich von ihnen bedeuten, auch.
Ich schrieb a blog post auf diesem eine Weile zurück, wenn es als Referenz hilft.
Ja, was Liz sagte. –