Excel template for user acceptance testing
User Acceptance Testing : Definition, Need and Best Practices
Article written by : Deeksha Negi
Products are built by designers and engineers and they are created keeping the end-user in mind. However, sometimes this idea is overlooked. Product design starts by considering how a product should function and how it should look. User interviews and market research are the basis for designing a product. However, the designs are based on educated assumptions.
When performing various quality assurance activities, development professionals can look at the product from the user’s point of view. Techniques like usability testing and black-box testing help to communicate user requirements. The quality assurance activities focus on detecting bugs and logical errors in the software, which are technical aspects of a product. Users have no desire to know the complicated steps involved in making their desired products as long as the product solves their problems. Therefore, to make sure that the development team is developing the product as per the users' requirements, it is vital to conduct user acceptance testing (UAT).
What is User Acceptance Testing (UAT)?
UAT is the last stage of any SDLC (Software Development Life Cycle). It is a model of testing conducted by the client also known as the end-user to validate/accept the software system before passing on the application to the production environment. As mentioned earlier, UAT is done in the last phase of testing after integration, functional and system testing is performed.
As mentioned above, UAT is a testing methodology where the end-user is included in testing the product to approve the product against their specifications. It is conducted at the end-user location at the developer's site.
User Acceptance Testing is context-dependent and the UAT plans are developed based on the users' requirements and NOT compulsory to perform all kinds of client acceptance tests and even organised and contributed by the testing team.
◦ What is the Importance of User Acceptance Testing?
The main purpose of UAT is to approve an end to end business flow. It does not focus on superficial faults, spelling errors or system testing. It is carried out in a separate testing environment with a production-like data setup. It is similar to black-box testing where two or more users will be involved.
▪ Who Performs UAT?
Operative experts and business users are both required for User Acceptance Testing. Specialists supervise the technical side of the development. However, end-users are critical for the successful completion of the UAT. After all, the business users are the only ones who know precisely what the changed outcome must look like. The product can be perfectly functional from a technical viewpoint and still fail because it doesn’t meet the changed specifications’ standards.
For instance, a new purchase order has been improved to include a new subfield of online orders. An acceptance test must assure that the same purchase order works properly. The new format for the purchase order should work properly during all of the purchase-to-pay processes. This includes all steps like initial creation, approval, receipt and invoicing and finally, accounting.
What is the Need of User Acceptance Testing?
The need for UAT arises after the product has undergone Unit, Integration and System testing. This is because the designers and developers might have developed the software based on requirements documentation by their knowledge. The modifications done during the development phase may not be efficiently communicated to the end-users, therefore, for testing if the end product is accepted by the client, UAT is required. In a nutshell, the following are the main reasons why user acceptance testing is needed.
- Developers write code for software based on requirements documentation which is their "own" understanding and knowledge of the end-user requirements. However, it might not be what the user wants from the end product/software.
- User requirements change throughout the project may not be communicated effectively to the developers.
V-Model in Software Testing
V-Model is a Software Development Life Cycle (SDLC) model where there is a testing phase parallel to each software development phase. The V-Model (also known as the verification and validation model) is an extension of the waterfall model in which testing is done on every phase parallel with development in a sequential manner.
In V-Model, UAT corresponds to the requirement stage of the SDLC.
What are the Prerequisites of User Acceptance Testing?
To perform UAT, the following are required:
- Client business requirements
- Software code should be completely developed
- Integration Testing, Unit Testing & System Testing should be completed
- There should be no high, medium defects in the System Integration Test stage
- There should be no major defects after Regression Testing is completed
- All the reported errors should be fixed and re-tested before starting with UAT
- The traceability matrix for all testing should be completed
- UAT Environment must be ready
- Signing off mail or communication from team performing System Testing should be sent out confirming that the system is ready for User Acceptance Testing execution
Note: Just cosmetic error is acceptable before User Acceptance Testing
How to perform UAT?
User Acceptance Testing is performed by the intended end-users of the product or system or software. This is similar to Software Testing. UAT usually takes place at the client/user location which is also known as Beta Testing. Once prerequisites for UAT are met, the testers perform the testing tasks in the following stages.
- Analysing the business requirements
- Creating User Acceptance Testing plan
- Identifying test situations
- Creating UAT test cases
- Preparing test data (Production like Data)
- Running the test cases
- Recording the results
- Confirming business goals
The following section will provide a detailed description of each stage of UAT.
Stage 1 - Analysing of Business Requirements
One of the most critical steps in the UAT is to understand and develop test scenarios. The testing scenarios are determined from the following documents:
- Business Use Cases
- System Requirements Specification (SRS)
- Business Requirements Document (BRD)
- Process Flow Diagrams
- Project Charter
Stage 2 - Creating User Acceptance Testing Plan
The UAT test plan describes the strategy that will be used to test and make sure that a software application satisfies its business requirements. This stage documents entry and exit standards for UAT, the approach for testing scenarios and test cases as well as the timelines of testing.
Stage 3 - Identifying Test Scenarios and Test Cases
Identify the test scenarios concerning the high-level business process and design test cases with clear test measures. Test cases should adequately cover most of the UAT scenarios. The business use cases are required for creating the test cases.
Stage 4 - Preparing of Test Data
It is best recommended to utilize live data for User Acceptance Testing. The data should be jumbled for security and privacy reasons. However, the tester must know the database flow.
Stage 5 - Running and Recording the Results
In this stage, the testers execute test cases and report glitches if any. Moreover, they re-test once the glitches are fixed. The test management tools/software can be used for execution.
Stage 6 - Confirming Business Goals are Met
UAT Testers or Business Analysts need to send a sign off mail after the UAT testing. After signing-off, the software is good to go to the production phase. The deliverables for User Acceptance Testing are test plan, test cases and scenarios, test outcomes and bug log
Exit Guidelines for UAT
The following should be considered before moving into the production stage of SDLC:
- User Acceptance Testing sign off meeting with all stakeholders
- The business process works competently
- No critical bugs open
Qualities of UAT Testers
UAT Testers should have a good understanding of the business. He/she should be independent and should be able to think as an unfamiliar user of the system. The tester should be a lateral thinker and analytical. Moreover, he/she should be able to combine all kinds of data to make the UAT successful.
Testers or subject matter experts or business analysts who understand the business flows or requirements can prepare tests and data which are realistic to the business.
Best Practices for User Acceptance Testing
The following need to be considered to successfully execute a UAT:
- Design checklist before the UAT starts
- Prepare testing plan early in the project life cycle
- Conduct Pre-UAT session during System Testing phase
- Think like a user who is unfamiliar with the system
- Setup the expectation and define the scope of UAT
- Avoid system tests and analyze the end-to-end business flow
- Conduct Usability Testing
- Conduct feedback sessions before moving to production
- Test the system or product with real-world data and scenarios
There are numerous automated tools available which can be used for User Acceptance Testing, for instance, Fitness tool and Watir.
Some Example Guidelines of UAT
- In regular software development scenarios, if there is no UAT or staging environment, UAT is conducted in the Quality Assurance environment.
- As aforementioned, UAT is classified into Beta testing. However, it is not so necessary when software is developed for a service-based industry
- UAT successful when the client/end-user is involved to a greater extent
User Acceptance Testing in a Nutshell
To following concludes the concept of User Acceptance Testing
- In a software engineering model called a V-Model, UAT corresponds to the requirement stage of the Software Development Life Cycle.
- With UAT, the client can be sure of "What to expect" from the product/software rather than guessing.
- UAT is one of the many versions of testing that has emerged over years.
- The advantage of UAT is that there will be no surprises when the software or system is released to the market.