Admin note: Due to excessive spam I've removed over 10,000(!) bogus accounts and restricted account creation. If you would like an account please let me know on the BDD Google Group. Thanks --DanNorth

Behaviour-Driven Development (BDD) is an evolution in the thinking behind TestDrivenDevelopment and AcceptanceTestDrivenPlanning.

It brings together strands from TestDrivenDevelopment and DomainDrivenDesign into an integrated whole, making the relationship between these two powerful approaches to software development more evident.

It aims to help focus development on the delivery of prioritised, verifiable business value by providing a common vocabulary (also referred to as a UbiquitousLanguage) that spans the divide between Business and Technology.

It presents a framework of activity based on three core principles:

  1. Business and Technology should refer to the same system in the same way - ItsAllBehaviour

  2. Any system should have an identified, verifiable value to the business - WheresTheBusinessValue

  3. Up-front analysis, design and planning all have a diminishing return - EnoughIsEnough

BDD relies on the use of a very specific (and small) vocabulary to minimise miscommunication and to ensure that everyone – the business, developers, testers, analysts and managers – are not only on the same page but using the same words.

For people familiar with the concept of DomainDrivenDesign, you could consider BDD to be a UbiquitousLanguage for software development.

It must be stressed that BDD is a rephrasing of existing good practice, it is not a radically new departure. Its aim is to bring together existing, well-established techniques under a common banner and with a consistent and unambiguous terminology. BDD is very much focused on “Getting the words right” and this focus is intended to produce a vocabulary that is accurate, accessible, descriptive and consistent.

In fact “Getting the words right” was the starting point for the development of BDD, and is still very much at its core, but the power of getting the words right has led to some insights and extrapolations that have helped us to better understand our approach and to extend it.

Feel free to edit anything you find to make it clearer or to add your opinion (and sign with YourName if you like).

Interesting starting points:

BDDWiki: BehaviourDrivenDevelopment (last edited 2014-09-29 20:29:26 by DanNorth)