Cucumber Community Newsletter: congramming, event mapping, and your worst Gherkin
We're bringing you advice, interviews, links, and tech challenges about Cucumber, open source, and BDD. For our launch, we offer you:
- Meet a Cucumber user: Test automation engineer Benjamin Bischoff talks about plugins, hackathons, and congramming
- Fun and useful links: Are you planning to scale BDD across your organization? Do you want to learn about event mapping? Will a Japanese robot wolf keep you safe from bears?
- Tech challenge: Show us your worst Gherkin and win a prize!
Meet a Cucumber user: Benjamin Bischoff
Benjamin spent 15 years as a game/application developer and trainer before shifting to test automation (a journey you can read about on his blog). He’s currently a test automation engineer at trivago.
1. How does Cucumber improve your life?
One of my first tasks in my current role was to research technologies to simplify writing tests. We desperately needed a more modern and flexible approach.
Cucumber was a stand-out project which ticked all the boxes: open source, easy to use and understand, and made the tests much easier to comprehend. This helped me dive in and grasp the inner workings of it.
For those projects, the starting points were concrete problems. In Cucable's case we needed faster test feedback through test parallelization. However, the existing solutions for Cucumber were either outdated or not flexible enough for our use case. I started the Cluecumber project because we needed clearer and more condensed data about which test scenarios failed and why. This led to the custom reporting solution that could be designed in a more user friendly way.
If your company gives you time and resources to try new things, such as hackathons or learning times, you can experiment without having to be instantly successful. Side projects can be super beneficial, even if solutions to your problems already exist. It is said that you should not reinvent wheels - but if you want to know how wheels work, nothing beats creating your own.
3. You wrote on Twitter (@bischoffdev😞 "Programming is good practices. Bad practices should be called congramming." (Underrated tweet.) What's a congramming practice that makes you cringe, and what advice would you give programmers so they'll stop doing it?
I strongly believe in best practices such as extensive testing, single responsibility, readability, and late optimization. Also, I’m a strong believer of YAGNI ("You aren't gonna need it", which comes from the extreme programming methodology), meaning you shouldn’t implement features that aren’t immediately necessary. It helps to step back once in a while and ask whether you’ll still be able to understand your code in a few months and - more importantly - if you can extend and refactor it without fear of breaking it.
If you have interview suggestions (including yourself), tell us at firstname.lastname@example.org.
Fun and useful links
This recent Cucumber blogpost will help you scale BDD across your organization.
BDD Advocate Jon Acker tells you all about BDD with Event Mapping.
And this robot wolf from Japan will keep us all safe from bears.
Join the Cucumber Open Source community here
Tech challenge: your worst Gherkin
Everyone makes Gherkin mistakes. Maybe instead of making it easy for non-technical people to read, you wrote it like a programming language. Maybe you bogged it down with CSS selectors, or littered it with technical points. Help other people learn from your mistakes. Here's a handy blogpost if you need reminders about Cucumber anti-patterns.
Send us an example of your worst Gherkin, and tell us the story of what you learned from it. The best/worst/most entertaining example will win a fantastic prize! Everyone who sends us ugly Gherkin will get a Cucumber sticker. Entries will be read by members of the Cucumber team. By submitting, you’re giving us permission to use your name and entry for a future newsletter, blogpost, Tiktok interpretive dance, etc.
Thanks for reading! Remember to post your worst Gherkin or talk with us using Comments.