1. First, take a small upcoming change to the system – a User Story – and talk about concrete examples of the new functionality to explore, discover and agree on the details of what’s expected to be done.
  2. Next, document those examples in a way that can be automated, and check for agreement.
  3. Finally, implement the behavior described by each documented example, starting with an automated test to guide the development of the code.

Behavior-driven development - Wikipedia