Gherkin-Sprache: Syntax, Format und Beispiele

โšก Intelligente Zusammenfassung

Gherkin ist eine fรผr Geschรคftsleute lesbare Sprache, die das Verhalten von Software ohne Implementierungsdetails beschreibt. Sie verwendet die Schlรผsselwรถrter Given, When und Then zur Definition. Cucumber Testszenarien in einfacher Sprache, die als lebendige Dokumentation und Gerรผst fรผr automatisierte BDD-Tests dienen.

  • ๐Ÿ“ Einfache Sprache: Gherkin beschreibt das Verhalten so, dass auch Nicht-Programmierer Tests lesen und schreiben kรถnnen.
  • ๐Ÿฅ’ Cucumber: Cucumber Liest .feature-Dateien und fรผhrt die Gherkin-Schritte als Tests aus.
  • ๐Ÿ”‘ Gegeben-Wenn-Dann: Gegeben setze Kontext, wenn eine Aktion ausgelรถst wird, dann stelle das Ergebnis fest.
  • ๐Ÿงฑ Stichwort: Die einzelnen Szenarien sind durch die Elemente โ€žFeatureโ€œ, โ€žHintergrundโ€œ, โ€žSzenarioโ€œ, โ€žUndโ€œ und โ€žAberโ€œ strukturiert.
  • โœ… Best Practice: Behandeln Sie jedes Szenario unabhรคngig und beschreiben Sie das Was, nicht das Wie.
  • ๐Ÿค– KI-Unterstรผtzung: KI-Tools entwerfen aus einfachen Anforderungen Gegeben-Wenn-Dann-Szenarien.

Gurkensprache in Cucumber

Was ist Gurkensprache?

Gurke ist eine fรผr Geschรคftsleute verstรคndliche Sprache, die Ihnen hilft, Geschรคftsverhalten zu beschreiben, ohne auf Implementierungsdetails einzugehen. Es handelt sich um eine domรคnenspezifische Sprache zur Definition von Tests in Cucumber Es verwendet ein einfaches Format, um Anwendungsfรคlle zu beschreiben, und ermรถglicht es Benutzern, Logikdetails aus Verhaltenstests zu entfernen.

Der Text in Gherkin dient als Dokumentation und als Gerรผst fรผr Ihre automatisierten Tests. Das Gherkin-Format basiert auf der TreeTop-Grammatik, die in รผber 37 Sprachen existiert. Daher kรถnnen Sie Gherkin in รผber 37 gesprochenen Sprachen schreiben. Das Skript erfรผllt zwei Hauptzwecke: Es dokumentiert Benutzerszenarien und bildet die Grundlage fรผr das Schreiben automatisierter BDD-Tests.

Warum Gurke?

Ohne ein gemeinsames, leicht verstรคndliches Format beschreiben Fach- und IT-Teams Anforderungen unterschiedlich, was zu Missverstรคndnissen fรผhrt. Gherkin bietet allen Beteiligten ein einheitliches, strukturiertes Vokabular, das sich wie normales Englisch liest und dennoch direkt auf ausfรผhrbare Tests abgebildet werden kann.

Gurkensyntax

Gherkin ist eine zeilenorientierte Sprache, genau wie YAML und PythonJede Zeile wird als Schritt bezeichnet und beginnt mit einem Schlรผsselwort. Tabulatoren oder Leerzeichen dienen zur Einrรผckung. Kommentare kรถnnen an beliebiger Stelle eingefรผgt werden, mรผssen aber mit einem #-Zeichen beginnen. Der Interpreter liest jede Zeile, nachdem er Gherkin-Schlรผsselwรถrter wie โ€žGivenโ€œ, โ€žWhenโ€œ und โ€žThenโ€œ entfernt hat.

Feature: Title of the Scenario
  Given [Preconditions or Initial Context]
  When [Event or Trigger]
  Then [Expected output]

Ein Gherkin-Dokument hat die Dateiendung .feature und ist einfach eine Testdatei mit einer beschreibenden Dateiendung. Cucumber liest das Gherkin-Dokument und fรผhrt einen Test aus, um zu รผberprรผfen, ob sich die Software so verhรคlt, wie es die Gherkin-Syntax beschreibt.

Wichtige Begriffe, die in der Gewรผrzgurke verwendet werden

Die wichtigsten Schlรผsselwรถrter sind: Merkmal, Hintergrund, Szenario, Gegeben, Wenn, Dann, Und, Aber und Szenario-Gliederung. Cucumber Es gibt keine strengen Namensregeln, aber eine klare Namenskonvention ist hilfreich.

Funktion

Die Datei sollte die Erweiterung .feature haben, und jede Feature-Datei sollte nur ein Feature beschreiben. Das Schlรผsselwort Feature beginnt mit Feature: gefolgt von einem Leerzeichen und dem Feature-Namen.

Szenario

Jede Feature-Datei kann mehrere Szenarien enthalten, und jedes Szenario beginnt mit Szenario: gefolgt vom Szenarionamen.

Hintergrund

Das Schlรผsselwort โ€žHintergrundโ€œ fรผgt dem Szenario Kontext hinzu. Es kann Schritte enthalten, die in jedem Szenario gemeinsam sind; der Unterschied besteht darin, dass diese Schritte vor jedem Szenario ausgefรผhrt werden.

Gegeben

Das Schlรผsselwort โ€žGivenโ€œ versetzt das System in einen definierten Zustand, bevor der Benutzer mit ihm interagiert. Es definiert die Vorbedingung oder den Kontext:

Given I am on "/."

Wenn die Funktion

Das Schlรผsselwort โ€žWhenโ€œ definiert die vom Benutzer ausgefรผhrte Aktion:

When I perform "Sign In."

Dann

