Introducing BDD
In this section, we will be introduced to BDD, as it forms an essential part of the methodology described in this book. BDD was first introduced as a concept by Dan North back in 2006 (refer to Further reading link #2), as a way to improve communication and collaboration and to facilitate behavior-based automated testing. BDD is often referred to as an outside-in development methodology, as it focuses on system behavior required by the stakeholders as the driving mechanism for developing software. This well-defined system behavior is referred to as a feature in BDD parlance.
Since North's original article, BDD has matured and evolved and now has a rich ecosystem supporting it, with tools such as Cucumber, SpecFlow, and JBehave appearing in many a developer's tool-belt. Gojko Adjiz (yes, him again) helped solidify BDD principles in his book Specification by Example (refer to Further reading link #4). As a result, some people actually use the terms BDD and...