Jump to ratings and reviews
Rate this book

BDD in Action: Behavior-driven development for the whole software lifecycle

Rate this book
Summary BDD in Action teaches you the Behavior-Driven Development model and shows you how to integrate it into your existing development process. First you'll learn how to apply BDD to requirements analysis to define features that focus your development efforts on underlying business goals. Then, you'll discover how to automate acceptance criteria and use tests to guide and report on the development process. Along the way, you'll apply BDD principles at the coding level to write more maintainable and better documented code. Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. About the Technology You can't write good software if you don't understand what it's supposed to do. Behavior-Driven Development (BDD) encourages teams to use conversation and concrete examples to build up a shared understanding of how an application should work and which features really matter. With an emerging body of best practices and sophisticated new tools that assist in requirement analysis and test automation, BDD has become a hot, mainstream practice. About the Book BDD in Action teaches you BDD principles and practices and shows you how to integrate them into your existing development process, no matter what language you use. First, you'll apply BDD to requirements analysis so you can focus your development efforts on underlying business goals. Then, you'll discover how to automate acceptance criteria and use tests to guide and report on the development process. Along the way, you'll apply BDD principles at the coding level to write more maintainable and better documented code. No prior experience with BDD is required. What's Inside About the Author John Ferguson Smart is a specialist in BDD, automated testing, and software lifecycle development optimization. Table of Contents

384 pages, Paperback

First published July 31, 2014

84 people are currently reading
547 people want to read

About the author

John Ferguson Smart

15 books7 followers

Ratings & Reviews

What do you think?
Rate this book

Friends & Following

Create a free account to discover what your friends think of this book!

Community Reviews

5 stars
68 (32%)
4 stars
93 (44%)
3 stars
39 (18%)
2 stars
6 (2%)
1 star
1 (<1%)
Displaying 1 - 29 of 29 reviews
Profile Image for Craig Smith.
3 reviews8 followers
May 12, 2015
BDD In Action kicks off with an in-depth explanation of what BDD is and why it is important before a good end-to-end example. One of the highlights of the book for me was chapter 3 which has some good coverage of different techniques for requirements analysis. Whilst it could be argued that these are not really BDD, they are included as good examples on how to ensure you are working on requirements that are adding business value. The approaches include Feature Injection, Impact Mapping and the Purpose-Based Alignment Model as well as Real Options and Deliberate Discovery.

John has always extended how I define the core roles on the development team (the three amigos) and this is described within the book as well. The second section of the book explains requirements gathering, through to specifications and then basic automation of a DSL at the scenario level. It seems to imply that the tester should be able to write the executable specification and the base automation, although this does not match my experience of most testers in the field.

Section three of the book covers the coding aspects of BDD, including the automation of tests at the UI level as well as the unit testing level. It goes into a fair amount of detail on how different tools work in different languages as well as a fairly comprehensive overview of TDD. The final section of the book introduces living documentation, mainly using tools like Thucyidides as well as how BDD fits into the continuous delivery world.

The book is full of diagrams as well as comprehensive code examples that are well explained and relevant. One of the main advantages of this book is that is not aimed at any tool – in fact it covers a number of tools and languages in a reasonable amount of detail. The other standout books on the subject have either covered the process in great detail (Specfication By Example) or a tool in detail (The Cucumber Book). This does a very reasonable job of both.
This advantage is also its disadvantage – I would hope testers and business analysts would read this book but may be discouraged by the amoutn of code examples which start from very early in the book. On the flipside, there is a good coverage of requirements tools at the beginning of the book that may discourage some developers. I hope that in this world of cross functional teams that this is not the case.

Overall this is a very well written book that covers the full spectrum of BDD (and TDD, ATDD and SBE). It is also good to see a book that has Australian examples in it for a change, including the Sydney train system and the Queensland Health payroll project.
Profile Image for Patrick.
17 reviews1 follower
October 21, 2014
I had no prior knowledge of Behavior Driven Development, but when I got this book as a complementary copy from the publisher, I read this book and liked it. It was fantastic. The book gives real life examples and is recommended read for any developer or project manager. The examples are well explained and anyone would appreciate this book. I recommend it as a classroom book as well as professional.
Profile Image for Lucy  Batson.
468 reviews9 followers
October 22, 2023
BDD can be petty dry, and this book definitely has stretches of that dryness, but I think it's a lot more engaging than everything rise on the subject
Profile Image for Bartłomiej Falkowski.
246 reviews27 followers
September 30, 2022
This is not a bad book. If you're looking for a source of knowledge about both process and implementation parts of BDD then it might be a good shot.

