In this post “TDD vs BDD vs ATDD”, we try to mention key differences between the development techniques TDD, BDD, ATDD. By understanding these techniques we know which strategy we have to use in Software Development. There is no hard rule to stick to one particular development technique. You can use a combination of these three techniques based on the requirement of your project, you, and your team.
What is Test-Driven Development (TDD)?
TDD is also known as Test-Driven Development (Test Driven Design). TDD is a development technique that practices of writing a test and see it fails and then refactors it.
What is Behavioral-Driven Development (BDD)?
BDD is also known as Behavioral Driven Development. BDD is a development technique that practices of creating simple scenarios on how an application should behave from the end user’s perspective.
What is Acceptance Test-Driven Development (ATDD)?
ATDD is also known as Acceptance Test-Driven Development. ATDD is a development technique that practices of translating acceptance criteria to tests.
Difference Between TDD, BDD, ATDD
(TDD vs BDD vs ATDD)
|TDD focuses on the implementation of a feature||BDD focuses on the system's behavior||ATDD focuses on capturing the accurate requirements|
|Mainly developers involve in this to write Unit Tests||Developers, QAs and Customers involve in this process||Developers, QAs and Customers involve in this process|
|Written in a programming language like Python, Java etc.,||Written in simple plain English, Gherkin||Written in simple plain English, Gherkin|
|These tests are technical. Not easy for non technical person to understand this||It is easy for non technical person to understand this||It is easy for non technical person to understand this|
|Focus is to write Unit Tests||Focus is to understanding requirements||Focus is to write Acceptance Tests|
|Tools used in TDD are JDave, Cucumber, JBehave, Spec Flow, BeanSpec, Gherkin Concordian, FitNesse, Junit, TestNG, NUnit frameworks, Selenium tool (any open source tools)||Tools used in Gherkin, Dave, Cucumber, RSpec, Behat, Lettuce, JBehave, Specflow, BeanSpec, Concordian, MSpec, Cucumber with Selenium / Serenity||Tools used in TestNG, FitNesse, EasyB, Spectacular, Concordian, Thucydides, Robot Framework, FIT|