Das Richtige tun
Moderne Entwicklung kann ohne automatisierte Tests nicht existieren. Tests können auch von Laien sehr schnell geschrieben werden. Wir haben also Tests, alles ist wie gut. Können wir solchen Tests vertrauen? Wie ist die Qualität unserer Qualitätskontrollinstrumente? Schauen wir uns Specflow-Tests an, die in menschlicher Sprache geschrieben werden können.
Feature: SpecFlowFeature In order to avoid silly mistakes As a math idiot I want to be told the sum of two numbers Scenario: Add two numbers Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add Then the result should be 120 on the screen
Dieser Test besteht aus drei Standardteilen, die als Einrichtung, Aktion und Überprüfung bezeichnet werden. Alles sieht gut aus. Aber was passiert, wenn jemand diesem Test einen zusätzlichen Schritt hinzufügt?
Feature: SpecFlowFeature In order to avoid silly mistakes As a math idiot I want to be told the sum of two numbers Scenario: Add two numbers Given I have entered 50 into the calculator And I have entered 70 into the calculator When I press add And I press memorize Then the result should be 120 on the screen
Das Speichern ist eine übliche Operation im Taschenrechner, um die aktuelle Nummer in den Speicher zu schreiben. Wenn wir diesen Test ausführen, ist er immer noch grün. Dies ist derzeit kein guter Test, da niemand prüft, wie sich ein neuer Testschritt auf das gesamte System auswirkt.
Diese Art von Test kann als Ergebnis vieler Umgestaltungen oder wesentlicher Änderungen in der Leistungsbeschreibung auftreten. Dies bedeutet, dass wir alle Tests grün haben, aber sie überprüfen die Leistung des Systems nicht sehr gut. Der oben erwähnte Test kann auf zwei Arten behoben werden: Löschen Sie diesen hinzugefügten Schritt „Und ich drücke auf Speichern“ oder fügen Sie am Ende des Tests einen weiteren Schritt hinzu, um den Speicherstatus zu überprüfen. „Dann ist der im Speicher gespeicherte Wert 120“.
SpecFlowMaster Plugin
Mit diesem Plugin für Specflow können Sie solche Tests und verdächtige Testreihen finden. Wie funktioniert es Für jede Zeile der Specflow-Funktion wird ein spezieller Test generiert, der denselben Test ausführt, jedoch ohne diese Zeile. Wenn die Testausführung zu einem Fehler führt, ist dies das erwartete Verhalten und hier ist alles in Ordnung. Wenn ein solcher Test erfolgreich ist, stimmt etwas mit der Testlinie in diesem Test nicht und das System stellt diese Linie als verdächtig fest. Das heißt, Der neu generierte Test ist rot.
Komplexere Fälle für Hintergrundschritte oder Szenarien mit mehreren Datensätzen werden ebenfalls überprüft. Für Vorbedingungsschritte führt das Plugin alle Tests aus der Datei aus, jedoch ohne die Testzeile. Bei Tests mit Datensätzen generiert das Plugin eine Testausführung für alle Datensätze.
Technische Hinweise- C #, VB
- SpecFlow 3.0 oder höher
- .NET Framework 4.7.1 oder höher, .NET Core 2.0 oder höher
Was ist in Zukunft geplant?- Unterstützung für Vorher- und Nachher-Attribute
- Ähnliche Plugins für Java und Node.js.
Referenzen- Das Plugin finden Sie auf github
- Senden Sie Feedback an arskiev@gmail.com