What I liked:
- The examples. The problem domain that an example project tried to solve was really interesting. I had a feeling that BDD approach was definitely worth applying there.
- The big role of low-level unit tests in the BDD technique. The author have tried to emphasize a huge importance of looking in a different way on your tests. If you want to apply BDD you need to be functional and behavioral in all of the layers. A couple of interesing tricks were provided (nice naming technique for unit tests that don't use explicitly Gherkin standard). I love it!

What I didn't like:
- Well, it's a book from 2014. We have 2022 now (time goes by so fast!). The book contains a lot of code and technical examples. As IT and software development is making a progress all the time, some parts of the "BDD in Action" are not aging well. The screens from old IDE version, old version s of BDD libraries, chapters about CI and live documentation - all of these doesn't look well already :(
- I think that the author's goal was to provide a knowledge that can be utilized by all of the members of the development team - business analysist, QA engineer, software developer etc. The thing is - it's a hecky hard goal to achieve. Once you start leaning towards less technical language and explaining some basic concepts you're dilluting the message. In the end, the book is uneven and harsh. It consists of nice and concrete chapters but also of blury ones. An example. There is a chapter where the same trivial test usecase is written using BDD framework in all of the following languages: Java, JavaScript, Ruby, C# and Pyhon. It takes about 20 or 30 pages to do that. After all, in my opinion, zero value is provided. I've simply skipped the next repetitions...
2 reviews
August 14, 2018
Behavior-Driven Development (BDD) is a set of software engineering practices designed to help teams build and deliver more valuable, higher quality software faster. It draws on Agile and lean practices including, in particular, Test-Driven Development (TDD) and Domain-Driven Design (DDD). But most importantly, BDD provides a com- mon language based on simple, structured sentences expressed in English (or in the native language of the stakeholders) that facilitate communication between project team members and business stakeholders.

BDD was originally invented by Dan North9 in the early to mid-2000s as an easier way to teach and practice Test-Driven Development (TDD)

DON’T WRITE AUTOMATED TESTS, WRITE EXECUTABLE SPECIFICATIONS

DELIVER LIVING DOCUMENTATION

You can also use the BDD-style “Given ... When ... Then” structure in your
unit tests.

A capability enables some business goal, regardless of implementation.
A feature is a piece of deliverable software functionality that provides users with
a capability.
A feature can be described by one or more user stories
A feature is not a user story

library: JBehave

BDD reports don’t simply provide a list of test outcomes, in terms of passing or fail- ing tests. First and foremost, BDD reports document and describe what the applica- tion is expected to do, and they report whether or not the application actually performs these operations correctly.
49 reviews6 followers
April 5, 2019
I used this book as my introduction to BDD, automated acceptance testing, Cucumber, Serenity, and data-driven executable specifications. Being new to all these things, this book was a great help. It is detailed and peppered with useful practical tips.

Since I already had an idea of which tools I wanted to focus on, I was able to skip half of the book that discussed JBehave, JUnit, JavaScript, and others. It was a bit of a drag to be caught up in comparative discussions between feature differences between competing tools. Such information is bound to become dated quickly.

I wish the book had also presented the Screenplay pattern. That's the only significant topic I needed to learn outside of this book to become comfortable writing maintainable UI automation tests.

This book is definitely not timeless, but it was my one-stop reference and it was a big help. I hope there's a newer edition after a while.
3 reviews1 follower
January 10, 2020
This book gives a great overview of the importance of conversations when practicing BDD and several useful requirement gathering techniques (such as using examples).

The book also gives a great overview into good automated testing and CI practices, which I maybe didn't expect, but was a nice surprise. It dives into the technical capabilities of automation tools.

Would recommend this to anyone wanting to get started with BDD, but also those who want a technical introduction to any of the BDD automation tools such as Cucumber or Behave.
Profile Image for Jevgenij.
524 reviews13 followers
February 2, 2021
It's a pretty nice into to BDD, I especially like the parts where general principles were discussed with some anti-patterns shown.

I did not like focus on precise technologies, where the subject was analyzed for different programming languages. And it felt like some interesting topics were lacking depth.
Profile Image for Christoph Kappel.
463 reviews9 followers
June 7, 2022
In my opinion it is good starter for this whole topic and makes it easy to actually start. Although I have done my share of BDD before I got many new ideas from this book, especially about tagging and also to really give JBehave.

Noteworthy is that Thucydides has been renamed to SerenityBDD, but that is probably fixed in a newer version of it.

Profile Image for Gábor Hajba.
139 reviews3 followers
June 3, 2017
A great book, helps you get started with BDD.

It gives you a broad spectrum from theory till implementation approaches. A must read for everyone starting out with the idea to do BDD but keep your mind open and embrace conversations.
Profile Image for Mila Bondarenko.
13 reviews1 follower
May 7, 2019
This is a great book to get a comprehensive idea about BDD. It is narrated in a traditional and yet effective way: from the basics till practical examples so that anyone interested will find something useful.
Profile Image for Andrew.
46 reviews
October 23, 2021
Felt the subject matter was good but the point of view was weak.
Profile Image for Fred.
12 reviews1 follower
April 20, 2023
Gives me the impression there is not much to learn about BDD, assuming you already know TDD and testing principles...
Profile Image for Brice.
71 reviews
May 14, 2025
Un livre passionnant dans les premiers chapitres mais un peu moins lors des cas pratiques. C'est un peu le problème de l'exercice.
14 reviews1 follower
December 3, 2014
Disclaimer: I am a volunteer reviewer for Manning Publications and was given a free eBook of BDD in Action for my review.
Before reading this title I was quite unaware about BDD concepts.
This book represents a great introduction to Behavior Driven Development. It allows a better understanding of BDD principles and how to apply them to real scenarios. Moreover it faces most of difficulties, communication problems and misunderstandings that can take place during software development process.
It is important the emphasis given to the concepts of automation and continuous integration in each step of programming since it is vital to have tested, reproducible and reliable software.
What I could get from this book is that BDD is not easy to be introduced in developing teams and correctly applied by them, since you have to stick to an ascetic discipline, but following the recipes it contains will help you to enhance your code quality and also the developing process.
Finally say: an engaging book recommended to learn a new perspective to face everyday software development challenges.
Profile Image for Adi Bilauca.
3 reviews3 followers
August 4, 2014
This is a great book on BDD. It presents the theory correctly and has some clear real life examples. The first two parts are focused on recommended technics in identifying the capabilities, features, user stories, scenarios, examples. The third part is focused on how you switch from business analyses to coding and tools in various technologies. The last part is pretty useful, covering the BDD in the build process. All in all is a great resource on BDD for both analysts and developers!
87 reviews5 followers
December 13, 2015
The same amount information can be easily explained with less amount of pages, in few times, I suppose. So, the book is not focused well, it covers a lot besides BDD, there are huge amount of examples, but most of the are equal, so the book definitely covers the topic, but at the same time it is wasting reader's time and efforts for something not related to the main topic or/and it just repeats an infromation from prevoius pages.
Profile Image for Marek Pawlowski.
432 reviews18 followers
December 25, 2018
Nie podobała mi się ta książka. Początek tłumaczący podstawowe pojęcia był naprawdę fajny, ale im idzie się dalej, tym nabiera się wrażenia, że książka została napisane trochę bez pomysłu.

I did not like this book. The beginning with an explanation of the fundamental concepts was nice but the rest of the book made it seem like it was written without any concept or any deeper thoughts.
Profile Image for Trevor Price.
302 reviews18 followers
August 16, 2016
I didn't particularly enjoy slogging through vast stretches of this book, and certain parts merit skim reading. But when it comes down to it, it does a pretty good job of explaining BDD and showing various tools that help get the job done.
Profile Image for Greg.
7 reviews8 followers
March 13, 2016
Manning delivers again!
Excellent overview of whole BDD process with many not so obvious details.
JS and Ruby examples among others make it great for a web developer.
Profile Image for Bety.
6 reviews1 follower
September 20, 2016
Covers a couple of BDD flavors and offers a good start point for implementing BDD.
Displaying 1 - 29 of 29 reviews

Can't find what you're looking for?

Get help and learn more about the design.