Verwenden von SpecFlow für End-to-End-Regressionstests

8

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:

  1. Melden Sie sich an
  2. Suche nach einem Produkt
  3. Wählen Sie ein Produkt aus, das Sie kaufen möchten
  4. Erstellen Sie einen Auftrag
  5. Wählen Sie die Zustellungsoption aus.
  6. Reichen Sie die Bestellung ein.
  7. Stornieren Sie die Bestellung.

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!

    
Mark Chidlow 13.12.2011, 12:36
quelle

1 Antwort

11

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

    
Marcus Hammarberg 14.12.2011, 13:08
quelle