Tuple Logo
gherkin

SHARE

Gherkin

Wat is Gherkin?

Gherkin is een domeinspecifieke taal die gebruikt wordt om softwaregedrag te beschrijven in begrijpelijke, gestructureerde tekst. Het speelt een centrale rol binnen Behavior Driven Development (BDD), waarbij communicatie tussen stakeholders zoals developers, testers en product owners wordt verbeterd door middel van concrete voorbeelden.

Het doel van Gherkin is om requirements te vertalen naar testbare scenario’s. In plaats van vage beschrijvingen of technische user stories, legt Gherkin de nadruk op het beschrijven van gedrag aan de hand van voorbeelden. Deze voorbeelden kunnen vervolgens automatisch getest worden met tools zoals Cucumber.

Het gebruik van Gherkin maakt het eenvoudiger om misverstanden in de specificaties te voorkomen. Doordat de syntax begrijpelijk is voor zowel technische als niet-technische stakeholders, bevordert het de samenwerking en kwaliteit van het ontwikkelproces.

De structuur en syntaxis van Gherkin

Een Gherkin-bestand beschrijft één of meerdere scenario’s binnen een feature (functionaliteit). Elk bestand begint met het sleutelwoord Feature, gevolgd door een korte beschrijving. Daaronder worden scenario’s uitgewerkt die het gewenste gedrag tonen op basis van input en verwachte output.

Gherkin-bestanden hebben standaard de extensie .feature en kunnen door tools zoals Cucumber, SpecFlow, of Behave geïnterpreteerd worden. Deze tools koppelen elk scenario aan geautomatiseerde testcode.

Voorbeeldstructuur:

Feature: Inloggen op webshop

  Scenario: Inloggen met geldige gegevens
    Given de gebruiker bevindt zich op de loginpagina
    When de gebruiker voert een geldig e-mailadres en wachtwoord in
    Then wordt de gebruiker doorgestuurd naar het dashboard

Gherkin-syntaxis uitgelegd

De Gherkin-syntaxis is eenvoudig, maar strikt. Elke regel begint met een keyword, gevolgd door beschrijvende tekst. De keywords structureren het scenario in stappen:

Deze opbouw zorgt ervoor dat ieder scenario logisch te volgen is en direct kan worden gekoppeld aan de daadwerkelijke softwarelogica.

Veelgebruikte Gherkin-zoekwoorden

Feature: beschrijving van functionaliteit

Elk Gherkin-bestand begint met het sleutelwoord Feature. Hiermee wordt het gedrag van een specifieke functionaliteit beschreven. Dit dient als context voor de onderliggende scenario’s.

Voorbeeld:

Feature: Wachtwoord resetten
  Om toegang te krijgen tot mijn account
  Als een gebruiker die zijn wachtwoord is vergeten
  Wil ik een nieuw wachtwoord kunnen aanvragen

Scenario en Scenario Outline

Scenario wordt gebruikt om één specifiek geval te beschrijven waarin de gebruiker interactie heeft met het systeem. Scenario Outline wordt ingezet als dezelfde scenario-structuur met verschillende invoerwaarden getest moet worden.

Voorbeeld:

Scenario Outline: Inloggen met verschillende gebruikers
  Given de gebruiker bevindt zich op de loginpagina
  When de gebruiker logt in met "<gebruikersnaam>" en "<wachtwoord>"
  Then wordt "<resultaat>" getoond

  Examples:
    | gebruikersnaam | wachtwoord | resultaat       |
    | jan@example.nl | welkom123  | Welkom Jan!     |
    | fout@example.nl| verkeerd   | Ongeldige login |

Given, When, Then

Deze drie kernwoorden vormen de basis van elk scenario:

Ze worden in natuurlijke taal geschreven, zodat iedereen in het team ze kan begrijpen.

Voorbeeld:

Given de gebruiker is ingelogd
When hij klikt op 'Uitloggen'
Then wordt hij doorgestuurd naar de loginpagina

And en But