Das Schlรผsselwort โ€žThenโ€œ definiert das Ergebnis, das nach der Aktion im Schritt โ€žWhenโ€œ beobachtet wird. Sie sollten nur erkennbare ร„nderungen รผberprรผfen:

Then I should see "Welcome Tom."

Und Aber

Es kรถnnen mehrere โ€žGegebenโ€œ-, โ€žWennโ€œ- oder โ€žDannโ€œ-Schritte vorhanden sein. Die Schlรผsselwรถrter โ€žUndโ€œ und โ€žAberโ€œ fรผgen zur besseren Lesbarkeit zusรคtzliche Schritte hinzu:

And I enter "EmailAddress" with "tomjohn@gmail.com."
But I should see "Welcome Tom."

Given, When, Then, And und But sind allesamt Testschritte. Der Interpreter gibt keinen Fehler aus, wenn man sie vertauscht, aber das Szenario ist dann nicht mehr verstรคndlich. Verwenden Sie daher jedes Schlรผsselwort fรผr seinen vorgesehenen Zweck.

Beispiele fรผr Gurken

Beispiel 1: Eine Anmeldefunktion fรผr ein soziales Netzwerk.

Feature: Login functionality of a social networking site
  Given I am a registered user
  When I enter my username
  And I enter my password
  Then I should be redirected to the home page

Gherkin analysiert jeden im Feature-File beschriebenen Schritt, und die Schritte im Feature-File mรผssen mit denen in der Schrittdefinitionsdatei รผbereinstimmen.

Beispiel 2: Ein Benutzerauthentifizierungsszenario mit Hintergrund.

Feature: User Authentication

Background:
  Given the user is already registered on the website

Scenario: Successful login
  Given the user is on the login page
  When the user inputs the correct email address
  And the user inputs the correct password
  And the user clicks the Login button
  Then the user should be authenticated
  And the user should be redirected to their dashboard

bewรคhrte Methoden zur Verwendung von Gewรผrzgurken

  • Jedes Szenario sollte separat und unabhรคngig ausgefรผhrt werden.
  • Jede Funktion sollte fรผr sich ausfรผhrbar sein.
  • Die einzelnen Schritte sollten separat angezeigt werden.
  • Verbinden Sie Ihre Szenarien mit Ihren Anforderungen und track welche Szenarien zu welcher Anforderung gehรถren.
  • Erstellen Sie modulare, leicht verstรคndliche Schritte und kombinieren Sie gรคngige Szenarien.
  • Beschreiben Sie, was das System tut, nicht wie es es tut.

Vorteile von Gurke

  • Gherkin ist so einfach, dass auch Nicht-Programmierer es verstehen kรถnnen.
  • Programmierer kรถnnen es als solide Grundlage fรผr ihre Tests nutzen.
  • Dadurch werden User Stories leichter verstรคndlich und die Geschรคftsanforderungen werden gezielt angegangen.
  • Sowohl Fรผhrungskrรคfte als auch Entwickler kรถnnen dasselbe Skript lesen.
  • Gherkin-Testfรคlle verknรผpfen Akzeptanztests direkt mit automatisierten Tests.
  • Der Schreibstil erleichtert die Wiederverwendung von Code in verschiedenen Tests.

Nachteile von Gurke

  • Es erfordert ein hohes MaรŸ an geschรคftlichem Engagement und Zusammenarbeit.
  • Es funktioniert mรถglicherweise nicht in jedem Szenario gut.
  • Schlecht formulierte Tests kรถnnen die Kosten fรผr die Testwartung erhรถhen.

Hรคufig gestellte Fragen

BDD ist eine agile Vorgehensweise, bei der Teams das erwartete Verhalten in einfacher Sprache beschreiben, bevor sie mit der Programmierung beginnen. Gherkin-Szenarien erfassen dieses Verhalten, sodass sowohl die Fachabteilung als auch die technischen Mitarbeiter ein gemeinsames Verstรคndnis davon haben.

Gherkin ist die Syntax in einfacher Sprache zum Schreiben von Szenarien. Cucumber ist eines von mehreren Tools, die Gherkin .feature-Dateien lesen und die Schritte fรผr Ihre Anwendung ausfรผhren.

Ein Szenario-Abschnitt fรผhrt dieselben Schritte mit mehreren Datensรคtzen aus, die in einer Beispieltabelle aufgefรผhrt sind. Dadurch wird vermieden, dass ein Szenario fรผr jeden Satz von Eingabewerten dupliziert wird.

Eine Schrittdefinition ordnet jedem Gherkin-Schritt den entsprechenden Code zu, der ihn ausfรผhrt. Cucumber Es liest einen Schritt, findet die passende Definition und fรผhrt diese Methode in der Anwendung aus.

Die drei Freunde โ€“ ein Produktverantwortlicher, ein Entwickler und ein Tester โ€“ รผberprรผfen gemeinsam eine Funktion. Ihre kombinierte Sichtweise fรผhrt zu klareren und umfassenderen Gherkin-Szenarien als jede einzelne Rolle.

Neben CucumberGherkin wird unterstรผtzt von SpecFlow fรผr .NET und Behave fรผr Pythonunter anderem BDD-Frameworks.

Ja. KI-Assistenten wandeln eine User Story in Entwรผrfe fรผr Given-When-Then-Szenarien um, schlagen Grenzfรคlle vor und achten auf eine einheitliche Formulierung, obwohl ein Tester diese auf Richtigkeit รผberprรผfen sollte.

KI-Tools lesen einfache Anforderungen und automatisieren den ersten Entwurf strukturierter Gegeben-Wenn-Dann-Schritte. Dies beschleunigt die Erstellung, aber die Teams verfeinern die Formulierungen dennoch, um sie an die tatsรคchlichen Akzeptanzkriterien anzupassen.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: