Managed hosting door True
Deze opinie is van een externe deskundige. De inhoud vertegenwoordigt dus niet noodzakelijk het gedachtegoed van de redactie.

5 valkuilen bij Gherkin onder de loep genomen

 

softwaretest syntax

Gherkin is een computertaal die gebruikt wordt in de testwereld. In het Nederlands hebben we het hier over augurken.

Gherkin is een syntax die door zowel business als it te begrijpen is. Hiermee wordt de kloof die er vaak tussen beiden is verkleind. En dat draagt bij aan de ontwikkeling van kwalitatief betere software. De toepassing van Gherkin lijkt dus veelbelovend en makkelijk, maar is dat wel zo? In dit artikel komen de vijf valkuilen aan bod die voorkomen bij het schrijven van specificaties en acceptatietests in Gherkin.

Gherkin is niets meer dan gewone tekst die volgens een bepaalde structuur het gedrag van een systeem beschrijft. Zonder daarbij in detail te treden over hoe dat gedrag geïmplementeerd is of moet worden.

Simpel voorbeeld:
Scenario: Multiple Givens
Given one thing
And another thing
When I open my eyes
Then I see something
But I don't see something else

Valkuil 1: Het onvoldoende betrekken van de business
Wanneer de business onvoldoende betrokken is bij het opstellen van de requirements in Gherkin dan is de kans aanwezig dat de acceptatieperiode langer duurt. Bij een acceptatieperiode van (tijdens de sprint) geautomatiseerde tests kan het zijn dat niet het juiste is getest en er in productie vervolgens fouten ontstaan. Met handmatige acceptatie van de software begrijpt de business niet altijd wat er in de requirements staat en kan het zijn dat gedurende die periode meer issues (bugs) ontstaan. Door samen met de business de requirements zo veel mogelijk als Gherkin scenario's te beschrijven, is de business al in een vroeg stadium betrokken. Met het opstellen van acceptatiecriteria in Gherkin scenario’s zijn user stories namelijk 'smart'-er en voor alle stakeholders leesbaar. Hierdoor ontstaat bewustwording en betrokkenheid. Dat geeft de business een beter gevoel over de kwaliteit van de opgeleverde software. De scenario’s zijn door met Gherkin te werken bovendien te gebruiken voor geautomatiseerde acceptatietests en zo is de acceptatieperiode te verkorten.

Valkuil 2: Het beschrijven van acties in plaats van gedrag
Het beschrijven van acties in plaats van gedrag in de Gherkin scenario’s kan zorgen voor een langere acceptatieperiode en meer issues in die periode.

Fout: Het beschrijven van acties in een scenario
Scenario Show welcome message
Given I have a user called 'Peter'
And I have opened the login page
When I enter my login name
And I enter my password
And I press the login button
Then I see a welcome message

Goed: Het beschrijven van gedrag in een scenario
               Scenario Show welcome message
               Given I have a user called “Peter”
               When I log on
               Then I see a welcome message

Het eerste voorbeeld is voor de business niet of minder goed leesbaar dan het tweede voorbeeld, omdat het tweede voorbeeld beter scanbaar is. Door de formuleringswijze van het eerste voorbeeld voelt de business zich minder betrokken bij het scenario. Hierdoor is de business minder gemotiveerd om samen nieuwe (acceptatie) scenario’s op te stellen. In voorbeeld twee is voor zowel de business als de it-afdeling duidelijk wat het doel van de test is en wat er mee bereikt wordt. Daarnaast zijn de stappen uit het scenario beter te onderhouden en te hergebruiken. Dit voorkomt in de toekomst problemen bij een gewijzigde user interface, omdat dan alleen de achterliggende code herschreven hoeft te worden en niet het hele scenario.

Valkuil 3: Te complex door meerdere Given's/When's/Then's
Maak een scenario geschreven in Gherkin niet te complex. Het kan voorkomen dat enkele Given's en Then's nodig zijn, maar probeer het gebruik van meerdere When's te voorkomen. Schrijf liever meerdere simpele scenario's die uit gaan van een enkele actie, dan enkele complexe en slecht leesbare scenario's die uit gaan van meerdere acties.

Valkuil 4: Verkeerd of meertalig taalgebruik in een scenario
Gherkin kan in verschillende talen geschreven worden. Denk vooraf goed na en bepaal in welke taal de scenario's te gaan schrijven. Gebruik vervolgens de juiste termen uit die taal. Wanneer er is gekozen voor Engels, gebruik dan Given/When/Then. Wanneer er is gekozen voor Nederlands, gebruik dan Gegeven/Wanneer/Dan. Verkeerd taalgebruik in een scenario - bijvoorbeeld door slechte beheersing van de gekozen taal - kan ervoor zorgen dat een andere persoon het scenario verkeerd interpreteert. Hierdoor ontstaan fouten. In het algemeen wordt gekozen voor de taal die de business hanteert. Zodat zij de terminologie niet hoeven te vertalen of twee talen door elkaar gebruiken, zoals in onderstaande voorbeelden:

