small medium large xlarge

The Cucumber Book: Behaviour-Driven Development for Testers and Developers


Cover image for The Cucumber Book

The Cucumber Book

Behaviour-Driven Development for Testers and Developers


Your customers want rock-solid, bug-free software that does exactly what they expect it to do. Yet they can’t always articulate their ideas clearly enough for you to turn them into code. The Cucumber Book dives straight into the core of the problem: communication between people. Cucumber saves the day; it’s a testing, communication, and requirements tool – all rolled into one.

Customer Reviews

To those of you wondering how to use Cucumber effectively, The Cucumber Book
is the answer. Not content to write just a testing book, Aslak and Matt have packed
it with practical insights on many aspects of software development. Studying this
book will make you a better software developer.

- Pat Maddox, B.D.D.M.F.

RSpec Core team

Teams can use Cucumber to get a better understanding of what software to build
for their customers. In this book, Aslak and Matt do a brilliant job explaining how
you get started with Cucumber with plenty of easy-to-follow examples.

- Rachel Davies

Author, "Agile Coaching"

I devoured the Cucumber book on a train ride from Grenoble to Brussels a few
days after watching Matt’s presentation “BDD As It’s Meant to Be Done.” These
two resources helped me understand in just a few hours how to avoid dozens of
common mistakes writing scenarios in the Cucumber style. It’s as though I received
an injection of perhaps two years of experience writing scenarios poorly so that I
didn’t have to go through it all myself. What a gift. I recommend this book to
everyone working with Cucumber.

- J. B. Rainsberger

Author, "JUnit Recipes"

Few tools have managed to bridge the developer-customer divide as well as
Cucumber has. Cucumber is not a tool for testing applications. Cucumber is a
philosophy for communicating requirements. This book brings that philosophy
to life.

- Robert C. Martin (Uncle Bob)

See All Reviews

About this Title

Pages: 336
Published: 2012-01-27
Release: P3.0 (2014-03-28)
ISBN: 978-1-93435-680-7

Matt Wynne and Aslak Hellesøy show you how to express your customers’
wild ideas as a set of clear, executable specifications that everyone
on the team can read. You’ll learn how to feed those examples into
Cucumber and let it guide your development. You’ll build just the
right code to keep your customers happy, and not a line more. Although
it was born in the Ruby community, you can use Cucumber to test almost
any system, from a simple shell script or Perl script, to web
applications written in PHP, Java, or any platform.

In Part 1, you’ll get started by using the core features of Cucumber
and working with Cucumber’s Gherkin DSL to describe—in plain
language—the behavior your customers want from the system. Then you’ll
write Ruby code that interprets those plain-language specifications
and checks them against your application. If you’re new to Cucumber,
this part of the book will teach you everything you need to know to
get started.

In Part 2, you’ll consolidate the knowledge you’ve gained with a
worked example, where you’ll learn more advanced Cucumber techniques.
You’ll also learn how to test asynchronous systems and systems that use a database.

In Part 3, you’ll find a selection of recipes for some of the most difficult and commonly seen situations the authors have helped teams solve. With these patterns and techniques, you’ll learn how to test Ajax-heavy web applications with Capybara and Selenium, REST web services, Ruby on Rails applications, command-line applications,
legacy applications, and more.

Written by the creator of Cucumber and one of its most experienced
users and contributors, The Cucumber Book is an authoritative guide
that will give you and your team all the knowledge you need to start
using Cucumber with confidence.

What You Need

Windows, Mac OS X (with XCode) or Linux,
Ruby 1.9.2 and upwards

Contents & Extracts

Full Table of Contents

  • Cucumber Fundamentals
    • Why Cucumber? excerpt
    • First Taste
    • Gherkin Basics excerpt
    • Step Definitions: From the Outside
    • Expressive Scenarios
    • When Cucumbers Go Bad
  • A Worked Example
    • Step Definitions: On the Inside excerpt
    • Support Code
    • Dealing with Message Queues and Asynchronous Components
    • Databases
  • Cucumber Applied
    • The Cucumber Command-Line Interface
    • Testing a REST Web Service
    • Adding Tests to a Legacy Application excerpt
    • Bootstrapping Rails
    • Using Capybara to Test Ajax Web Applications
    • Testing Command Line Applications with Aruba


Matt Wynne is a leading BDD practitioner, a member of the Cucumber core team, and a programmer, coach, trainer, and popular international speaker. Alongside Aslak Hellesøy and Julien Biezemans, Matt is co-founder of Cucumber Ltd., the company behind Cucumber. Matt tweets from @mattwynne and @cucumberbdd.

Aslak Hellesøy is the creator of Cucumber. During his career Aslak has worked with both small and large organizations in industries such as telecom, trading, insurance, car manufacturing, education, and government. Aslak is co-founder of Cucumber Ltd, the company behind Cucumber. He tweets from @aslak_hellesoy and @cucumberbdd.