Catalog
method#Product#Delivery#Behavior Driven Development#Collaboration

Behavior Driven Development (BDD)

Behavior Driven Development (BDD) is a development approach that promotes collaboration between developers, testers, and domain experts.

BDD encourages the definition of software behavior in natural language, contributing to better communication and understanding.
Established
Medium

Classification

  • Medium
  • Technical
  • Design
  • Intermediate

Technical context

CI/CD PipelinesTest Management ToolsVersion Control Systems

Principles & goals

Early validation.Collaborative requirement work.Clear communication.
Build
Team, Domain

Use cases & scenarios

Compromises

  • Misinterpretation of requirements.
  • Insufficient testing.
  • Lack of acceptance within the team.
  • Documentation of all scenarios.
  • Regular review of tests.
  • Use of clearly defined guidelines.

I/O & resources

  • User Stories
  • Acceptance Criteria
  • Specification Documents
  • Working Software
  • Complete Test Suite
  • Documented Requirements

Description

BDD encourages the definition of software behavior in natural language, contributing to better communication and understanding. The use of tests that are understandable to both domain experts and technical staff improves quality and reduces misunderstandings.

  • Improved software quality.
  • Fewer misunderstandings.
  • Promotes collaboration.

  • Dependency on domain knowledge.
  • Possible over-complexity.
  • Not suitable for all projects.

  • Defect Rate

    Number of defects per tested feature.

  • Test Coverage

    Percentage of requirements tested.

  • Deployment Frequency

    Frequency of software change deployments.

Online Store

An online store that uses BDD to define its checkout pipeline.

Social Networking App

An app that uses BDD to clearly articulate requirements and integrate user feedback.

Financial Software

A software solution that applies BDD to meet security requirements.

1

Organize an introduction workshop.

2

Train the team in BDD.

3

Develop scenarios together.

⚠️ Technical debt & bottlenecks

  • Insufficient test automation.
  • Untreated technical debts.
  • Lack of documentation.
Insufficient test automation.Poor documentation.Lack of acceptance within the team.
  • Excessive complexity in tests.
  • Ignoring defects.
  • Focusing on too many scenarios.
  • Poor communication within the team.
  • Overlooking acceptance criteria.
  • Confusion due to technical terminology.
Knowledge in BDD.Agile working.Collaborative skills.
Flexibility.Adaptability.Technology integration.
  • Lack of resources.
  • Technical debts.
  • Time pressure.