What is User Acceptance testing?
UAT is a process of verifying that a solution works for the user.
User Acceptance Testing is the last phase of the software testing process. The goal of User acceptance testing is to ensure that in real-world situations and scenarios, the software can handle the tasks that it was developed to do. User acceptance testing is the critical and final stage of testing performed before the new software or web application is sent out on the market. During UAT, actual software users test the software to make sure it can handle required tasks in real-world scenarios according to specifications. When implemented correctly, it’s the most effective in reducing both time and cost, whilst increasing customer satisfaction.
UAT testing or user acceptance testing is the last testing phase of software development. UAT testing may also be known as end-user testing, application testing or beta testing.
What’s the need of UAT?
Once a software has gone through unit, integration, and system testing the need of acceptance testing may seem redundant but, UAT is very important
- It keeps ongoing maintenance costs low- It is cheaper to fix functionality and usability issues early while it is much harder to fix a bug when there are more functionalities and code around it.
- Client satisfaction- As the usability is already tested, clients are more confident that the requirements are met. It minimises the ‘fear’ of how the product will behave in the real environment and chances of facing critical issues.
- Resolve miscommunication in developers understanding- Developers code software based on requirement document, which is their “own” understanding of the requirements and may not actually be what the client needs from the software.
- Stakeholders use the information gathered through UAT to better understand the target audience’s needs.
Qualification criteria for Acceptance Testing
How is UAT Performed?
Once the entire test is run and the results are in hand, the acceptance decision is made. This is also called the GO/NO-GO decision more colloquially, If the users are satisfied it’s GO, or it’s NO-GO.
Types of User Acceptance Testing
Alpha Testing – Performed to identify all possible issues/ bugs before releasing the product to everyday users or the public. The main focus of this testing is to simulate real users carrying out the tasks that a typical user might perform. Alpha testing is carried out in a lab environment and usually, the testers are internal employees of the organization.
Beta Testing – Carried out in the production environment or the client’s environment. This is more common for customer facing applications. The users here are the actual customers. It helps reduce the product failure risks and provides increased quality of the product through customer validation.
Contract Acceptance Testing – The testing takes place against software requirement specification, which was defined in the agreement contract. The relevant criteria and specifications for acceptance must be defined when the contract was defined and agreed upon.
Regulation Acceptance Testing AKA Compliance Acceptance Testing – In regulation acceptance testing we check compliance of software with the regulations including governmental and legal regulations.
Operational Acceptance Testing AKA Production Acceptance Testing – These test cases ensure the workflows are in place and the software is usable. It is used to conduct operational readiness of a product, service or system as part of a quality management system.
Black Box Testing – Method of software testing that examines the functionality of an application without peering into its internal structures or workings. This method is applied virtually to every level of software testing: Unit, Integration, System, and acceptance.