Es gibt viele Optionen für Teams, wenn es darum geht, wie man Software schreibt und testet. Wie entscheiden Sie, welche Syntax Sie verwenden und welche Testlösung die richtige für Sie ist? In diesem Beitrag werden wir die Verwendung von Gherkin und Gherkin-Tests untersuchen. Wir behandeln die Syntax, wie man einen Test schreibt und gehen auf die Vor- und Nachteile ein.
Diese Optionen können unter den richtigen Umständen eine gute Wahl sein, aber es gibt bestimmte Überlegungen, die man im Hinterkopf behalten sollte, bevor man sich darauf einlässt, vor allem, wenn man auch den Testautomatisierungsprozess berücksichtigt.
Bevor wir besprechen, was Gherkin ist und wie man Gherkin-Tests schreibt, gibt es ein paar Dinge, die wir zuerst behandeln müssen. Es ist wichtig zu verstehen, welche Rolle die verhaltensgetriebene Entwicklung (BDD) spielt und wie diese Praxis, Cucumber und Gherkin zusammenarbeiten.
Was ist BBD?
Behavior-Driven Development (BDD) ist eine Entwicklungsmethode, die die Kommunikation zwischen Teams fördert. Dieser kollaborative Ansatz bringt die geschäftlichen und technischen Aspekte von Projekten zusammen. Diese Methode ermöglicht es Teams, besser über Anforderungen zu kommunizieren, Probleme frühzeitig zu erkennen und Software im Laufe der Zeit einfach zu warten.
Teams, die BDD verwenden, haben mehrere Ziele. Das erste ist, sicherzustellen, dass die Anforderungen vom gesamten Team verstanden werden können. Dann können sich die Teams darauf konzentrieren, mögliche Probleme zu verhindern, anstatt Brände zu löschen, wenn sie später gefunden werden. Oft bedeutet dies, dass weniger Nacharbeit erforderlich ist.
Einfach gesagt kann man diese Entwicklung in zwei Phasen beschreiben. Entdeckung und Test.
Erst finden die Teams heraus, was sie nicht wissen, BEVOR sie anfangen zu arbeiten. Dann haben sie ein besseres Verständnis dafür, wie sie auf dem richtigen Weg bleiben und produktiver sein können.
Wenn es um das Testen geht, beginnt der Prozess des Nachdenkens über diese Tests, bevor die Entwicklung überhaupt beginnt. Tests werden geschrieben, um die Implementierung und das Endprodukt voranzutreiben.
Was ist Cucumber?
Cucumber ist ein Open-Source-Softwaretestwerkzeug, das BBD unterstützt. (Behavior-Driven Development). Es arbeitet mit Gherkin, weil die Gherkin-Syntax Klartext so strukturiert, dass er vom Tool gelesen werden kann.
Cucumber liest Gherkin-Tests und validiert, dass der Code sich so verhält, wie er soll. Es tut dies, indem es Gherkin-Szenarien und -Schritte durcharbeitet. (Mehr dazu weiter unten). Cucumber erstellt dann einen Bericht, der zeigt, ob jeder Schritt und jedes Szenario erfolgreich war oder ob es fehlgeschlagen ist.
Was ist Gherkin?
Gherkin ist eine Sprache, die Entwickler verwenden, um Tests in Cucumber zu definieren. Da diese Sprache einfaches Englisch verwendet, ist sie dazu gedacht, Anwendungsfälle für ein Softwaresystem so zu beschreiben, dass sie von fast jedem gelesen und verstanden werden können.
Diese Syntax fördert die verhaltensgesteuerte Entwicklung, da sie es Entwicklern, Managern, Geschäftsanalysten und anderen Beteiligten ermöglicht, die Anforderungen des Projekts und des Lebenszyklus zu verstehen.
Die Sprache macht es einfach, eine einfache Dokumentation des Codes zu erstellen, der geschrieben wird. Gherkin bietet auch Skripte für die Testautomatisierung und unterstützt Dutzende von Sprachen.
Whitepaper
Verhaltensgetriebene Entwicklung. Wer braucht Gherkin?
Wie schreibt man Gherkin-Tests
Um Gherkin-Tests zu schreiben, müssen Sie zunächst einige der verwendeten Schlüsselwörter verstehen und wissen, was sie in der Praxis bedeuten. Hier ist eine Liste der häufigsten Schlüsselwörter in der Gherkin-Syntax.
- Feature
- Rule
- Example
- Given, When, Then, And, But
- Background
- Scenario Outline
Jedes Schlüsselwort ist entscheidend für das Schreiben eines guten Gherkin-Tests. Schauen wir uns nun diese Schlüsselwörter genauer an und wie man sie zum Schreiben von Gherkin-Tests verwendet.
Feature
Gherkin-Dokumente beginnen mit diesem Schlüsselwort, gefolgt von einem Text, der eine Beschreibung liefert. Einfacher ausgedrückt, ist das Feature eine Beschreibung dessen, was die Software tun soll. Dieses Schlüsselwort wird auch verwendet, um Szenarien zu gruppieren.
Dies ist nicht wirklich für Testzwecke gedacht, aber es erlaubt Ihnen, Dokumentation zu Anforderungen und Geschäftsregeln hinzuzufügen. Der Beschreibungsabschnitt endet, wenn Sie eine neue Zeile mit einem der anderen Schlüsselwörter wie Szenarioumriss, Beispiel oder Regel beginnen.
Beschreibungen
Bei Bedarf können auch Freiform-Beschreibungen unter den oben genannten Schlüsselwörtern geschrieben werden, solange keine Ihrer Zeilen mit einem Schlüsselwort beginnt.
Regel
Das Schlüsselwort Regel wird verwendet, um eine Geschäftsregel darzustellen, die aufgenommen werden muss. Diese liefert den Kontext für ein Feature. Diese „Regeln“ sollten mehr als ein Szenario haben, um die Regel zu zeigen und können einen Hintergrundabschnitt haben. (Detailliert unten).
Gherkin-Schritte
Als nächstes wollen wir uns einige der Schritte in Gherkin-Tests ansehen. Diese sind Gegeben, Wenn, Dann, Und oder Aber.
Gegeben
Gegebene Schritte legen die Szene für das Szenario fest. In den meisten Fällen beschreiben diese Schritte etwas, das in der Vergangenheit stattgefunden hat. Dies gibt dem System einen Kontext, bevor ein Benutzer mit ihm interagiert. Aus diesem Grund sollten Sie in diesem Schritt keine Benutzerinteraktionen behandeln. Denken Sie darüber nach, was Sie in diesem Schritt als Vorbedingungen einbeziehen.
Hinweis: Sie können mehr als einen Schritt „Given“ haben.
When
When-Schritte sind Aktionsschritte. Sie beschreiben ein Ereignis. Beispiele wären ein Ereignis, das durch ein anderes System ausgelöst wird, oder die Interaktion eines Benutzers mit dem System. Es wird empfohlen, dass Sie nur einen Wenn-Schritt für jedes Szenario haben.
Dann
Dann-Schritte sind Ergebnisschritte. Hier beschreiben Sie, was das System tun soll, so dass es mit der tatsächlichen Leistung der Software in der Praxis verglichen werden kann. Dies sollte etwas sein, das Sie tatsächlich als Ergebnis sehen können, wie z.B. eine Meldung oder ein Bericht.
Und, aber
Wenn Sie mehrere von einem der oben aufgeführten Schritttypen haben, können Sie und oder aber verwenden. Das hilft Ihnen, Ihre Dokumentation übersichtlich und lesbar zu halten.
Hintergrund
Wie bereits erwähnt, können Sie mit dem Hintergrund noch mehr Kontext zu den Szenarien in einer Funktion hinzufügen. Hier können Sie je nach Bedarf mehr als einen gegebenen Schritt haben.
Hinweis: Es kann nur einen Hintergrundschritt für jedes Feature geben. Wenn Sie mehr Hintergrundschritte benötigen, müssen Sie verschiedene Feature-Dateien erstellen.
Szenario-Gliederung
Die Szenario-Gliederung enthält einen Abschnitt mit Beispielen. Diese Schritte werden wie eine Vorlage gelesen. Die Szenariogliederung läuft für jede Zeile des Beispielabschnitts einmal ab, mit Ausnahme der Kopfzeile.
Vor- und Nachteile der Verwendung von Gherkin
Nun, da Sie wissen, wie man einen Gherkin-Test schreibt, fragen Sie sich vielleicht, wie Sie bestimmen können, ob dies die richtige Option für Ihr Team ist. Die Wahrheit ist, dass es sowohl Vor- als auch Nachteile gibt, die mit der Verwendung von Gherkin und Cucumber einhergehen. Schauen wir uns ein paar davon genauer an.
Gherkin ist einfach
Im Kern ist Gherkin sowohl für Entwickler als auch für Geschäftsleute leicht zu verstehen. In gewissem Sinne ist es „nicht-technisch“, was die Zusammenarbeit zwischen Teams erleichtert.
Fokussiert auf Projektanforderungen
Die Gherkin-Syntax und diese Art des Testens zielen wirklich auf die Projekt- und Geschäftsanforderungen ab. Dies stellt einen Entwicklungsprozess sicher, der sich an den Bedürfnissen der Benutzer orientiert.
Wiederverwendung von Code
Die Art und Weise, wie diese Tests geschrieben sind, macht es einfacher, Teile des Codes anderer Tests wiederzuverwenden. Das kann sich summieren und spart Zeit, Geld und Ressourcen.
Nicht für alle Projekte
Gherkin + Cucumber ist nicht für alle Projekttypen ideal. Kurze Projekte, die viele Tests erfordern, können mit dieser Methode verzögert werden. Während BBD eine Zeit und einen Ort hat, kann diese Denkweise und die Implementierung dieser Tests Projekte verlangsamen.
Es erfordert viel Engagement
Das kann ein Pro oder ein Contra sein, abhängig von der Entwicklungsmethodik Ihres Teams. Wie bereits erwähnt, gehen Gherkin und Cucumber Hand in Hand mit der verhaltensgesteuerten Entwicklung. Das bedeutet, dass Ihr Team ständig kollaborativ arbeiten muss, was vielleicht nicht immer zu Ihrem Projekt passt.
Potenzieller Aufwand
Auch wenn diese Tests einfacher zu schreiben sind, kann ein schlecht geschriebener Test zu einer Menge zusätzlicher Zeit und Geld führen, wenn Tests neu geschrieben werden müssen. Wenn Entwickler Gherkin und Cucumber nicht sehr gut verstehen, kann diese Art von Tests ein großes finanzielles Risiko darstellen
Die Zukunft von Gherkin
Hier bei Functionize glauben wir, dass die Abkehr von Gherkin die Zukunft ist und bessere Vorteile bringen wird. Gherkin ist eine Art und Weise, wie Leute Testpläne schreiben, aber das ist nicht der Punkt, an dem der Prozess endet. Die Entwickler müssen immer noch Testskripte schreiben. Dieser Prozess kann eine Menge Zeit vergeuden, die die Entwickler anderweitig verbringen könnten.
Gherkin ist ein guter erster Schritt, um nicht-technische Mitarbeiter in die Automatisierungstests einzubinden. Aber unsere Kunden wenden sich an unsere ALP, weil wir den „Mittelmann“ ausschalten, der Selenium skripten muss, und die Testerstellung einfach machen.
Wrapping Up
Gherkin und Cucumber können eine gute Wahl sein, wenn jeder im Team eingeweiht werden soll, ohne sich in technische Aspekte zu vertiefen. Auf Dauer kann diese Kombination die Testautomatisierung jedoch komplizierter machen, als sie sein muss.
Die Wahl liegt bei Ihnen, aber bevor Sie sich für eine Syntax und Lösung entscheiden, sollten Sie die Vor- und Nachteile sorgfältig abwägen. Das Wichtigste ist, dass Sie und Ihr Team die richtigen Werkzeuge für Ihre Entwicklungsprojekte bekommen.
Unsere Meinung ist jedoch, dass Gherkin einfach zu unflexibel und schwer zu erlernen ist. Unsere Lösung ist unsere kürzlich veröffentlichte Adaptive Language Processing Engine (ALP™). Diese ermöglicht es Ihnen, Tests als eine Reihe von Schritten in einfachem Englisch zu schreiben.
In diesem Blog haben wir uns damit beschäftigt, was Gherkin-Tests sind, wie man Gherkin-Tests schreibt und welche Vor- und Nachteile die Verwendung dieser Syntax hat. Wir hoffen, dass Sie dadurch einen Einblick in die beste Sprache und Testoptionen für Ihr nächstes Projekt erhalten haben.