Skip to content

Instantly share code, notes, and snippets.

@phosphene
Last active December 13, 2015 18:09
Show Gist options
  • Save phosphene/4953551 to your computer and use it in GitHub Desktop.
Save phosphene/4953551 to your computer and use it in GitHub Desktop.
What is BDD
Tests add value through:
1. Reducing costs
2. Increasing communication
3. Find bugs, document behaviour (contracts, stories), defer design decisions
Behaviour-Driven Development is development through
describing behavior:
Where behavior is:
demonstrable, consistent meaning from the perspective of "stakeholders".
The tests themselves should describe, document, and prove behaviour.
Ideally, the tests should be literate and intuitive. Hence RSpec.
Developers need to understand the domain, and the common words stakeholders
use to describe the behavior they want. In many cases, the developers will need to
develop an understanding and a language that the stakeholders can use and
understand.
Principles of BDD:
Parsimony: Just enough to produce meaninful increment.
Relevance: Real value in real world.
Behaviour: What and Why: Behaviour should be describable and explicit in common sense language.
Start with:
What are the explicit, most easily communicated goals of a project?
SMART acronym:
Specific: enough detail to know that something
is done.
Measurable: can determine whether the objective
Achievable: expectation realistic
Relevant: makes real sense
Timeboxed: when to call time if we
haven’t achieved an outcome
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment