User Acceptance Testing - UAT is a type of testing performed by the Client to certify the system with respect to the requirements that were agreed upon. This testing happens in the final phase of testing before moving the software application to the Market or Production environment. Such type of testing is executed by the client in a separate environment (similar to the production environment) & confirm whether the system meets the requirements as per requirement specification or not. UAT is performed after System Testing is done and all or most of the major defects have been fixed.
User Acceptance Testing - UAT
Image Source : Test Lodge
Definition : The ISTQB defines acceptance as: formal testing with respect to user needs, requirements, and business processes conducted to determine whether a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system.
User Acceptance Testing is also known as End-User Testing, Acceptance Testing and Operational Acceptance Testing (OAT).
The Acceptance Testing is Black Box Testing, which means UAT users doesn’t aware of the internal structure of the code. They just specify the input to the system & check whether systems respond with the correct result.
Types of User Acceptance Testing
- Alpha Testing : Alpha Testing is done onsite therefore developers, as well as business analysts, are involved with the testing team.
- Beta Testing : Beta Testing is done at the client-side by the real users or customer, therefore developers and business analysts are not at all involved.
Who Performs UAT?
- Client : UAT is performed by the customers of the organization. They are the ones who asked the organization to develop the software.
- End Users : UAT is performed by the end-users of the software. They can be the customers themselves or the customers’ customers.
Need of User Acceptance Testing:
- Acceptance testing is required because Developers make software which is their "own" understanding of the requirements and may not actually be what the client needs.
- Requirements changes during the course of the project may not be communicated effectively to the developers.
How is UAT Performed?
Prerequisites of User Acceptance Testing:
- Business Requirements must be available
- Application Code should be fully developed
- Unit Testing, Integration Testing & System Testing should be completed
- Regression Testing should be completed with no major defects
- All the reported defects should be fixed and tested before UAT
- Traceability matrix for all testing should be completed
- UAT Environment must be ready
User Acceptance Testing Process:
UAT is done by the intended users of the system or software. This testing usually happens at the client location which is known as Beta Testing. Once Entry criteria for UAT are satisfied, following are the tasks need to be performed by the testers:
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 the entry and exit criteria for UAT, Test Scenarios and Test Cases approach and timelines of testing. The dates, environment, actors(who), roles and responsibilities, results and their analysis process - and anything else relevant will be found in the UAT test plan.
- Also Whether the QA team is participating, partially participating or not participating at all in the UAT, it is our job to plan this phase.
UAT Design : The gathered acceptance criteria from the users are used in this step. Based on the criteria, QA team give the users a list of UAT test cases.
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.
Preparation of Test Data: It is best advisable to use live data for UAT. Data should be scrambled for privacy and security reasons. Tester should be familiar with the data base flow.
UAT Test Execution : Execute test cases and report bugs if any. Re-test bugs once fixed. The Test cases help the team to effectively test the application in UAT environment. UAT happens in a conference or war room sort of a set up where the users and QA team representatives sit together and work through all the acceptance test cases. Once all the tests are run and the results are in hand, the Acceptance Decision is made. This is also called the Go/No-Go decision. If the users are satisfied it’s a Go, or it’s a No-go.
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
- Business process works satisfactorily
- UAT Sign off meeting with all stakeholders