Cucumber - Behaviour Driven Development for the masses

Snorre Brekke

Half-day workshop - in English

Lost in translation

Have you ever had a new features returned under the heading "This is not what we wanted!"?

Developers, testers and product-owners often have very different views on how software should work. Unless they all talk together, misunderstandings can quickly creep in, leading to cost-overruns and confusion.

BDD (behavior driven development) is TDD taken to the next level. Start with spesification by example, and implement the feature as specified. It aims to bridge the void between developers, testers and product-owners, through a shared understanding of the subject matter. Cucumber allows a fluid translation of natural language into runnable specifications.


In this workshop, we delve into Cucumber using the Java implementation.

First we will cover the basics of getting Cucumber up and running using JUnit, and write some simple spesifications.

Then we jump into the deep end, where we will try to learn a new domain by examining the Cucumber spesification of a small game.

Building on the already existing code base we will expand and improve upone the spec.

During the brunt of the workshop we will implement increasingly more complex user stories. As we expand our codebase, we have a running suite of acceptance tests to lean back on - if we break something, the reason should be clear.

Can spesification by example help us understand our code better? And is Cucumber a useful tool for the job?

Come and find out!

Code & Wiki


Primarily for: Developers, Tester/test leads

Participant requirements: A computer with Java 8, maven, git and an IDE of choice. Preferably checked out the code from github: