---
# System prepended metadata

title: What is BDD?
tags: [testing]

---

###### tags: `testing`

# What is BDD?

**BDD** stands for *Behavior-driven development*, and is a process of exploring, discovering, defining and driving out the desired behavior of a sw system, using conversations, concrete examples and automated tests.

Conversations with concrete examples helps explore, discover and illustrate our shared understanding of the problem we need to solve for our stakeholders. Then we refine those examples into automated tests, to describe the desired behavior of our solution, to drive the development of that behavior in the system. To do that you may use tools like Cucumber.

BDD is an agile practice, so it needs to be done *just in time*, at the last responsible moment, and not just in case.
The key in BDD are conversations, and these conversations needs to be done near in time with the work you have to do.

You need to have your work broken down into user stories.

In the conversation between the so called "3 amigos" (Dev, Testers, PO) for a user story, you'll have lots of questions raising and you'll explore the requirements with concrete examples. 
And in the end you'll have a clear picture of what you know and what you have to find out.

