User Acceptance Testing (UAT) gives users the opportunity to see the system in action and is also a verification process that is used to see if the software works as expected.
Figure 1 – Why UAT?
There are many definitions of UAT, a very common one is:
“Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not 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.” (ISTQB Glossary V3.1)
UAT's main objective is to verify if the system meets user demand and if it is ready for the market or for the production environment.
Table Of Contents
- Best Practices in User Acceptance Testing
- Challenges in User Acceptance Testing Process
Best Practices in User Acceptance Testing
Here are 5 best practices to make the UAT process efficient:
Identify the Target Audience
It is crucial to identify the target audience and know them in depth, and understand what their problems and needs are. This way, there won't be a waste of time on something that won't work. In connection with users, it is important to select actual and potential users for UAT. The development team should not participate in the user test. The feedback that is obtained from users is very enriching since it allows them to see the errors and create future improvements.
Bonus tip: since the feedback obtained from the UAT is essential, the information must be clear and specific to generate optimum results. The best way to organize the data, during the process, is using a user acceptance testing checklist.
Developing a Test Plan is Key
The Test Plan (sometimes also referred to as a QA Test Plan) can be seen as the instruction manual or guide for your testing effort. It describes the objectives of testing (what are you planning to verify and/or validate), the scope of testing (what will and will not be tested), together with the general and sometimes detailed schedule of the activities you want to perform (how and when are you testing).
It is advisable not to leave the User Acceptance Testing for the moment in which the software is about to be launched on the market.
“I often say that user acceptance testing is one of the most valuable levels of testing, but often performed at the worst possible time. That is because if process gaps or other major flaws are discovered in UAT testing, there is little time to fix them before release. Also, the options available to fix late-stage defects may be very limited at the end of a project”. (Randall W. Rice)
Prepare everything that is necessary to minimize the obstacles that the user may have when testing. Whenever users have any problems or questions, they should be listened to and helped as quickly as possible. It is also recommended to have technology partners present so that problems and updates are resolved as they arise.
Bonus tip: generate proper credentials for users and pretest the test cases to verify that they work well and that they make sense. If the tests are done remotely, the date and time must be scheduled for their execution and there must be adequate logistics so that everything flows according to plan.
Create Detailed Test Cases
A test case specifies the work procedure, expected results and the conditions that a tester needs to verify. It is the basic documentation needed to determine if an application, or one of its features is working as originally planned and desired.
A step-by-step plan is needed. This will serve as a guide for people during testing. This way, they will be concentrated in the right places. If the tests are done in person, it is recommended to print the guide to make the process easier for them. It is important to create test cases that are well detailed and that provide clarity to the process. Specify as much as possible, for example which button to click or what results to expect, among others.
Bonus tip: it is necessary to include negative test cases to know what happens in case the user does something unexpected, and in this way not only the best-case scenario will be reviewed.
Create Bug Communication Standards
It is important to know how to act when an error appears. When a bug is reported, as much information as possible should be recorded, so that later it is easier to recreate the problem and solve it.
Bonus tip: use screenshots or screencasts to send bug data, they answer a lot of questions for a developer.
Have a Clear and Well-Defined Acceptance Criteria
After the product is developed it is necessary to have well-defined and clear acceptance criteria, since they are the ones which decide if the product is approved or not.
Bonus tip: how to create an effective acceptance criteria? Keep these tips in mind:
- Acceptance criteria should be testable.
- The acceptance criteria has to be understandable to everyone.
- Criteria should be clear and simple.
- Acceptance criteria should provide user perspective.
Challenges in User Acceptance Testing Process
Figure 4 – Challenges in User Acceptance Testing Process
New requirements from stakeholders
During the development of a product, companies can request changes whenever they want. They can even be changes requested at the last minute, which can hinder and delay the entire process. In these types of situations it is necessary to make quick and timely decisions.
Untrained or improper UAT testers
It often happens that the people chosen to perform UAT are not aware of existing business needs. They can also face a lot of technical problems during the test run. That is why it is recommended to verify that all team members are well informed and that there are trained staff available to assist them in case questions arise during the process.
As mentioned above, the UAT is performed at the last minute, when there is little time for the product to go on the market. It is a critical and vulnerable period, so there must be planning, well-defined test cases and a suitable test environment.
When communicating an error, there should be no ambiguity, everything that is communicated must be clear and simple, avoiding anything that interferes with the understanding of the situation. Clear communication should flow through the entire team.
In summary, UAT reduces the possibility of possible errors and increases the level of user satisfaction, which makes it an essential process to implement during the development of any product before it is launched on to the market. In addition to this, UAT helps save money, time, and frustration by ensuring end users will be satisfied with the final product.
More importantly, it is always more expensive to fix post-launch errors than previously detected. By conducting User Acceptance Testing, it can be ensured that the product is truly ready-to-market and there will be no sad surprises after launch.