Thursday, 24 November 2016

Behaviour-driven development

Behaviour-driven development (BDD) has emerged from the practice of test-driven development (TDD).

Whereas TDD focused on making sure that code worked and caught exceptions gracefully, BDD focuses on making sure that the functionality delivers business value and satisfaction to users.

A typical BDD process might look like this:

In behaviour-driven development:

  • User behaviour drives development
  • The team elicits user stories
  • An analyst creates feature files
  • The feature file becomes the test harness for development
  • The team develops and tests against feature files
The key features of BDD are:
  • we write behaviour & specification that then drives our software development. 
  • features are based on actual user behaviour & scenarios & user stories.
  • the tests can be written by business analysts and stakeholders.
The advantages of this approach are:
  • Developers deliver what the users actually want
  • It is rigorously tested
  • The test shows that the feature meets the requirements (as opposed to merely proving that it works)

Further reading