Open In App

Acceptance Test Driven development (ATDD) in Software Engineering

Last Updated : 21 Jan, 2021
Improve
Improve
Like Article
Like
Save
Share
Report

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.

  1. Discuss –
    User Story (What the customer need from the product at the end of development)
  2. Distill –
    Acceptance tests criteria and Automation (Taking consider into different scenarios and system’s behavior during various scenarios)
  3. Develop –
    Implementation (Develop the feature by following Test First Development TFD approach until it’s success/pass)
  4. 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 :

  1. Analyze and discuss the real-world scenarios
  2. Decide acceptance criteria for various scenarios
  3. Automate the acceptance test cases
  4. 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.

Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads