Was ist Gherkin?

Bei Gherkin handelt es sich um eine einfache Beschreibungssprache mit sehr wenigen Regeln zur strukturierten Formulierung der Szenarien im Rahmen von verhaltensgetriebener Software Entwicklung nach BDD-Prinzipien. Im Fokus steht eine möglichst einfache und wenig formale Möglichkeit die Szenarien, die das fachliche Verhalten eines Software Features abbilden, als konkrete „Beispiele“ zu beschreiben. Damit möchte man sicherstellen, dass alle Team-Mitglieder eines agilen Software-Entwicklungsteams diese Formulierungen ohne spezielle Domain-Specific-Language (DSL) Kenntnisse verstehen können und optimalerweise im Rahmen der gemeinsamen „3 Amigo Sessions“ zusammen ausarbeiten können.

Im Unterschied zu der in der Qualitätssicherung verbreiteten Methodik zur Beschreibung der Testszenarien mit proprietären und streng formalen Schlüsselwörtern einer schlüsselwort-basierten Testautomatisierungs-DSL, legt Gherkin kaum formale Anforderungen an die Beschreibungssprache, so dass die Szenarien inhaltlich in beliebiger natürlicher Sprache ausformuliert werden können und sich lediglich hinsichtlich der Struktur an das durch Gherkin vorgegebene Rahmenwerk „Given-When-Then“ halten sollten.

Grundstruktur der Szenarien mit Gherkin

Die Spezifikation der Szenarien mit Gherkin wird normalerweise in sogenannten Feature Files abgelegt. Bei diesen Files handelt es sich um menschlich lesbare Textdateien. Dabei enthält ein Feature File immer einen Oberknoten „Feature“, welcher ein oder mehrere Szenarien enthalten kann, die das Verhalten des Features als konkrete Beispiele mittels Szenarien-Schritte beschreiben.

Gherkin Struktur

Schlüsselwörter der Gherkin Sprache

Gherkin gibt für die Beschreibung der Szenarien-Schritte eine Grundstruktur mittels folgender Schlüsselworte vor:

  • Given – Vorbedingung eines Beispiels
  • When – Aktion die Ausgeführt wird
  • Then – Erwartete Reaktion des Systems
  • And bzw. Not – in Verbindung mit anderen Schlüsselworten, um diese zu ergänzen

Anzumerken ist, dass selbst diese pseudo-formalen Schlüsselwörter nicht notwendigerweise in Englisch, sondern auch äquivalent in einer anderen natürlichen Sprache formuliert werden können – wichtig ist nur darauf zu achten, dass diese Schlüsselwörter später bei der Herstellung der Verknüpfung mit der Testautomatisierung durch das verwendete Framework wie z.B. Cucumber richtig erkannt werden. Einfachheitshalber verwendet man in der Praxis die englischen Bezeichnungen dieser Schlüsselwörter.

 

Beispiel

Das nachfolgende Beispiel veranschaulicht die Verwendung von Gherkin Sprache zur Beschreibung des Verhaltens eines Features zur Bereitstellung der Multiplikationsoperation einer Taschenrechner Applikation als konkrete und für alle Team-Stakeholder verständliche Bezeichnungen.

Feature: Support Multiplication of integer numbers in Calucaltor App

  As a user I want to be able to muliply two integer numbers in Calucaltor App

  Scenario: Sunny Day Case: Multiply two positive numbers larger than zero
    Given I open „Calculator“ app
    When I enter 3 as first number and 4 as second number and trigger calculation
    Then I should get the result 12

Scenario: Negative Case: Multiply a positive numbers with negative number
    Given I open „Calculator“ app
    When I enter 3 as first number and -4 as second number and trigger calculation
    Then I should get the result -12

 

Ziele der Gherkin Sprache

Als eine kaum formale Sprache dient Gherkin primär als eine Kommunikationssprache in agilen Teams zur Beschreibung von Systemverhalten anhand der konkreten Beispiele und unterstützt damit folgende Ziele:

  • Erschaffung von verständlicher und ausführbarer Spezifikation für alle Stakeholder in agilen Teams
  • Ausgangsbasis für die Automatisierung der Tests
  • Dokumentation des Systemverhaltens

 

Verwandte Begriffe