Gebruik And of But om stappen toe te voegen die logisch gekoppeld zijn aan Given, When of Then.

Voorbeeld:

Given de winkelwagen bevat een product
And de gebruiker is ingelogd
When hij klikt op 'Afrekenen'
Then verschijnt het betaaloverzicht

Background

Met Background definieer je stappen die voor elk scenario binnen een feature gelden. Dit voorkomt herhaling en verhoogt de leesbaarheid.

Voorbeeld:

Background:
  Given de gebruiker is op de homepage
  And de winkelwagen is leeg

Hoe Gherkin werkt in de praktijk

Van user story naar testbaar scenario

In een agile workflow starten teams vaak met een user story zoals:

“Als gebruiker wil ik mijn wachtwoord kunnen resetten, zodat ik weer kan inloggen.”

Deze story wordt vervolgens uitgewerkt in één of meerdere Gherkin-scenario’s.

Door in concrete stappen te denken, wordt duidelijk hoe de functionaliteit zich moet gedragen, en kunnen tests daarop gebouwd worden.

Scenario's schrijven met Gherkin

Een goed Gherkin-scenario:

Fouten die je wilt vermijden:

Gherkin en testautomatisering

Gherkin is nauw verbonden met testautomatisering. Tools zoals Cucumber en Behave koppelen de scenario’s aan test code via zogeheten step definitions. Hierdoor kan elk scenario automatisch worden uitgevoerd.

Voorbeeld:

Scenario: Inloggen met geldige gegevens
  Given de gebruiker is op de loginpagina
  When hij voert zijn e-mailadres en wachtwoord in
  Then wordt hij doorgestuurd naar het dashboard

Kan gekoppeld worden aan testcode in bijvoorbeeld Python of Java die precies test of deze interactie correct werkt.

Uitgebreide mogelijkheden van Gherkin

Naast de basisstructuur met Feature, Scenario, en Given-When-Then, biedt Gherkin extra mogelijkheden die scenario’s flexibeler en krachtiger maken. Deze geavanceerde functies zijn vooral handig wanneer je werkt met herhaalbare scenario’s of gestructureerde invoer. Hierdoor wordt testautomatisering niet alleen nauwkeuriger, maar ook beter schaalbaar.

Gebruik van stap-argumenten

Soms moet je in een scenario extra data meegeven. Gherkin ondersteunt dit via Doc Strings en Data Tables.

Doc Strings voor multiline input

Een Doc String wordt gebruikt wanneer je een stuk tekst of JSON wilt meegeven aan een stap.

Voorbeeld:

Given de gebruiker vult het volgende formulier in:
  """
  naam: Jan
  e-mail: jan@example.com
  opmerking: Ik wil graag meer informatie
  """

Data Tables voor gestructureerde gegevens

Met een Data Table kun je gestructureerde input meegeven, bijvoorbeeld meerdere velden of opties.

Voorbeeld:

Given de volgende producten zijn toegevoegd aan de winkelwagen:
  | product       | prijs |
  | Laptop        | 999   |
  | Muis          | 25    |

Data Tables zijn ideaal bij het testen van verschillende combinaties of inputs.

Scenario Outline en herbruikbaarheid

Een Scenario Outline is handig als je dezelfde stapvolgorde wilt herhalen met verschillende invoerwaarden. Zo hoef je het scenario niet meerdere keren te schrijven.

Voorbeeld:

Scenario Outline: Kortingscode toepassen
  Given de gebruiker voert "<code>" in
  When hij klikt op 'Toepassen'
  Then ziet hij "<bericht>"

  Examples:
    | code    | bericht                    |
    | WELKOM  | Korting van 10% toegepast  |
    | ONGELD  | Code is niet geldig        |

Werken met Examples

Onder het kopje Examples geef je de waarden op die worden ingevoegd in de outline. Dit maakt tests overzichtelijker en makkelijker aan te passen.

Gherkin in verschillende talen

Gherkin ondersteunt meerdere natuurlijke talen. Zo kunnen teams over de hele wereld scenario’s schrijven in hun eigen taal. Denk aan Nederlands, Frans, Duits, Spaans of Turks.

