This post will give answer to two important questions in acceptance testing. Who accepts the software? What is acceptance criteria?
We will give definition of acceptance testing that is aligned with Black Box Software Testing Foundations course (BBST) created by Rebecca Fiedler, Cem Kaner and James Bach.
When customer hires a contractor to write a program, the customer and contractor negotiate the CONTRACT. When contractor announce that program is done, customer or customer representative (independent test lab) would perform acceptance testing to determine if program conforms to the promises in the contract.
It is important to state that if there are no contract-based requirements, there is no acceptance testing.
In Agile teams, acceptance testing term is often used for tests that help developers to determine if software is ready for customer. But as in this case there is no contract to back up those tests, this is not acceptance testing. When there is no contract with customer, agile teams decides whether to deploy or not based on the information from testers. Testers have that information based on their test strategy, test plan, test report and risk based analysis.
So when you need to provide information can we deploy (release), remember that this is not based on acceptance testing.