Summary
Cucumber is a BDD tool that can execute plain-text documents as automated functional tests through Ruby mappings. It allows you to build up a custom domain language to talk about your applications behaviour that non-technical users can understand and write. We'll look at working outside-in with Cucumber and the importance of focusing on customer value. Look at how Cucumber fits into the testing workflow, how it compliments Behaviour Driven Development and give practical examples/tips.
Details
Writing software that 'does the right thing' is dependent on good communication with the Customer. Acceptance tests can provide an important way to communicate a customers definition of done and drive use to build the right software. But often these tests are not both executable and easily accessible for non-technical people. Cucumber, a tool to support Behaviour driven development (BDD) aims to help lower communication barriers by using plain text that describes behaviour and via Ruby mappings can be executed. As programmers we can think of Cucumber features as functional tests that are accessible and editable by non-technical people.
This talk given by Joseph Wilk will draw on his experience of introducing outside-in development and having used both the original Rspec story Runner and Cucumber in building Rails apps. We will look at the background of why Cucumber is useful and how it can fit into the testing and agile process. Then through practical examples we will work through the process of turning a feature request from a customer into an executable feature. Examining some of the pitfalls and decisions experienced by people starting Cucumber for the first time. Look at the difficult tools that can be used with Cucumber such as Webrat and how to deal with testing JavaScript with such tools as Celerity or Selenium. Rspec and Cucumber has an active community and we will look at the pooled experiences and lessons learnt from its members.
While the presentation is focused on Rails examples, Cucumber can be used to test lots of different frameworks (and just plain old ruby code!). It can also be used to test code written in other languages with the help of some extra tools:
- Java: Use JRuby
- .NET: Use IronRuby
- Flex: Use FunFX
This topic will be presented by Joseph Wilk (click for more details on Joseph and all our speakers).



