In software development, user acceptance testing (UAT)—also called application testing, and end user testing—is a phase of software development in which the software is tested in the "real world" by the intended audience. UAT is often the last phase of the software testing process, completed before the tested software is released to its intended market. The goal of UAT is to ensure the software can both handle real-world tasks and perform up to development specifications.
In UAT, users are given a chance to interact with the software before the official release and see if any features have been overlooked or contain bugs. UAT can be done by in-house testing in which volunteers or paid test subjects use the software or by making the test version available for downloading a free trial over the Web. The experiences of the early users are forwarded back to the developers who make final changes before releasing the software commercially.
UAT is an effective method for ensuring quality in terms of time and cost to perform while increasing transparency with the software users. UAT also allows developers to work with real cases and data, and if successful, validates fulfilled business requirements.
Types of UAT
Multiple types of software tests qualify as user acceptance testing. These tests include:
- Beta testing- Where the software is given to groups of end users, who will use the software in its intended purpose and will provide feedback to developers for changes to make improvements.
- Black box testing- Where an end user will test specific software functions without seeing the internal code.
- Operational Acceptance Testing- Which puts a focus on proper workflow for the software in use.
- Contract Acceptance Testing- Where software is tested based on specific criteria. Such specifications are defined in a contract.
- Regulation Acceptance Testing- Where a focus on legal regulations are checked against the software.
How to perform UAT testing
The number of steps involved in performing a user acceptance test may range depending on how granular each team wants to define each step in the process. For the most part, however, these steps commonly include
- A planning phase where the business requirements and the strategy for the UAT are outlined
- The identification and creation of test scenarios. These test scenarios should cover as many functional cases as possible that end users would face.
- Testing teams are chosen. Developers can decide to have a select few end users test the software or open up the test to many more by offering a free trial over the Web.
- A testing and documentation phase where end users begin testing the software and any potential bugs and other issues are logged.
- A fix phase where the development team makes adjustments to the code, resolving any bugs or making suggested changes.
After this, the software should be ready for release into its production environment.