Voorbeeld in het Nederlands:

Feature: Aanmelden
Scenario: Succesvol aanmelden
  Gegeven een geregistreerde gebruiker
  Als de gebruiker zich aanmeldt met correcte gegevens
  Dan wordt hij doorgestuurd naar zijn profielpagina

Voordelen:

Nadelen:

Toepassingen van Gherkin

Gherkin is breed inzetbaar binnen softwareontwikkeling, vooral in agile teams die gebruikmaken van Behavior Driven Development (BDD). Het helpt om specificaties beter af te stemmen tussen ontwikkelaars, testers en business stakeholders. Door concrete voorbeelden in natuurlijke taal te beschrijven, wordt de communicatie verbeterd en fouten vroegtijdig voorkomen.

Gherkin is niet beperkt tot één soort project of technologie. Hieronder zie je enkele veelvoorkomende toepassingen.

Gherkin in agile teams

In agile werkwijzen draait het om samenwerking en snelle feedback. Gherkin helpt hierbij door user stories aan te vullen met duidelijke, testbare scenario’s. Tijdens refinement of sprintplanning kunnen teams gezamenlijk deze scenario’s opstellen. Zo worden de verwachtingen helder voordat het ontwikkelwerk begint.

Voor testers is het voordeel dat deze scenario’s automatisch uitvoerbaar zijn. Voor developers bieden ze een duidelijk doel. En voor business stakeholders vormen ze controleerbare acceptatiecriteria.

Typische use cases

Gherkin wordt vaak toegepast in de volgende situaties:

Dankzij de natuurlijke taalstructuur is Gherkin geschikt voor uiteenlopende domeinen van e-commerce tot financiële software.

Gherkin als brug tussen mens en machine

Gherkin biedt een eenvoudige maar krachtige manier om softwaregedrag vast te leggen. Door het gebruik van natuurlijke taal worden requirements concreet, begrijpelijk en direct testbaar. Vooral binnen agile en Behavior Driven Development (BDD) zorgt Gherkin voor betere communicatie tussen alle betrokken partijen.

Dankzij de duidelijke structuur met Feature, Scenario, Given-When-Then en aanvullende opties zoals Background, Scenario Outline en Data Tables, kan vrijwel elk gewenst gedrag nauwkeurig worden beschreven en getest. Hierdoor verklein je de kans op misverstanden, verhoog je de kwaliteit van software en maak je testautomatisering toegankelijker.

Voor teams die streven naar heldere specificaties en betrouwbare softwarekwaliteit, vormt Gherkin een waardevol hulpmiddel in het ontwikkelproces.

Veelgestelde vragen
Waar wordt Gherkin voor gebruikt?

Gherkin wordt gebruikt om functionele specificaties van software op een begrijpelijke en testbare manier vast te leggen. Door het gedrag van de applicatie in natuurlijke taal te beschrijven, kunnen zowel technische als niet-technische teamleden dezelfde specificaties begrijpen en controleren. Daarnaast vormt Gherkin de basis voor geautomatiseerde tests binnen Behavior Driven Development (BDD), waarbij tools zoals Cucumber de scenario’s direct kunnen uitvoeren.


Wat is een Gherkin in agile?

Binnen agile wordt Gherkin vaak gebruikt als aanvulling op user stories. Tijdens refinementsessies of sprintplanningen zet het team samen de acceptatiecriteria om in Gherkin-scenario’s. Dit voorkomt onduidelijkheden, zorgt voor betere samenwerking tussen business en development en maakt het mogelijk om automatisch te testen of de gewenste functionaliteit correct is geïmplementeerd.


Ook interessant

Nieuwsgierig geworden?

Wij vertellen je graag meer!

Contact opnemen
Tuple Logo
Veenendaal (HQ)
De Smalle Zijde 3-05, 3903 LL Veenendaal
info@tuple.nl‭+31 318 24 01 64‬
Snel navigeren
Succesverhalen