What is BDD?

Behaviour Driven Development (BDD) is a process that encourages collaboration among developers, quality assurance testers, and customer representatives in a software project.

A brief history of BDD

BDD was developed after the limitations with the Test Driven Development (TDD) process. The latter is too technical mostly focused on developers, while BDD encompasses multiple stakeholders including business analysts, testers and developers. The biggest difference between BDD and TDD is, the former emphasis a lot on concrete examples from scenarios.

Benefits

BDD using the Gherkin syntax, which is close to English, helping bridging the communication gap between non technical people such as Product Owner.

It’s also a process to determine what should be developed, tested and ensure the acceptance criterias are being met.

The main idea is to discover bugs the earliest possible in the development cycle which is easier and cheaper to fix compared to those in production.

It’s better for testers to discover the bugs than paying customers.

Requirements

BDD is most effective when used in Agile teams where user stories and acceptance criterias are clear.

How to add BDD process in a small team?

Start implementing Agile practices if not already present. Scrum is a good process. Use a relevant tool such as Azure DevOps, Jira, Taiga or any other common ones.

Break software development into iterations and define user stories and acceptance criterias for each of them.

Tools

This is a list of tools that can be used to implement BDD:

Cucumber

Serenity

Specflow

SpecFlow is a BDD framework for .NET which boosts your productivity by helping you with writing your feature files and automation code in your favorite IDE.

Selenium

Cypress

Cypress with BDD.

References & Additional Reading

https://en.wikipedia.org/wiki/Behavior-driven_development

https://dannorth.net/introducing-bdd/