Behaviour Driven Development

Dan North introduces BDD:

Story Template:

As a [X]
I want [Y]
so that [Z]

Story Acceptance Template:

Given some initial context (the givens),
When an event occurs,
then ensure some outcomes.

The fragments of the scenario – the givens, event, and outcomes – are fine-grained enough to be represented directly in code. JBehave defines an object model that enables us to directly map the scenario fragments to Java classes.

Dan North on stories:

It has to be a description of a requirement and its business benefit, and a set of criteria by which we all agree that it is “done”. This is a more rigorous definition than in other agile methodologies, where it is variously described as a “promise of a conversation” or a “description of a feature”. (A BDD story can just as easily describe a non-functional requirement, as long as the work can be scoped, estimated and agreed on.)