Browse Definitions :
Definition

acceptance test–driven development (ATDD)

Contributor(s): Matthew Haughn

Acceptance test–driven development (ATDD) is a collaborative process where developers, testers and business representatives come together to work out requirements, perceive potential pitfalls and reduce the chance of errors before coding begins. ATDD is written from the perspective of the user and answers the question "Is the code doing what it's supposed to do?"

The first step in ATDD is to assemble all parties involved and hold a specification workshop. Once requirements are defined and clarified in the workshop, the testers can create automated tests from the specified criteria. Quality assurance (QA) testers work with developers in order to implement the first test and automate it. ATDD also makes unit testing easier to implement.

ATDD test format

ATDD tests usually adhere to the following format:

Given: A setup, specified state.

And (optional): Setup continued.

When: Trigger, an action or event happens.

Then: Verification. State has changed or output is produced.

An example using the ATDD format:

Given: Movie listed on catalog of video streaming app.

And: User is a paid subscriber.

When: User selects movie to watch from app catalog.

Then: Movie is streamed for user.

Benefits of ATDD

ATDD brings everyone involved in development together to discuss the criteria around which an app is built. Clarity on requirements helps reduce wasted efforts and understanding how a business expects things to function can reduce recoding and errors. ATDD can often be beneficial for developers using Agile.

Even in cases where testing is not automated or the testers have little knowledge of coding, there is still value in clarifying business conditions and logic. All teams can benefit from collaboration with business experts and early discussion of how to test so that necessary requirements are filled. The end result of ATDD is a better, more reliable application.

ATDD vs. TDD             

While ATDD concentrates on collaboration and testing for user functionality, test-driven development (TDD) follows more of a developer-focused approach. TDD focuses on running and automating unit tests and is easier to implement. Both ATDD and TDD aim to reduce unnecessary code and developer resources, while creating comprehensive requirements and testing continuously to make sure a product meets user expectations.

This was last updated in July 2019

Continue Reading About acceptance test–driven development (ATDD)

Join the conversation

1 comment

Send me notifications when other members comment.

Please create a username to comment.

hi


Cancel

-ADS BY GOOGLE

File Extensions and File Formats

Powered by:

SearchCompliance

  • privacy compliance

    Privacy compliance is a company's accordance with established personal information protection guidelines, specifications or ...

  • data governance policy

    A data governance policy is a documented set of guidelines for ensuring that an organization's data and information assets are ...

  • risk management

    Risk management is the process of identifying, assessing and controlling threats to an organization's capital and earnings.

SearchSecurity

  • Advanced Encryption Standard (AES)

    The Advanced Encryption Standard, or AES, is a symmetric block cipher chosen by the U.S. government to protect classified ...

  • intrusion detection system (IDS)

    An intrusion detection system (IDS) is a system that monitors network traffic for suspicious activity and alerts when such ...

  • Secure Shell (SSH)

    SSH, also known as Secure Shell or Secure Socket Shell, is a network protocol that gives users, particularly system ...

SearchHealthIT

SearchDisasterRecovery

SearchStorage

  • M.2 SSD

    An M.2 SSD is a solid-state drive (SSD) that conforms to a computer industry specification written for internally mounted storage...

  • RAID (redundant array of independent disks)

    RAID (redundant array of independent disks) is a way of storing the same data in different places on multiple hard disks or ...

  • cache memory

    Cache memory, also called CPU memory, is high-speed static random access memory (SRAM) that a computer microprocessor can access ...

Close