Was ist Gherkin und in welchem Kontext macht der Einsatz Sinn?

Gherkin ist eine leichgewichtige Sprache zur Beschreibung des Systemverhaltens, die ein vorgegebenes minimales Set von speziellen Schlüsselwörtern verwendet, um ausführbare Spezifikationen auf Basis natürlicher Sprache zu formulieren und in gleicher Struktur zu gestalten. Der große Vorteil von Gherkin ist die Möglichkeit die Spezifikationen verständlich anhand von konkreten Beispielen in verschiedenen linguistischen Sprachen, darunter Deutsch, Englisch und viele anderen, je nach Präferenz der Entwicklungsteams, zu formulieren.

Zielsetzungen von Gherkin:

Gherkin verfolgt das Ziel, natürlichsprachliche Spezifikationen zu erstellen, die für das gesamte Team verständlich sind, einschließlich Fachabteilungen. Diese Spezifikationen, auch als Features bezeichnet, dienen als High-Level-Beschreibung einzelner Softwarefeatures, die jedoch nicht in abstrakter Form, sondern andersrum möglichst anhand konkreter Beispiele mit Eingabedaten und erwarteten Ergebnissen beschrieben werden. Dadurch werden die Gherkin-Spezifikationen nicht nur gut lesbar und fachlich verständlich, sondern auch ausführbar.

Für die automatisierte Ausführung werden die fachlichen Gherkin-Features mittels Adapterframeworks wie Cucumber (Java), Cucumber.js (JavaScript/TypeScript) oder Specflow (C#) mit Funktionen in Code verknüpft, über die die technische Automatisierung und Ausführung erfolgt.

Dadurch wird das gewünschte Systemverhalten an einer zentralen Stelle als „Single Point of Truth“ festgehalten und dokumentiert. Diese allgemeinverständliche Dokumentation bildet die Grundlage für automatisierte Tests und die Entwicklung der Softwarefeatures.

Gherkin-Struktur:

Ein typisches Gherkin-Feature umfasst mehrere verbundene Szenarien, die der Struktur von “Given” (Vorbedingung eines Beispiels), “When” (Aktion, die ausgeführt werden soll) und “Then” (erwartete Systemreaktion) folgen. Diese Struktur orientiert sich an der Beschreibung von User Stories in agilen Projekten und wird ergänzt durch die Form von “In order” (Zweck des Features), “As a” (Zielgruppe des Features) und “I want” (Funktionsbeschreibung).

 

Beispiel für ein Gherkin Feature:

				
					Feature: Geldüberweisung vom Giro Konto
  Als registrierter privater Kunde möchte ich von meinem Giro-Konto eine Überweisung unter Berücksichtigung des Überweisungslimits und des Dispovolumens tätigen.

  Rule: Geldabbuchung nur nach erfolgreicher Transaktion

    Scenario: Erfolgreiche Geldüberweisung
      Given Als Privatkunde habe ich ein Konto von Typ Giro Konto mit aktuellem Kontostand 1000 €
      When Ich von Giro Konto 500 € auf ein gültiges externes Konto überweise
      Then Ich erhalte eine "Bestätigung" meiner Überweisung mit der Meldung "Überweisung erfolgreich"
      And der aktuelle Kontostand von Giro Konto beträgt 500 €
				
			

Fazit und Bezug zu Test-Driven-Development (TDD) und Behaviour Driven Development (BDD):

Gherkin bietet nicht nur eine klare und verständliche Art der Spezifikation, sondern integriert sich auch nahtlos in Vorgehensmodelle wie “Test-Driven-Development“ und “Behaviour Driven Development”. Die Spezifikationen dienen als Grundlage für automatisierte Tests, die vor der eigentlichen Implementierung geschrieben werden können (TDD). Gleichzeitig fördert Gherkin die frühzeitige Zusammenarbeit zwischen verschiedenen Teams (Dev., QA, Fachabteilungen) und ermöglicht eine verständliche und strukturierte Definition von erwartetem Verhalten (BDD). Die Integration von Gherkin in den Entwicklungsprozess trägt somit zur Schaffung robuster, gut dokumentierter und qualitativ hochwertiger Software bei.

 

Weiterführende Schulung:

Sie möchten mehr zum Thema BDD / Gherkin / Cucumber oder Specflow erfahren? 

Der Kurs „Behavior Driven Development (BDD) mit Cucumber“ bietet eine umfassende Einführung in die Welt von BDD mit den Werkzeugen Cucumber / CucumberJs und SpecFlow.

Die Teilnehmerinnen und Teilnehmer erhalten nicht nur ein tiefes Verständnis der Grundprinzipien von Behavior Driven Development und Anwendung von Gherkin, sondern lernen auch, wie man mit Hilfe von Best Practices (3-Amigo Session, Example Mapping, Feature Mapping) die Zusammenarbeit in agilen Teams verbessert, Szenarien effektiv erstellt, daraus automatisierte Tests auf verschiedenen Teststufen ableitet und diese in der Praxis umsetzt.

Dieser Kurs ist ideal für alle Tester, Entwickler und Product Owner. Er wird aber auch sehr häufig von ganzen agilen Teams gebucht, die mit Hilfe dieses methodischen Ansatzes ihre Zusammenarbeit besser und effektiver gestalten wollen.

Weiterführende Quellen:

Gherkin Referenz: https://cucumber.io/docs/gherkin/reference/

Author des Lexikon Beitrages:

Sandro Dörr
QA Spezialist und IT Trainer bei SimplyTest GmbH