User acceptance testing (UAT) is the one form of acceptance testing that must involve stakeholders outside of the project team; the users. UAT provides a formal means for validating that a new system actually meets the necessary user requirements from the users’ or customer’s perspective within the users’ environment (or as close as possible) before moving the system into production.
UAT is also another one-last-chance to screen for the issues not found and resolved during unit, integration, and system testing where the vast majority of the functional, error, and boundary tests are executed. Of course, when performing acceptance testing there is much more than functionality to evaluate.
However, the central purpose of UAT is to involve the users and business managers in an actual test cycle to help them to gain the necessary confidence that the system will meet their real world business needs.
It is generally understood that everything cannot be tested as well as it could be if time and money were no object. In the real world of project constraints and concerns of time-to-market, any testing effort needs a strategy that creates an appropriate balance between quality, budget, and schedule.
To accomplish this for user acceptance testing, the contextual challenges faced by the project in regard to this effort must be considered. Without due consideration for these challenges and the risks to the business they imply, the context of the user acceptance test cannot be fully understood. Without this understanding, an appropriate plan of action cannot be defined and agreed to early in the project cycle.