Cucumber: Enhancing Team Communication and Collaboration
Bringing plain text to automated tests.
Aslak Hellesøy is a senior Software Engineer at DRW Trading in London where he writes Trading software. Prior to that he was Chief Scientist in BEKK Consulting in Oslo. Aslak has contributed to several dozen open source projects in Java and Ruby and is the creator of Cucumber. He blogs at http://aslakhellesoy.com and tweets as @aslak_hellesoy.
The Cucumber testing tool has just reached its 1.0.0 release. JAXenter caught up with Cucumber creator Aslak Hellesoy to find out more about the project, the forthcoming pure Java implementation, and the next steps for the Cucumber project.
JAXenter: Cucumber recently reached its 1.0.0 release. Can you give us an introduction to the Cucumber tool?
Aslak Hellesoy: The main goal of Cucumber is to enhance communication and collaboration across roles in a software team – typically stakeholders, business analysts, developers and testers. Cucumber achieves this by allowing people to specify how the software should work in plain English (or 40 other supported languages).
These specifications are called “features” and Cucumber knows how to execute them against your software system. Teams typically do this continuously – as they are building the software.
Technically speaking, Cucumber is just a tool for running automated tests. What makes it unique from other automated testing tools is the plain text format, which tends to improve how a team expresses and shares information about how the software is supposed to work.
Cucumber can be used to specify/test/document web applications (using additional tools like Selenium or Capybara), but there is nothing web-centric about Cucumber itself. It can be used to test any kind of software.
JAXenter: At the 1.0.0 announcement, you refer to a pure Java implementation that will supersede the Cuke4Duke project. Can you tell us anything about this project?
Aslak: I’m very excited about it! In my day job at DRW Trading we don’t use Ruby, but we do use Java a lot. The new Cucumber JVM project will not require JRuby or the Ruby implementation of Cucumber at all. This will make execution a lot faster and the installation a lot easier. Cucumber JVM will integrate seamlessly with JUnit so that developers can run Cucumber features from within their favourite IDE or build tool without any special configuration.
JAXenter: What are the next steps for Cucumber?
Aslak: Functionality-wise I consider Cucumber “done”. I think it strikes a good balance between simplicity and versatility. Adding more functionality to it would lead to its demise.
The Cucumber ecosystem recently moved to the cucumber organisation on Github. You can check out all of the sub projects over there.