1. Behavior Driven Development (BDD) :
Behavior Driven Development (BDD) is a development technique which focuses more on a software application’s behavior. Mainly it creates an executable specification that fails because the respective feature doesn’t exist, then writing the simplest code that can make the specification pass and as a result we get the required behavior implemented in the system. Actually it is a team methodology where Developers, Customer, QAs are involved in it.
Process of BDD :
- Write the behavior of the application
- Write the automated scripts
- Then Implement the functional code
- Check if the behavior is successful and if not success then fix it
- Organize the code (Optional)
- Repeat the steps for another behavior
2.Test Driven Development (TDD) :
Test Driven Development (TDD) is a development technique which focuses more on the implementation of a feature of a software application/product. Mainly it refers to write a test case that fails because the specified functionality doesn’t exist and after that update the code that can make the test case pass and as a result we get the feature implemented in the system. Actually it is a development practice where the developers are involved in it.
Process of TDD :
- Add test case
- Run the test cases and watch test fails
- Update the code
- Run the test cases again
- Refactor the code (Optional)
- Repeat the steps for another test case
Difference between BDD vs TDD :
S.NO. |
Behavior Driven Development |
Test Driven Development |
01. | Behavior Driven Development is a development technique which focuses more on a software application’s behavior. | Test Driven Development is a development technique which focuses more on the implementation of a feature of a software application/product. |
02. | In BDD the participants are Developers, Customer, QAs. | In TDD the participants are developers. |
03. | Mainly it creates an executable specification that fails because the respective feature doesn’t exist, then writing the simplest code that can make the specification pass and as a result we get the required behavior implemented in the system. | Mainly it refers to write a test case that fails because the specified functionality doesn’t exist and after that update the code that can make the test case pass and as a result we get the feature implemented in the system. |
04. | Its main focus is on system requirements. | Its main focus is on unit test. |
05. | In BDD the starting point is a scenario. | In TDD the starting point is a test case. |
06. | It is a team methodology. | It is a development practice. |
07. | Here language used to write behavior/scenarios is simple English language. | Here language is used is similar to the one used for feature development like programming language. |
08. | In BDD collaboration is required between all the stakeholders. | In TDD collaboration is required only between the developers. |
09. | It is a good approach for project development which are driven by user actions. | It is a good approach for projects which involve API and third-party tools. |
10. | Some of the tools used are Cucumber, Dave, JBehave, Spec Flow, Concordian, BeanSpec etc. | Some of the tools used are JBehave, JDave, Cucumber, Spec Flow, BeanSpec, FitNesse etc. |