Fout:
Given a user with status ‘Weduwe’
When the user opens the pensioenoverzicht
Then partnerpensioen is mentioned apart

Goed:
Gegeven een gebruiker met status ‘Weduwe’
Wanneer de gebruiker het pensioenoverzicht opent
Dan staat het partnerpensioen apart vermeld

Valkuil 5: Gherkin en refactoring
Bij elk goed softwareontwikkelingsproces is refactoring (herstructureren) van de code een belangrijk onderdeel van het proces. Net als dat je de code van de software refactored, is refactoring van de Gherkin-scenario’s ook aan te raden. Het komt de leesbaarheid en onderhoudbaarheid ten goede. Let op dat wanneer er sprake is van scenario refactoring, de aanpassingen ook doorgevoerd moeten worden in de achterliggende code van het scenario. Dit geldt ook voor aanpassingen in de code van de software. Elke keer als deze code verandert, is het ook belangrijk om te kijken of het bijbehorende scenario ook aangepast dient te worden. Refactoring werkt dus beide kanten op!

Zelf de slag met Gherkin?

Het vergt de nodige oefening om niet alleen syntactisch correcte Gherkin, maar ook praktisch werkbare scenario's te schrijven. Maar goed geschreven scenario’s zijn voor alle stakeholders leesbaar, wat zorgt voor betrokkenheid. Betrek de business bij het opstellen van de testscenario’s voor wederzijds begrip en inzicht in de businesswens. Denk vooraf goed na over wat je opschrijft. Beschrijf gedrag en houd de scenario’s beknopt. Bekijk op een later moment de scenario’s en refactor indien nodig.

Veel succes met het opstellen van jouw scenario’s in Gherkin!

Rob den Broeder, testconsultant bij Bartosz ICT

Dit artikel is afkomstig van Computable.nl (https://www.computable.nl/artikel/5711981). © Jaarbeurs IT Media.

?


Lees meer over


 

Reacties

valkuil 1: dit staat los van Gherkin, kan met ieder andere tool/taal/methodiek ook gebeuren
valkuil 2 & 3: dit noem ik altijd "a fool with a tool is still a fool". Je kunt met Gherkin leuke dingen doen, maar je moet wel weten hoe het werkt. Dat iets makkelijker en/of abstracter wordt, wil niet zeggen dat je niet meer na hoeft te denken
valkuil 4 is een interessante. Wanneer je in een internationaal georiënteerd bedrijf een Nederlands product gaat beschrijven in bijv. Gherkin, kan de syntax Engels zijn, maar bijvoorbeeld een status Nederlands zijn.
valkuil 5: mijns inziens de enige echte valkuil, vooral als het onderhoud van de Gherkin scripts door een andere partij gedaan wordt dan het onderhoud op de te testen code.

Dit neemt overigens niet weg dat het een krachtige manier is om je testen te verbeteren. Maar ik herken de eerste 4 punten niet als valkuilen, maar zie deze meer als een een stukje verwachtingsmanagement. Je moet je wel eerst verdiepen in wat een tool kan en hoe je deze wil gaan gebruiken. Dit is in mijn ogen geen valkuil, maar gezond boerenverstand.
Afgelopen jaren enkele gevallen meegemaakt dat men een tool de schuld geeft, zonder zich hier eerst in te verdiepen. Niet alle tools en methodieken zijn "self explaining" en "intuïtief". Soms moet je er zelf ook wat energie in steken ... ... ...

Voor mij is Gherkin nog steeds een kaboutertaaltje voor testers die niet kunnen programmeren.
Je stelt: "...Het beschrijven van acties in plaats van gedrag in de Gherkin scenario’s kan zorgen voor een langere acceptatieperiode en meer issues in die periode..."
Ik mis in dit verhaal de rol van de Product Owner, maar blijkbaar zijn de specs vooraf niet helder in jouw situatie.

Welke tools gebruiken jullie om gherkin feature files als living documentation beschikbaar te stellen? Ik ben op zoek naar een tool waarin naast m'n gherking features ook mockups te tonen zijn.

Vacatures

Stuur door

Stuur dit artikel door

Je naam ontbreekt
Je e-mailadres ontbreekt
De naam van de ontvanger ontbreekt
Het e-mailadres van de ontvanger ontbreekt

×
×