Acceptance Test Driven development (ATDD) in Software Engineering
Prerequisite –Agile Software Development
Acceptance Test-Driven Development(ATDD) :
- ATDD (Acceptance Test Driven Development) is a development technique that gives emphasis on the end users/customers by making acceptance test cases the foundation of development. This means it focuses on providing the actual required functionality/behavior of the system. In this methodology acceptance test is written from the user’s perspective and test cases are created even before coding starts.
- ATDD is extended on TDD (Test Driven Development) which gives emphasis on developers, testers, and business collaboration and it is a test-first approach. Also, ATDD is very much similar to the BDD (Behavior Driven Development) but there is a small difference between them i.e. BDD mainly focuses on the behavior of the system while ATDD focuses on the actual requirements of the customer.
- Some tools which are used for ATDD are TestNG, Spectacular, FitNesse, EasyB, Concordian, Thucydides, etc.
ATDD Cycle :
There are four stages in ATDD (Acceptance Test Driven Development) cycle which comprises Discuss, Distill, Develop, and Demo stages. Let’s discuss one by one.
- Discuss –
User Story (What the customer need from the product at the end of development)
- Distill –
Acceptance tests criteria and Automation (Taking consider into different scenarios and system’s behavior during various scenarios)
- Develop –
Implementation (Develop the feature by following Test First Development TFD approach until it’s success/pass)
- Demo –
Prototype model (Provide a demo to the business stakeholders and proceeds with iterations)
The need for Acceptance Test-Driven Development :
- To avoid ambiguity in requirements.
- To develop the product smoothly.
- To avoid last-minute changes/modifications.
- To deliver a good quality product.
Key practices in ATDD :
- Analyze and discuss the real-world scenarios
- Decide acceptance criteria for various scenarios
- Automate the acceptance test cases
- Focus on development based on requirements.
Benefits of ATDD :
- Gives a better clarification on the requirements.
- Faster resolution of problems/issues.
- Improves collaboration between cross-team members.
- More focus on customer needs.
- Acts as a guideline for the entire development process.
- Easier to manage.
Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.