- Series: Pragmatic Programmers
- Paperback: 336 pages
- Publisher: Pragmatic Bookshelf; 1 edition (February 10, 2012)
- Language: English
- ISBN-10: 1934356808
- ISBN-13: 978-1934356807
- Product Dimensions: 7.5 x 0.6 x 9.2 inches
- Shipping Weight: 1.2 pounds
- Average Customer Review: 25 customer reviews
- Amazon Best Sellers Rank: #597,478 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Cucumber Book: Behaviour-Driven Development for Testers and Developers (Pragmatic Programmers) 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
"Rebound" by Kwame Alexander
Don't miss best-selling author Kwame Alexander's "Rebound," a new companion novel to his Newbery Award-winner, "The Crossover,"" illustrated with striking graphic novel panels. Pre-order today
Customers who bought this item also bought
Customers who viewed this item also viewed
What other items do customers buy after viewing this item?
""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"
About the Author
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 Hellesoy 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.
Author interviews, book reviews, editors picks, and more. Read it now
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
Most people who have a passing understanding of Test Driven Development or Behavior Driven Development have likely heard of Cucumber. It's a language that allows anyone who wants to define tests and requirements for applications the ability to do so in plain English (or fill in the blank language if supported). In truth, Cucumber isn't really a programming language at all, but a symbolic phrase library that matches to various underlying commands and blocks of code (represented in Ruby in this book and referencing a variety of tools including Capybara, Rspec and others).
Matt Wynne and Aslak Hellesøy have put together a very readable and focused text that help the user get familiar with the basics of the language. The book also focuses the reader on understanding the underpinnings needed to create expressions that work with their respective technologies. Granted, if you are a tester and you want to take advantage of this framework, there is plenty in here to keep you busy. The Cucumber Book starts out by explaining what Cucumber is and the niche it is meant to fill (specifications based tests and requirements). If you are a developer, there is likewise plenty in here to keep you interested, too.
The process in the Cucumber book is heavy on examples and showing how the examples work. Yes, for those who want to know how to use the syntax and language specific details of Cucumber, that stuff is covered. What is also covered, and covered well, is the Behavioral Driven Development approach needed to effectively create tests and have them work effectively. Along with creating feature files and steps for those feature files, the underlying step definitions also have to be coded. Not only do they have to be coded, but they have to have assertions written that will effectively confirm if the step has passed, or if it fails, and why.
Since the book is primarily based on Cucumber, there is a large section that covers Cucumber fundamentals, including basic Gherkin (the underlying syntax that Cucumber uses), and the ability of using expressive options such as Scenario Outlines, Data tables, Doc Strings, tags, and dealing with some of the pain points seen in your tests (such as "flickering scenarios", where the tests pass some of the time but fail some times, too). More than just using Cucumber to define steps and have step definitions defined, the third part of the book deals with applying Cucumber to a number of different technologies; working with various databases, testing with RESTful web services, working with Rails, running tests and using capybara to simulate common browser actions and many other options that may come to play in your everyday testing life.
If you have ever been interested in looking at Cucumber and your testing environment is built around Ruby, then this will be an ideal book to use. If you are interested in deploying Cucumber in another type of environment, such as testing with Java or .NET, many of the ideas in this book will also carry over, but have a look at "The Secret Ninja Cucumber Scrolls" by David de Florinier and Gojko Adzic. It provides information about how to apply Cucumber to those environments. Regardless of your particular focus and environment needs, for a practical and effective book for learning and using Cucumber in a meaningful way, The Cucumber Book is an excellent addition to any tester or developer's library.
The Cucumber book consists of 3 different parts. The first part is an basic introduction to Cucumber, the second part provides a 3-chapter long example and the last part shows how to test different type of application.
Part one starts by introducing the concepts of BDD (or A-TDD or "Specification by Example" which are all very similar) and explains that cucumber, in the end, is a collaboration tool where the developers, testers and users learn to speak the same language and that way improve development of software. Cucumber provides a way of expressing and automating that shared language. The next couple of chapters introduce the basic features of cucumber one at the time. The last chapter of the first part talks about common test automation problems and that their causes are and what you can do about this. Most of this chapter and the concepts expressed in the book are valid for any of the BDD/A-TDD frameworks such as Fitnesse or RobotFramework.
Part two started out disappointing to me. The authors decided to use an ATM as example of their test. ATMs has frequently been used in software development books (like calculators, which unfortunately it also used) and I had hoped for a different, less stereotypical, domain. Yet, as part two progressed, I started liking the example more and eventually part two became my favorite part of the book. Its style reminded me of the excellent Growing Object-Oriented Software, Guided by Tests. The example starts by writing tests that directly talk to the application domain logic. After getting the logic to work, they switch the interface to a web interface without making a change to the written specifications (excellent!) and clearly show that the specification and application logic are and should be separated. After this they explain how to deal with asynchronous events and testing with a database.
Part three is sort-of the left-over chapter of what the authors still wanted to say about cucumber that didn't fit in the other chapters. It starts with exploring the command line options to cucumber and then dives into testing different type of applications, namely: REST, legacy, rails, ajax and CLI. Each of these chapters (except legacy code) provides excellent examples of working outside-in with cucumber specifications and each chapter introduces additional useful ruby (testing) tools.
So, in the end, I was positively surprised about the book and enjoyed every page. What drawbacks does the book have? The collaborative part of BDD was only stressed in the first couple of chapters, which was too bad. As mentioned, I found the examples a bit too stereotypical. I guess the book wouldn't be easy to read for non-ruby developers as there is a fair amount of ruby code in it and the alternative language cucumber clones aren't covered. Yet, I found these drawbacks minimal and would still rate it 5 stars. For explaining BDD (A-TDD/Specification by Example), I'd still recommend Gojko Adzic's Specification by Example: How Successful Teams Deliver the Right Software over the cucumber book. But Specification by Example: How Successful Teams Deliver the Right Software doesn't cover the concrete implementation in a tool, for that, I'd definitively recommend the cucumber book. They compliment each other nicely.
Most recent customer reviews
It's all in Ruby.Read more
I primarily develop in C#, so ideally I would have liked a book targeting C# instead of Ruby.Read more