Vaarwel Cucumber, we zullen je missen

Vaarwel Cucumber, we zullen je missen

Het komt vaak voor dat we mensen of dingen vanzelfsprekend vinden. Dit geldt bijvoorbeeld voor je favoriete speler bij je favoriete voetbalclub. Opeens kan je geconfronteerd worden met spijt omdat iets wat je vanzelfsprekend vond, ineens verdwenen is. Als klein jongetje Dennis Bergkamp plotseling in een Inter Milaan-shirt zien spelen. Wereldschokkend.

Onlangs werd ik opnieuw geconfronteerd met een soortgelijk gevoel van spijt, maar dan vanuit een ander perspectief. Eén van de door mij meest gebruikte tools, Cucumber, nam ik als vanzelfsprekend aan. Ik dacht dat deze tool er altijd zou zijn.

Het einde van Cucumber; waar ging het mis?

Dit is inmiddels oud nieuws, maar meer dan een jaar geleden werd de belangrijkste developer van Cucumber ontslagen door zijn werkgever, die ook eigenaar van Cucumber is. Dit betekent dat Cucumber nu alleen nog wordt ondersteund door mensen die er in hun vrije tijd aan werken. Voor een grote community zoals Selenium is dat een voordeel, maar voor de meeste opensource tools heeft dit een negatieve impact. Zou dit het einde van Cucumber kunnen betekenen?

Wie de nieuwste trends in Test Automation volgt, zal nu waarschijnlijk met Playwright werken. Voor de aanhangers van Cucumber is dit een bittere pil. Officieel werken die twee niet samen. Natuurlijk kun je via Google een oplossing vinden, maar naadloze integratie zoals met WebDriverIO ontbreekt. Dus met pijn in mijn hart moet ik toegeven: dit betekent het einde van Cucumber.

De rol van Cucumber als hulpmiddel

Bij een waardig afscheid wil ik stilstaan bij de positieve herinneringen en de meerwaarde die Cucumber bood. Cucumber was bedoeld als een BDD-tool (Behaviour Driven Development). Het was een middel, geen doel op zich. Toch ontstond snel de misvatting: “Wij gebruiken Cucumber, dus wij doen aan BDD!” of “Hoe kun je BDD doen zonder Cucumber?”. Beide zijn verkeerde aannames. Cucumber had het niet makkelijk.

Een ander kenmerk van Cucumber was de syntax, het paradepaardje. Door het gebruik van menselijke taal werd techniek begrijpelijk voor niet-technici. De business kon scenario’s schrijven in Gherkin-syntax (Given-When-Then) en de technici konden ermee aan de slag.

Simpel en straightforward. Cucumber begreep deze syntax goed; de individuele zinnen van elk scenario werden gekoppeld aan “onderliggende” code. Code waar de non-techneut zich niet druk over hoefde te maken. Helemaal top. Maar ook deze aanpak kreeg al snel een eigen leven. De initieel simpele opzet werd vertaald in (te) lange scenario’s met tientallen zinnen, de begrijpelijke mensentaal ging de prullenbak in. Cucumber had het niet makkelijk.

De waarde van Cucumber voor de eindgebruikers

En toch ontstond er iets onder de eindgebruikers. Zoals wel vaker gebeurt, ook al is iets bedacht met een bepaald doel voor ogen, betekent niet dat een tool geen waarde kan hebben op een ander gebied. De combinatie van scenario’s schrijven in begrijpelijke mensentaal en het koppelen aan werkelijke code creëerde een schil om het test automation framework heen. Deze schil, een nachtmerrie en overbodige code voor sommige, was een welkome buffer voor andere.

Nieuwe gebruikers van het test automation framework konden door de uitgeschreven Gherkin-scenario’s in een keer zien waar een testcase over ging en hoeveel test cases er daadwerkelijk waren gemaakt. Cucumber zorgde voor een structuur die voor het menselijk oog best overzichtelijk was. Minder ervaren testers konden met een Cucumber test automation framework meteen test scenario’s laten draaien die op dat moment voor hen van toepassing waren. Bijvoorbeeld voor een regressietest erg handig.

Maar het ging verder dan alleen het uitvoeren van tests. De scenario’s bestonden uit zinnen: given, when, of then zinnen. Cucumber zorgde ervoor dat deze zinnen automatisch werden gekoppeld aan code dieper in het framework, en deze zinnen waren herbruikbaar voor alle scenario’s. Een mooie vergelijking is een doos vol met bouwstenen. Omdat er al verschillende bouwstenen bestonden en werkten, konden nieuwe teamleden met deze bouwstenen snel zelf een test bouwen. En als er een blokje ontbrak, kon een ervaren teamgenoot dat snel toevoegen. Zo ontwikkelde Cucumber zich als een gebruiksvriendelijke introductietool voor nieuwe teamleden in een testteam.

Het bouwen van tests met deze bouwblokken was niet alleen geschikt voor nieuwe teamleden. Ook teamleden met minder technische kennis konden dankzij Cucumber hun steentje bijdragen (pun intended) en nieuwe tests bouwen. Het complexe testautomatiseringsframework in een vreemde programmeertaal werd opeens veel toegankelijker door de Cucumber-schil. Dit was een verschrikking voor sommigen, maar een welkome toevoeging voor anderen.

Cucumber bracht structuur, gebruiksvriendelijkheid en toegankelijkheid. Misschien niet de oorspronkelijke doelstelling van de bedenkers, maar door specifiek gebruik werd het een groot pluspunt voor mijzelf en de professionals om mij heen. Ik heb Cucumber de afgelopen jaren veelvuldig gebruikt en zag junior collega’s snel vertrouwd raken met het testautomatisering framework dankzij de Cucumber-schil. Niet-technische mensen kregen snel inzicht in welke testscenario’s al waren afgedekt en welke nog gebouwd moesten worden. Dankzij Cucumber mocht ik in 2019 naar Berlijn om een workshop te geven tijdens de Agile Testing Days. Een workshop over, je raadt het al – het gebruik van Cucumber in een Java-framework. Een mooie herinnering! Maar ook de minder positieve reacties kwamen regelmatig voorbij. Vooral de goede programmeurs zagen het nut van Cucumber niet in, omdat het niet goed werd gebruikt waarvoor het bedoeld was: het laten schrijven van scenario’s door de business op een BDD-manier.

De waarde van Cucumber voor de eindgebruikers

Normaal zou ik dan het gevecht aangaan en met volle passie de andere positieve kanten van Cucumber benadrukken. Die tijd is nu voorbij. Als de tool straks niet meer zichzelf is vanwege achterstallig onderhoud. Als er geen nieuwe versie meer uitkomt die compatibel met de laatste versies van de veelgebruikte programmeertalen. En het nieuwste populaire kindje van de klas, Playwright, er niet mee wil spelen. Heeft het dan nog wel zin en nut om Cucumber aan te raden en vooral om het te gebruiken in nieuwe projecten?

Na veel mooie jaren van gebruik en fijne herinneringen moet ik helaas “nee” antwoorden op die vraag. Cucumber, vaarwel mijn oude vriend, we zullen je missen… 

Recent nieuws

Contact

Heeft u een vraag, idee of opmerking? Neem gerust contact met ons. Wij reageren binnen één werkdag.

"*" geeft vereiste velden aan

Share

Let’s talk

Heeft u een vraag, idee of opmerking? Neem gerust contact met ons!