Behaviour Driven Development (BDD) is a synthesis and refinement
of practices stemming from Test Driven Development (TDD) and
Acceptance Test Driven Development (ATDD). BDD augments TDD and
ATDD with the following tactics:
- Apply the “Five Why’s” principle to each proposed user story,
so that its purpose is clearly related to business outcomes
- thinking “from the outside in”, in other words implement only
those behaviors which contribute most directly to these business
outcomes, so as to minimize waste
- describe behaviors in a single notation which is directly
accessible to domain experts, testers and developers, so as to
improve communication
Expected Benefits
Teams already using TDD or ATDD may want to consider BDD for
several reasons:
- BDD offers more precise guidance on organizing the conversation
between developers, testers and domain experts
- notations originating in the BDD approach, in particular the
given-when-then canvas, are closer to everyday language and have a
shallower learning curve compared to those of tools such as
Fit/FitNesse
- tools targeting a BDD approach generally afford the automatic
generation of technical and end user documentation from BDD
“specifications”