Wir setzen BDD ein und verwenden SpecFlow, um unsere Entwicklung (ATDD) voranzutreiben.
Unser QA-Team möchte seine eigenen End-to-End-Regressionstests (in Gherkin / SpecFlow) definieren und die bereits definierten Schritte erneut verwenden.
(Bitte beachten Sie - ich weiß, dass dies kein großartiges Beispiel ist, aber es sollte genügend Details liefern)
Ein Test kann Folgendes beinhalten:
Dies würde ein Szenario wie .. vorschlagen.
Gegeben ich bin eingeloggt
Wenn ich nach einem Produkt suche
Und ich wähle ein Produkt aus, um es zu kaufen
Und ich erstelle eine Bestellung
Und ich wähle Lieferoption
Und ich reiche den Auftrag ein
Und ich storniere die Bestellung
Dann ?? !!?
Das ist eindeutig falsch, da wir die Ausgabe bei jedem Schritt nicht überprüfen.
So kann als eine Abfolge von Szenarien aufgelöst werden:
Szenario 1:
Gegeben bin ich eingeloggt
Wenn ich nach einem Produkt suche
Dann sehe ich eine Liste der Produkte
Szenario 2:
Wenn ich ein Produkt auswähle, um es zu kaufen
Dann kann ich einen Auftrag erstellen
Szenario 3:
Wenn ich die Bestellung erstelle
Und ich wähle Lieferoption
Dann kann ich die Bestellung abschicken
etc usw.
Das Hauptproblem dabei ist, dass es keine Möglichkeit gibt, die Reihenfolge / Reihenfolge anzugeben, in der die Szenarien ausgeführt werden (ein Merkmal von nUnit?). Da Abhängigkeiten zwischen Szenarien bestehen (sie sind nicht auf einen bekannten Startpunkt festgelegt), müssen sie nacheinander ausgeführt werden.
Meine Fragen sind:
a) Versuchen wir einen quadratischen Pflock in ein rundes Loch zu stecken ?!
b) Weiß jemand, ob es eine Möglichkeit gibt, SpecFlow / Gherkin auf diese Weise zu verwenden?
c) Oder weiß jemand, welche Alternativen es gibt?
Vielen Dank!
Ich würde sagen, dass Sie Ihre Szenarien auf der falschen Abstraktionsebene schreiben. Aber das hängt davon ab, für was Sie sie verwenden möchten;
Wenn Sie Testskripte schreiben wollen, dann sind Sie auf dem richtigen Weg ... aber es wird ein Albtraum sein, es zu behalten, im ersten Fall (langes Skript) wird es sehr brüchig und im zweiten Fall (mehrere Szenarien) müssen eine bestimmte Ausführungsreihenfolge gewährleisten. Beide werden entmutigt und als Anti-Muster betrachtet.
Ich würde vorschlagen, dass Sie die von Ihnen geschriebenen ATDD-Tests zusammenführen und mit der Testabteilung sprechen, um ihre Meinung zu dieser Angelegenheit zu erfahren und die Testfälle einzubeziehen, die sie benötigen, um sicherzustellen, dass das System gründlich getestet wird. Wer weiß? Sie könnten sogar etwas voneinander lernen: P
Und wenn Sie diese "Spezifikationen" schreiben (wie ich sie eher nenne), schreiben Sie sie auf einer höheren Ebene. Also anstatt zu schreiben:
%Vor%Du schreibst etwas wie
%Vor%In den Schrittdefinitionen hinter diesem Schritt führen Sie die gesamte Automatisierung aus (Anmeldung, Durchsuchen der Produktseite, Auswahl der Lieferoptionen, Absenden der Bestellung).
All dies kann in diesen großartigen Artikeln darüber gelesen werden, wie wartbare UI-Automatisierungstests geschrieben werden können:
Ich hoffe, das hilft
Tags und Links automated-tests bdd acceptance-testing specflow gherkin