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. That is whether the system is developed according to the requirements communicated by the stakeholders.
UAT testing is also performed to validate that end users can perform their tasks on the new system, in real-world scenarios.
It also helps developers, clients, and other related project parties to avoid any surprises on the production. This is because 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 – This is the first level of testing. Here, individual units of the system are tested. It is performed by the developers at the code level.
- Integration Testing – This is the second level of testing. Here individual components of the system are integrated and 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. It is performed before the product is released in the market. It is conducted by client representatives. These are usually the 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. This might also include the 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 is 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 setup details for UAT, and other related information.
This document is 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. This is done 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 testing, the issues or defects are found by the UAT team are communicated with the development team. This activity is done 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. They simply proceed with the product with minimum required features.
- When all the issues are resolved and the UAT team is satisfied with the system, a sign-off will be provided to move further with the production deployment.
Entry Criteria or User Acceptance Testing Checklist
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. These should be 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 be 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. That is 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 (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. In addition, it assures that the requirements communicated with the team have been implemented.
- End users can get a feel of the system’s capabilities and functionalities before it goes live. For some users, it might be a feel-good factor. This is because they are the ones 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. That’s because the end-users will be testing the system as per real-world scenarios.
- UAT helps in identifying issues related to customer satisfaction. These issues would otherwise have been problematic if they would have been found out once the system is live. It helps in reducing customer complaints. This, in turn, increases customer satisfaction.
Challenges of UAT
- Setting up a separate environment for UAT can be time-consuming and costly. This is because it needs to reflect the 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. In this case, either the release is postponed 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.
To gain maximum benefit from the UAT testing, proper planning is a must. This 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 connect with him on LinkedIn.