User Acceptance Testing (UAT)
What does User Acceptance Testing (UAT) mean?
User acceptance testing (UAT) is the last phase of the software testing process. It is performed by the Client/Business Analyst/Product Owner/Software Tester(who is not performed this Testing) to certify the system and determine whether it can be accepted or not – as per the definition. UAT is one of the final and critical software project procedures that must occur before newly developed software is rolled out to the market. The main purpose of this testing is to validate the end to end business flow. It does NOT focus on the cosmetic errors, Spelling mistakes or System testing. This testing is carried out in separate testing environment with production like data setup. User acceptance testing is often the most essential to get right, because when implemented correctly, it’s the most effective in reducing both time and cost, whilst increasing customer satisfaction. UAT is also known as beta testing, application testing or end user testing.
When and who will perform UAT?
UAT directly involves the intended users of the software. UAT can be implemented by making software available for a free beta trial on the Internet or through an in-house testing team comprised of actual software users.
Need of User Acceptance Testing:
There are many aspects to consider with respect to software functionality. There’s unit testing, functional testing, integration testing, and system testing, amongst many others. As part of these processes, we regularly ask questions such as:
- Does the application crash?
- Do all the functions accept the correct inputs and give the correct outputs?
- Does the application consume only the minimum amount of resources?
- What’s the load time of the application?
Whilst these are valid, and essential, ultimately they’re quite meaningless – if the application doesn’t perform as the end user expects. As software artisans, we need to avoid situations such as:
- Can the user use the software?
- Is it really what they asked for?
- Do they have trouble using it?
- Does it behave exactly as anticipated?
UAT is important because it helps demonstrate that required business functions are operating in a manner suited to real-world circumstances and usage.
User Acceptance Testing Process: How is UAT performed?
- Business Requirements must be available
- Application Code should be fully developed
- Unit Testing, Integration Testing & System Testing should be completed
- No Show stoppers, or High or Medium defects in the System Integration Test Phase
- Only Cosmetic errors are acceptable before UAT
- Regression Testing should be completed with no major defects
- All the reported defects should be fixed and tested
- Traceability matrix for all testing should be completed
- UAT Environment must be ready
- Sign off mail or communication from System Testing Team that the system is ready for UAT execution
UAT will have the plan, design and the execute phases.
The UAT strategy is outlined during the planning step. The most common approach followed in most of the projects is to plan for both system and UAT testing phases together. It documents entry and exit criteria for UAT, Test scenarios and test cases approach and timelines of testing.
Test Scenarios and Test Cases:
Test cases are designed to cover all the functional scenarios of the software in real-world usage. They are designed in a simple language and manner to make the test process easier for the testers.Based on the criteria, QA team give them the users a list of UAT test cases. UAT test cases are not different from out regular system test cases. They are just a sub set since we test all of the application as opposed to just the key functional areas.
It is best advisable to use live data for UAT.
Executing test cases and documenting:
The testing team executes the designed test cases. Sometimes it also executes some relevant random tests. All bugs are logged in a testing document with relevant comments.
Bug fixing: Responding to the bugs found by the testing team, the software development team makes final adjustments to the code to make the software bug-free
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 more colloquially. If the users are satisfied it’s a Go, or it’s a No-go.
The reaching of the acceptance decision is typically the end of UAT phase.
User Acceptance Testing as a standard part of your web development projects. It reduces the likelihood of issues being raised, which in turn reduces the amount of work required in development and maintenance.