Browse Definitions :
Definition

acceptance test–driven development (ATDD)

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)

Networking
  • local area network (LAN)

    A local area network (LAN) is a group of computers and peripheral devices that are connected together within a distinct ...

  • TCP/IP

    TCP/IP stands for Transmission Control Protocol/Internet Protocol and is a suite of communication protocols used to interconnect ...

  • firewall as a service (FWaaS)

    Firewall as a service (FWaaS), also known as a cloud firewall, is a service that provides cloud-based network traffic analysis ...

Security
  • identity management (ID management)

    Identity management (ID management) is the organizational process for ensuring individuals have the appropriate access to ...

  • single sign-on (SSO)

    Single sign-on (SSO) is a session and user authentication service that permits a user to use one set of login credentials -- for ...

  • fraud detection

    Fraud detection is a set of activities undertaken to prevent money or property from being obtained through false pretenses.

CIO
  • IT budget

    IT budget is the amount of money spent on an organization's information technology systems and services. It includes compensation...

  • project scope

    Project scope is the part of project planning that involves determining and documenting a list of specific project goals, ...

  • core competencies

    For any organization, its core competencies refer to the capabilities, knowledge, skills and resources that constitute its '...

HRSoftware
  • recruitment management system (RMS)

    A recruitment management system (RMS) is a set of tools designed to manage the employee recruiting and hiring process. It might ...

  • core HR (core human resources)

    Core HR (core human resources) is an umbrella term that refers to the basic tasks and functions of an HR department as it manages...

  • HR service delivery

    HR service delivery is a term used to explain how an organization's human resources department offers services to and interacts ...

Customer Experience
  • martech (marketing technology)

    Martech (marketing technology) refers to the integration of software tools, platforms, and applications designed to streamline ...

  • transactional marketing

    Transactional marketing is a business strategy that focuses on single, point-of-sale transactions.

  • customer profiling

    Customer profiling is the detailed and systematic process of constructing a clear portrait of a company's ideal customer by ...

Close