is a term used in agile methodologies, such as Extreme Programming, referring to the functional testing of a user story by the software development team during the implementation phase.
The customer specifies acceptance criteria for a given story to be implemented. A story can have a number of acceptance criteria. QA then create acceptance tests or scenarios based on the acceptance criteria (each test criteria can have multiple acceptance tests), to ensure sufficient test coverage. As you can appreciate, this is a very important activity, because at the end of the day, it’s the scenarios that find the defects.
Acceptance tests are black-box system tests. Each acceptance test represents some expected result from the system. Customers are responsible for verifying the correctness of the acceptance tests and reviewing test scores to decide which failed tests are of highest priority. Acceptance tests are also used as regression tests prior to a production release. A user story is not considered complete until it has passed its acceptance tests.
This means that new acceptance tests must be created for each iteration or the development team will report zero progress. Quality assurance (QA) is an essential part of the XP process as well as agile method. On some projects QA is done by a separate group, while on others QA will be an integrated into the development team. The acceptance phase may also act as the final quality gateway, where any quality defects not previously detected may be uncovered.
A principal purpose of acceptance testing is that, once completed successfully, and provided certain additional (contractually agreed) acceptance criteria are met. Acceptance testing occurs much earlier and more frequently in an agile methods with respect to traditional approach.
You may also be interested in reading the difference between Acceptance Tests and Acceptance Criteria.