Gherkin ist eine auf natürlicher Sprache basierende Syntax, die verwendet wird, um Testfälle und Anforderungen in einer strukturierten, leicht verständlichen Form zu schreiben. Gherkin ist Teil des Cucumber-Framework, das im Jahr 2008 von Aslak Hellesøy entwickelt wurde und heute eines der führenden Tools für die Testautomatisierung ist.
Gherkin wird oft in der agilen Softwareentwicklung eingesetzt, da es für die Zusammenarbeit zwischen Entwicklern, Testern und Kunden konzipiert ist. Durch die Syntax der Sprache können Anforderungen und Testfälle in einer einfachen und konsistenten Weise zu kommunizieren, ohne dass es zu Missverständnissen kommt, als Teil des BDD (Behavior Driven Development) Prozess.
Das Cucumber-Framework
Cucumber ist ein Open-Source-Tool für die Automatisierung von Akzeptanztests auf der Grundlage von Gherkin. Es unterstützt verschiedene Programmiersprachen wie Java, Ruby, JavaScript und Python. Es ist auch mit verschiedenen Test-Tools und Frameworks wie Selenium, Appium, JUnit und TestNG integrierbar.
Das Cucumber-Framework ist keine herkömmliche „Technologie“. Es ist keine Sammlung von Bits und Bytes. Es ermöglicht das Schreiben in natürlicher Sprache (auch in über 70 Sprachen) ohne tiefes technisches Wissen. Dabei reicht aus, Ideen und Anforderungen aufzuschreiben und spezifische Begriffe und Richtlinien zu verwenden.
Syntax
Funktionalität: Addition von zwei Zahlen
Ich möchte in der Lage sein, zwei Zahlen zu addieren
Szenario: Addition von zwei positiven Zahlen
Angenommen ich habe 2 in den Taschenrechner eingegeben
Und ich habe 3 in den Taschenrechner eingegeben
Wenn ich auf "addieren" drücke
Dann sollte das Ergebnis 5 auf dem Bildschirm angezeigt werden.
Funktionalität
: Beschreibt die Funktion, die getestet wird, sowie den Grund für den Test. Der Name sollte aussagekräftig sein und eine klare Vorstellung davon vermitteln, was getestet wird.Szenario
: Hier wird das Szenario beschrieben, in unserem Fall, dass wir zwei positive Zahlen addieren wollen. Optional können Tags hinzugefügt werden, um das Szenario zu kategorisieren oder zu markieren.- Die Schritte des Szenarios werden in den Zeilen
Angenommen
,Und
,Wenn
undDann
beschrieben.- Mit
Angenommen
werden die Zahlen 2 und 3 in den Taschenrechner eingegeben. Wenn
beschreibt, dass wir auf die Schaltfläche „add“ gedrückt haben, um die Zahlen zu addieren.Dann
beschreibt das erwartete Ergebnis, nämlich dass das Ergebnis auf dem Bildschirm 5 sein sollte.
- Mit
- Die Schritte können auch mit
Und
undAber
kombiniert werden, um die Lesbarkeit und Verständlichkeit des Szenarios zu erhöhen. In diesem Beispiel haben wirUnd
verwendet, um anzugeben, dass wir beide Zahlen in den Taschenrechner eingegeben haben.
Keywords (deutsch, Schlüsselwörter)
Keywords | Beschreibung | |
---|---|---|
Englisch | Deutsch | |
Die primary (deutsch, Primäre) Keywords sind: | ||
Feature |
Funktionalität /Funktion |
Beschreibt das zu testende Feature/Funktionalität. |
Background |
Hintergrund |
Beschreibt die Schritte, die vor jedem Szenario ausgeführt werden sollen. |
Scenario |
Szenario |
Beschreibt ein Szenario für einen Testfall. |
Scenario Outline |
Szenario-Ablaufplan |
Beschreibt eine Vorlage für Szenarien mit Platzhaltern, die durch Beispiele in einer Tabelle ersetzt werden können. |
Examples |
Beispiele |
Beschreibt eine Tabelle mit Beispielen, die in einen Scenario Outline eingefügt werden können, um verschiedene Szenarien zu erstellen. |
Given |
Gegeben /Angenommen |
Beschreibt den Anfangszustand oder die Voraussetzung, die für den Testfall erfüllt sein muss. |
When |
Wenn |
Beschreibt die Aktion, die ausgeführt wird, um das Verhalten des Systems zu testen. |
Then |
Dann |
Beschreibt das erwartete Ergebnis oder Verhalten des Systems, nachdem die Aktion ausgeführt wurde. |
And |
Und |
Verwendet, um zusätzliche Schritte hinzuzufügen, die dieselbe Art von Aktion oder Erwartung beschreiben wie der vorherige Schritt. |
But |
Aber |
Verwendet, um einen Schritt hinzuzufügen, der das Gegenteil von dem beschreibt, was im vorherigen Schritt erwartet wurde. |
Rule |
Regel |
Verwendet, um einen Schritt hinzuzufügen, der das Gegenteil von dem beschreibt, was im vorherigen Schritt erwartet wurde. |
Es gibt auch einige Secondary (deutsch, Sekundäre) Keywords: | ||
""" |
Doc Strings: Mehrzeilige Textblöcke, die zur Dokumentation von Szenarien oder Steps verwendet werden. | |
| |
Data Tables: Tabellen, die verwendet werden, um Daten in Szenarien oder Steps darzustellen. | |
@ |
Tags: Schlüsselwörter, die verwendet werden, um Szenarien oder Features zu markieren und zu organisieren. | |
# |
Comments: Text, der zur Dokumentation oder Beschreibung von Szenarien oder Steps verwendet wird, jedoch von der Ausführung des Codes ausgeschlossen ist. |
Weitere Beispiele
- Anmeldung an einer Webseite:
Funktion: Anmeldung
Szenario: Erfolgreiche Anmeldung
Angenommen ich befinde mich auf der Anmeldeseite
Wenn ich meine gültigen Anmeldeinformationen eingebe
Und ich auf Anmelden klicke
Dann sollte ich auf die Startseite weitergeleitet werden
- Produkts aus dem Warenkorb nehmen:
Feature: Warenkorb
Hintergrund:
Angenommen ich bin auf der Produktseite
Und ich habe ein Produkt in den Warenkorb gelegt
Szenario: Entfernen eines Produkts aus dem Warenkorb
Angenommen ich habe den Warenkorb geöffnet
Wenn ich das Produkt aus dem Warenkorb entferne
Dann sollte der Warenkorb leer sein
- Suchfunktion:
Feature: Suchfunktion
Szenario: Suchergebnisse anzeigen
Angenommen ich befinde mich auf der Startseite
Wenn ich in das Suchfeld "Schuhe" eingebe
Und ich auf die Suchschaltfläche klicke
Dann sollte ich eine Liste von Schuhen sehen
Und die Liste sollte mindestens ein Ergebnis enthalten
Links
- https://cucumber.io/: Cucumber.io ist die offizielle Website von Cucumber und bietet umfassende Informationen zu Cucumber, Dokumentation, Schulungen und vieles mehr.
- https://cucumber.io/docs/gherkin/ : Eine umfassende Referenz für die Gherkin-Syntax. Die Seite enthält eine Liste von Schlüsselwörtern, die in Gherkin-Tests verwendet werden können, sowie Beispiele für die Verwendung von Gherkin in verschiedenen Kontexten.
- https://de.wikipedia.org/wiki/Behavior_Driven_Development: Der Wikipedia-Artikel über Behavior Driven Development (BDD) beschreibt die Konzepte und Methoden hinter BDD, einschließlich der Verwendung von Gherkin und Cucumber.
- https://de.wikipedia.org/wiki/Cucumber_(Software) : Wikipedia-Artikel über das Cucumber-Tool, welches Testautomatisierung und BDD (Behavior Driven Development) ermöglicht. Der Artikel bietet Informationen über die Geschichte, Funktionen und Verwendung von Cucumber.
- https://www.testautomatisierung.org/lexikon/gherkin/ : Dieser Link führt zu einem Eintrag im Lexikon der Website Testautomatisierung.org. Der Eintrag bietet eine kurze Einführung in die Gherkin-Sprache und erklärt ihre Verwendung in der Testautomatisierung. Der Eintrag enthält auch einige Beispiele für die Verwendung von Gherkin in der Praxis.
Danke für diese hilfreiche Seite. Mir ist aufgefallen:
„Durch die Syntax der Sprache können Anforderungen und Testfälle in einer einfachen und konsistenten Weise zu kommunizieren, ohne dass es zu Missverständnissen kommt, als Teil des BDD (Behavior Driven Development) Prozess.“ – dieser Satz ist unverständlich.
„But“ und „Rule“ haben dieselbe Beschreibung:
„Verwendet, um einen Schritt hinzuzufügen, der das Gegenteil von dem beschreibt, was im vorherigen Schritt erwartet wurde.“
Bei „Rule“ würde ich mir eine andere Beschreibung erwarten, sonst wäre die Fallunterscheidung nicht notwendig.