User Acceptance Testing (UAT) is a type of testing performed by the end-user or the client to verify/accept the software system before moving the software application to the production environment. UAT is done in the final phase of testing after functional, integration, and system testing is done.
Purpose of UAT Testing:
The main purpose of UAT is to validate end-to-end business flow. It does not focus on cosmetic errors, spelling mistakes, or system testing. User Acceptance Testing is carried out in a separate testing environment with a production-like data setup. It is a kind of black box testing where two or more end-users will be involved.
Need of User Acceptance Testing
The need for User Acceptance Testing arises once software has undergone Unit, Integration, and System testing because developers might have built software based on requirements document by their own understanding, and further required changes during development may not be effectively communicated to them, so for testing whether the final product is accepted by client/end-user, user acceptance testing is needed.
- Developers code software based on requirements documents which is their “own” understanding of the requirements and may not actually be what the client needs from the software.
- Requirements changes during the course of the project may not be communicated effectively to the developers.
How to execute UAT Tests
UAT is done by the intended users of the system or software. This type of Software Testing usually happens at the client location which is known as Beta Testing. Once the Entry criteria for UAT are satisfied, the following are the tasks that need to be performed by the testers:
UAT Process
- Analysis of Business Requirements
- Creation of UAT test plan
- Identify Test Scenarios
- Create UAT Test Cases
- Preparation of Test Data (Production like Data)
- Run the Test cases
- Record the Results
- Confirm business objectives
Step 1) Analysis of Business Requirements
One of the most important activities in the UAT is to identify and develop test scenarios. These test scenarios are derived from the following documents:
- Project Charter
- Business Use Cases
- Process Flow Diagrams
- Business Requirements Document (BRD)
- System Requirements Specification (SRS)
Step 2) Creation of UAT Plan:
The UAT test plan outlines the strategy that will be used to verify and ensure an application meets its business requirements. It documents entry and exit criteria for UAT, Test scenarios and test cases approach, and timelines of testing.
Step 3) Identify Test Scenarios and Test Cases:
Identify the test scenarios with respect to high-level business processes and create test cases with clear test steps. Test Cases should sufficiently cover most of the UAT scenarios. Business Use cases are input for creating the test cases.
Step 4) Preparation of Test Data:
It is best advised to use live data for UAT. Data should be scrambled for privacy and security reasons. Tester should be familiar with the database flow.
Step 5) Run and record the results:
Execute test cases and report bugs if any. Re-test bugs once fixed. Test Management tools can be used for execution.
Step 6) Confirm Business Objectives met:
Business Analysts or UAT Testers need to send a sign-off mail after the UAT testing. After sign-off, the product is good to go for production. Deliverables for UAT testing are Test Plan, UAT Scenarios and Test Cases, Test Results, and Defect Log
Exit criteria for UAT:
Before moving into production, the following needs to be considered:
- No critical defects open
- The business process works satisfactorily
- UAT Sign off meeting with all stakeholders
Conclusion:
- UAT or User Acceptance Testing is one of the many flavors of testing that has emerged over the last twenty-five years.
- With UAT, the client can be sure of “What to expect” from the product rather than assuming.
- The benefit of UAT is that there will be no surprises when the product is released to the market.