Reading List [1]

By December 28, 2011 Books 4 Comments

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

I bought this book after having attended the BDD & Agile Testing day at Skills Matter. Matt Wynne did one of the seminars and I got the opportunity to watch him up close, [partially] developing an application using Cucumber test driven development. The workshop should be available here as a podcast.

At the time, it was quite fascinating to watch, though with hindsight it’s clearly a well practiced demonstration and was never likely to run quite as fluidly in reality. Certainly my experience working through the coded examples didn’t run as smoothly as I would have liked. For a kick off, you really do need to be quite fluent with Ruby to be able to keep pace with the steps outlined in the book. I consider myself to be reasonably technical (having some degree of proficiency in Java, C & VBScript), but I still found myself needing to back off from this book for a while until I’ve gotten sufficiently up to speed with Ruby to be able to make the desired level of progress.

I haven’t yet gotten around to digging back in, so for the time being I’ll just state the following:

  • I’d suggest that the book’s primary audience is developers in test; i.e. testers that are involved in the implementation of a testing framework and are looking for further information on optimising/streamlining their BDD testing stack.
  • As such, it’s not really geared towards beginners, though it might be sufficient if the beginner is reasonably fluent with Ruby to be able to keep pace with the examples.
  • If you’re just picking up some Cucumber scripting for the first time and want a better idea of how to actually script BDD tests with a domain specific language, then you’d probably be better off with something that addresses the higher level aspects of Cucumber style Behaviour Driven Development, for which I understand Gojko Adzic’s book Specification by Example is a very good start.

I’ll come back to this post and add further detail at a later date, once my Ruby’s up to scratch!

None of this should be read as an endorsement of the BDD/Cucumber approach to testing by the way. My experience with Cucumber in the wild has been frustrating to say the least (previous post/video refers). I am keen to learn more about the subject however both in general and with particular regards to its implementation. This book seems to go some considerable way towards addressing the latter point.

Thanks for reading. Feel free to reach out via a comment or on the socials if anything resonates.



  • Anna Baik says:

    Interesting review – thanks. I’d be very interested to discuss how you get on with it, as we’re heading down the Cucumber route at work, & I’d like some balance to “Cucumber saves the world” I’m getting from our local cuke evangelistas. 🙂

    Specification By Example is more high level IME, talking about lessons learned from different case studies about how teams have used a spec by example approach. So not so much a BDD primer, as “how to get your organisation using this in a way they would actually see some benefit from it”. It’s a good book, and interesting, but it doesn’t show you how to write Cucumber tests.

    • sjpknightAdmin says:

      Thanks Anna – I think Matt Wynne’s perspective on how Cucumber should be implemented is pretty solid. The developers I’m working with at the moment came to the same conclusions in respect of a layered model (domain specific [business friendly] language, cuke steps, implementation steps/automation library/supporting code, system) – but there’s a lot of effort involved in bringing it all together. I’ll try to add more info in respect of my experiences when/if I have them.

      Happy New Year!

  • Matt Wynne says:

    Thanks for writing the review Simon, and sorry to hear you found the book tough going.

    I agree with your comments about the intended audience. I’ve trained and coached plenty of manual testers who were crossing over into test automation, and tried hard to write the book for them. Inevitably though, we needed to be fairly technical to ensure the book had enough depth to be interesting. It was a difficult balance to strike.

    Did you see the recommendation in the front to read Brian Marick’s Everyday Scripting With Ruby? That’s a great way to learn Ruby.

    I’d wholeheartedly recommend Specification By Example to give your team confidence that the BDD approach will work.

    Good luck!

    • sjpknightAdmin says:

      Hi Matt – thanks for the response. Everyday Scripting with Ruby is exactly what I’m reading, so plan on returning to Cucumber once I feel sufficiently fluent in Ruby to keep up. When that will be is another matter of course… Sometime in 2012 I hope!