Acceptance-test-driven Development (ATDD)
Acceptance-Test-Driven Development (ATDD) is a software development methodology that focuses on defining and automating acceptance criteria tests before the actual development begins. This practice involves collaboration among developers, testers, and business stakeholders to create acceptance tests that describe the desired behavior of the software from a user's perspective. These tests guide the development process, ensuring that the final product meets the agreed-upon requirements and provides value to the end-users.
In ATDD, the process typically begins with gathering requirements and writing acceptance tests that reflect the expected outcomes. These tests are usually written in a human-readable format and can be understood by all stakeholders. Once the tests are defined, developers write the code necessary to pass these tests. After coding, the acceptance tests are run automatically to verify that the software behaves as intended.
ATDD offers several benefits. It ensures that the development process is aligned with user needs and business goals, reducing the likelihood of misunderstandings and miscommunications. By involving stakeholders early and continuously, ATDD promotes a shared understanding of requirements and fosters collaboration. Additionally, the automated acceptance tests serve as living documentation, making it easier to maintain and update the software over time.
ATDD focuses on specific user functionality in the application and differs from TDD which focuses on code level functionality and BDD which focuses on higher level customer flows i.e. 'jobs to be done' in design thinking parlance.
Overall, ATDD enhances the quality and reliability of software by ensuring that it meets user expectations and business objectives, leading to more successful and user-centric products.