Acceptance testing, Acceptance Test Driven Development (ATDD)

Acceptance test–driven development (ATDD) is a development methodology based on communication between the business customers, the developers, and the testers.

ATDD is closely related to test-driven development (TDD). It differs by the emphasis on developer-tester-business customer collaboration. ATDD encompasses acceptance testing, but highlights writing acceptance tests before developers begin coding.

Test format

Acceptance tests usually follow this form:

  • Given (setup) - A specified state of a system

  • When (trigger) - An action or event occurs

  • Then (verification) - The state of the system has changed or an output has been produced

Also, it is possible to add Statements that start with AND in any of the sections below (Given, When, Then).

For the example requirement, the steps could be listed as:

Given Book that has not been checked out
And User who is registered on the system
When User checks out a book
Then Book is marked as checked out

ATDD vs TDD vs BDD

Approaches / Comparison Parameters

ATDD

TDD

BDD

Users Involved

Communication mechanism between Business user, Developer, Tester.

Developer only.

Combination of ATDD and TDD.

Focus

Focus on capturing requirements in acceptance test.

Technique to bring the customer in design phase.

TDD is model and paradigm.

Focus on behavioral aspect of system for customer and developer.

Bring the customer in testing phase.

Automation Required

No, but helps with regression.

Yes. Must have.

Yes. Must have.

Target level

Avoid implementation details.

Targeted at Implementation specific.

Both of ATDD and TDD.

End Users

Should be readable and focused for customers.

Should be understood by developers.

Should be understandable for both customers and IT team.

Last updated