Ist es angemessen, dass BDD-Szenarien eine „Klicken Sie hier“-Stilspezifität haben?
Ich habe viele Beispiele gelesen, in denen Szenarien angegeben sind, um eine bestimmte Benutzeroberflächeninteraktion zu vermeiden, aber Tools wie SpecFlow würden anscheinend diese Detailgenauigkeit erfordern.
Ist es angemessen, vom BA zu verlangen, eine Geschichte zu schreiben, die Szenarien auf hohem Niveau enthält, und sie dann während der 3 Amigos-Phase auf ein technischeres (und elementspezifisches) Niveau herunterzuarbeiten?
Ist das z.B. angemessen:
Given the user is on /search
And the "Jeff" is entered into the field "searchinput"
When the "Search" button is clicked
Then the page displayed is /results/Jeff
And the fields displayed include "Name"
And the second field displayed is "Post Code"
Das Story-Beispiel und das Tooling-Beispiel auf dieser Seite scheinen inkompatibel zu sein, wenn wir versuchen, von einem zum anderen zu gelangen (wobei die Tatsache ignoriert wird, dass sie sich in sehr unterschiedlichen Geschäftsprozessen befinden): https://en.wikipedia.org/wiki/ Verhaltensgesteuerte_Entwicklung
Ihr Verhaltensniveau ist richtig. Die meisten Praktiker (mich eingeschlossen) würden empfehlen, dass Sie es weniger implementierungsspezifisch formulieren. Zum Beispiel:
Given the user is on the search page
When the user searches for "Jeff"
Then the results page is displayed
And the "Name" field is displayed with the value "Jeff"
And the "Post Code" field is displayed with the value "80273"
Dies ist implementierungsunabhängig, was bedeutet, dass Sie die Implementierung nicht im Voraus kennen müssen und mehrere Implementierungen (z. B. Web und Mobil) einfacher angehen können.
Ich habe auch den Wortlaut angepasst, damit es einfacher zu automatisieren ist. Wenn ein PO oder eine andere nicht-technische Person den Test schreibt, würde ich nicht erwarten, dass sie wissen, dass sie einige dieser Änderungen vornehmen müssen. Ich würde erwarten, dass die Entwickler sie erkennen und dort helfen. Insbesondere die letzten beiden Zeilen haben jetzt das gleiche Muster und sind einfacher zu automatisieren, und das gesamte Szenario könnte mit vielen verschiedenen Werten ausgeführt werden, die für jedes dieser Elemente in Anführungszeichen sehr sauber eingefügt werden.
Schließlich haben Sie in einem Kommentar gefragt, wie Sie die Lücke schließen. Meine Empfehlung ist, den Testfall zu schreiben, bevor Sie die Implementierung kennen. Das zwingt Sie zu mehr dieser implementierungsagnostischen Sprache.
Andras Csanyi
Matt W
Andras Csanyi