What is UAT Testing?
UAT stands for User Acceptance Testing. It is a type of testing where clients or end-users test the software application. It is carried out to validate the quality of the developed system i.e. whether the system is developed according to the requirements communicated by the stakeholders.
It is also performed to validate that end users can perform their tasks on the new system, in the real-world scenarios.
It also helps developers, clients, and other related project parties to avoid any surprises on the production as the UAT process uses an environment like a production environment.
When is it performed?
UAT is conducted once the system testing is completed and before the product is ready to be deployed. To understand it better, let’s look at the levels of testing.
In the software development lifecycle, the following are the various testing or validation levels-
- Unit Testing – In this level of testing, individual units of the system are tested. It is performed by the developers at the code level.
- Integration Testing – In this level of testing, individual components of the system are tested together. It is performed by the internal testers.
- System Testing – In this level of testing, the whole system is tested against the requirements. It is performed by the internal testers.
- Acceptance Testing – This is the final level of testing before the product is released in the market. It is conducted by clients’ representatives i.e. business users and/or end-users of the system.
Key Roles in UAT
For a successful UAT, several people are involved throughout the process. The following are some important roles that are part of the UAT. It is important to note that based on the organization, project, and/or client these roles will vary.
- External People – People who are not part of the IT team responsible for the development
- Business User or Business Manager or Sponsor
- End Users
- Internal People – People who are part of the IT team responsible for the development
- Project Manager
- Business Analyst
- Tech Lead and Development Team
- Test Lead and Testing Team
UAT Testing Process
Generally, the UAT process consists of the following steps-
- In the first phase, the business analyst or the project manager identifies the UAT team. UAT team includes end-users who will be using the system eventually and/or SMEs who were responsible for technical requirements. The sponsor helps in the identification of the UAT team.
- Once the team has been identified, the next step is to train them. It is highly possible that the people included in the UAT team are not familiar with the testing process and the product.
Proper training will have to be provided to each tester of the UAT team so that the whole exercise of UAT will be successful.
- In the next step, a UAT plan will be created. UAT plan is a detailed document that covers the testing strategy of UAT, test scenarios, resources to be used in UAT, environment set up details for UAT, and other related information.
This document will have to be approved by the sponsor and other stakeholders. Usually, this document is created by the business analyst.
- Now, once the plan is ready next step is to prepare test cases. The test cases are designed in a way that full coverage of the system is ensured.
The test cases are designed with the help of the testing team, business analyst, and sponsor. Sometimes, the UAT team designs the test cases with the help of a sponsor.
- At the same time, the UAT environment will be prepared for the execution with the help of the development team.
- Once the test cases are available, end users are trained and UAT environment is ready, the test cases will be executed by the UAT team on the UAT environment. In this phase, the development team and internal testing team will assist if any issues arise during the execution.
- During the testing, all the issues or defects that are found by the UAT team will be communicated with the development team with the help of a business analyst and/or project manager.
- Identified issues or defects will be resolved by the development team as per their discussion with the UAT team, sponsor, project manager, and business analyst.
Sometimes due to lack of time, business users or clients may decide to eliminate those modules that have any showstopper bugs and proceed with the product with minimum required features.
- When all the issues are resolved and the UAT team and the sponsor/business users are satisfied with the system, a sign-off will be provided to move further with the production deployment.
Entry Criteria or a checklist for UAT
The following are some major points that need to be taken care of before proceeding with UAT:
- System testing and integration testing should have been completed. This is the responsibility of the internal testing team.
- All the showstopper bugs should have been identified and resolved.
- Requirements and test scenarios should have been documented, signed off by the business users, and communicated or shared with the IT designers. A business analyst is a responsible person for documenting the requirements.
- The UAT environment should be ready for testing. The latest code (in which there are no showstopper bugs are present) should have been deployed on the UAT environment.
- All the users who are going to participate in the UAT or going to conduct the UAT should have been trained to use the system i.e. they should be familiar with the system features.
- A proper plan should have been created for filing or documenting issues found during UAT.
- IT resources (from the development team and the testing team) should have been identified to handle any questions or issues arising during UAT.
Benefits of UAT
- UAT provides an assurance to the client that the system is ready to go to the market with the required features and the requirements that they had communicated with the team have been implemented.
- End users can get a feel of the system capabilities and functionalities before it goes live. For some users, it might be a feel-good factor as they are the once who can use the system before it is available for the rest of the users.
- If the client finds that any requirement is missed, it can be incorporated before the system goes live.
- Developers and business users can be aware of the operational issues that can arise in the future as the end-users will be testing the system as per real-world scenarios.
- UAT helps in identifying issues related to customer satisfaction which would have been problematic if they would have been found out once the system is live. It helps in reducing customer complaints and increasing customer satisfaction.
Challenges of UAT
- Setting up a separate environment for UAT can be time-consuming and costly as it needs to reflect production (real-world) environment.
- Sometimes the end-users are busy professionals therefore it might be difficult to get potential users ready for the testing as well as training.
- If any showstopper or critical bugs are found in the system, resolving those issues might take some time and postpone the release or the system may have to be released with known issues.
- Testers i.e. the end-users may have to spend extra time on training and learning new skills.
It is important to note that everything that is planned to be part of UAT testing, should be tested in other testing levels (unit, integration, or system). To gain maximum benefit from the UAT, proper planning is must which also includes identifying correct end-users who should have been trained thoroughly.
Kuldeep is the founder and lead author of ArtOfTesting. He is skilled in test automation, performance testing, big data, and CI-CD. He brings his decade of experience to his current role where he is dedicated to educating the QA professionals. You can find him on LinkedIn.