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

  • risk assessment

    Risk assessment is the identification of hazards that could negatively impact an organization's ability to conduct business.

  • PCI DSS (Payment Card Industry Data Security Standard)

    The Payment Card Industry Data Security Standard (PCI DSS) is a widely accepted set of policies and procedures intended to ...

  • risk management

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

SearchSecurity

SearchHealthIT

  • telemedicine (telehealth)

    Telemedicine is the remote delivery of healthcare services, such as health assessments or consultations, over the ...

  • Project Nightingale

    Project Nightingale is a controversial partnership between Google and Ascension, the second largest health system in the United ...

  • medical practice management (MPM) software

    Medical practice management (MPM) software is a collection of computerized services used by healthcare professionals and ...

SearchDisasterRecovery

SearchStorage

  • hot plugging

    Hot plugging is the addition of a component to a running computer system without significant interruption to the operation of the...

  • M.2 SSD

    An M.2 SSD is a solid-state drive (SSD) that conforms to a computer industry specification and is used in internally mounted ...

  • kilobyte (KB or Kbyte)

    A kilobyte (KB or Kbyte) is a unit of measurement for computer memory or data storage used by mathematics and computer science ...

Close