Also: Functional test, customer test
Pass/fail tests used to define whether or not a feature is functioning correctly, usually developed in parallel to the defining of the feature. These tests may be written in plain English by the customer or product owner (“The user clicks , the session is reset, and the user is redirected to the homepage”).
Ideally, an acceptance test is subsequently automated by the developer so that it can easily run on all iterations of the software, ensuring that the accepted feature has not been broken by newer development. The use of acceptance tests in subsequent iterations is also known as regression testing. Acceptance testing is a key feature of test-driven development (TDD).
Background Of The Term
The concept of acceptance testing exists in engineering disciplines other than software development and is usually referred to as black-box testing.
Although acceptance testing is common across many agile disciplines, the term derives from Extreme Programming. According to C2.com, acceptance tests were first referred to as functional tests, because they test whether or not a feature works. Kent Beck, a primary mover behind TDD, proposed the change in terminology in April 2000.
Further Learning
Acceptance Testing – Agile Alliance glossary
Acceptance testing – Wikipedia entry