The Basics of User Acceptance Testing

Руслан Дзутцев
Effective Developers
7 min readFeb 15, 2021

Introduction

When working through an article, the author should focus on a specific target audience: who would it be useful to? And this article is no exception because it was conceived to help those who have never conducted User Acceptance Testing.

First, the article will help customers who order software development from IT companies. Secondly, the article addresses QA specialists who have never had to deal with such testing before. Keeping in mind the complexity of the subject, we have presented everything in simple and understandable language, and the article can be recommended to everyone who finds it interesting.

Becoming more complex, the information systems and applications being developed require a very high level of quality. The main responsibility always lies with the customer: the team may not have QA specialists at all, but quality control does not become less important, because the client is going to present a digital product to their respected audience. What does quality assurance look like on the other side of development, on the client-side, and what happens at the end of the product development cycle?

One should start with the definition. UAT (User Acceptance Testing, or acceptance testing) is a type of testing performed by a business user or customer to verify and accept software before starting production use. In other words, UAT is the testing of a digital product by the customer himself.

This type of testing has its own goals. On the one hand, the customer wants to make sure that the site or mobile application performs the functions that were intended: the expected result corresponds to the actual one; the product is free of defects that may interfere with the user or business (including compliance issues); the user is comfortable working with the product; the product is good enough to be promoted. On the other hand, when conducting UAT, the customer checks the contractor to make sure that the terms of the concluded contract are fully fulfilled.

UAT often faces certain difficulties. The main one is that acceptance testing is not conducted by a professional tester (except for the cases described below). In practice, for the client, this means the following:

  • people conducting the testing does not spend a lot of time checking, because this is not their main responsibility;
  • they don’t know the people from the development team, and therefore it is difficult to interact with them;
  • they don’t understand how to establish the testing process properly.

Solving these problems is the responsibility of the development team because they want to make the digital product as high as possible. A huge role in this is played by the QA specialist. Being a team representative responsible for the quality of the product, he or she is to take UAT not as distrust from the customer, but as an additional line of defense against various defects that the customer was left with by coincidence.

To achieve the UAT objectives (it is worth reminding that it is a product testing for compliance with the requirements on the client-side), the development team QA specialist needs to ensure maximum transparency of this type of testing. Let’s take a closer look at some of the preparatory steps.

Defining the criteria for the beginning and the end of UAT

In order to save time for the people who are involved in the acceptance of the final digital product, one should set the boundaries of this process in advance. Usually, the UAT starts when the testing is over, and the scenario of the regression and acceptance testing is agreed, as well as the report on audits.

Acceptance testing ends when all the tests are completed, and the customer, represented by the employee conducting the UAT, has no complaints left, or the complaints are insignificant for the product output. It is necessary to define clear dates for the beginning and the end of the acceptance testing since the tester often needs to free up their working time for this type of work.

Providing the tester with everything they need

To test the final product, the tester must interact with it in the field conditions. To provide this, the development team prepares a special UAT environment in advance.

The existing product database (or an area of it) is copied to the UAT environment, and the settings of the real server are recreated. The QA Specialist is responsible for bringing the testing conditions as close as possible to what will happen after the product launch. One should also conduct a small regression test on the UAT environment and do not forget to return it to its original state after that.

Preparing the acceptance tests

Acceptance tests are to be written and agreed with the customer in advance. At the request of the customer, the list of tests can be either reduced or expanded. Acceptance tests should cover as much as possible of the critical functions of a digital product and be extremely clear to a person who is not a professional tester.

Defining the participants and areas of responsibility for each of them

One should determine who will be involved in the UAT. Often the list consists of the following minimum number of people:

  • the tester is the one who will conduct the acceptance testing: this is either the customer or their representative;
  • QA-specialist who helps to ensure the maximum quality of the final digital product;
  • the project manager who supervises all stages of development;
  • a responsible developer who promptly fixes the detected defects or redistributes them among the other members of the development team, and who monitors the relevance of the UAT environment.

Preparing the UAT plan

The team’s QA specialist creates a summary document that contains as much information as possible that is useful for the interaction of UAT participants. The document should reflect the following:

  • the criteria for the start and the end of the test and the date of its implementation;
  • the environments used for testing;
  • the format used for the defects detected to be described (with examples of wording that will help the tester);
  • the roles of the development team members and their contacts for early interaction;
  • the planned tests, and the types of testing that will be used.

The summary document also reflects the schedule of acceptance testing, including the time of updating the UAT environment, its availability for various types of inspections, etc.

The preparation points listed above will help to carry out the most detailed and fast quality control on the part of the client. And this process can also be accelerated in its turn.

The above is relevant for conducting UAT by an ordinary employee of the customer. Still, if he or she is not an IT specialist, there is a risk of missing something important during testing. Therefore, customers often reach out to the help of professional QA specialists who work on the client-side. This approach has a number of significant advantages.

The work of a QA specialist on the client-side

It is hard to argue with the fact that a QA specialist will treat product testing differently than an employee who does not have knowledge in this area. Having extensive experience in ensuring the quality of various projects, knowing the internal structure of a digital product, the QA specialist aims to find the most common errors using special tools. For example, an ordinary user will not open the developer console in a browser or in a mobile application, and most likely will not notice such defects that do not appear in the product interface, but are related to data exchange. Having the ability to see the product from two sides at once — through the eyes of both the user and the IT specialist, the QA specialist is much better at identifying flaws.

The experience of the QA specialist in the development team helps to meet the deadlines for conducting acceptance testing. For example, knowing the roles of the development team members, a QA specialist on the client’s side can build the most effective communication, addressing questions not to everyone at once, but to a subject matter expert: an analyst, a designer, a frontend or backend developer.

The professional tester also has extensive experience in compiling documentation, which speeds up interaction with the development team. They know how to read and execute the test plan, how to generate a clear report, how to describe the defect in detail, and how to create a defect card in the project management system. All this adds transparency to the client, as well as saves money and time.

The QA specialist applies the appropriate types of testing to check the functionality as efficiently as possible. A conscientious development team is always happy to work in such a tandem, because it will help to eliminate the latest complaints and release the highest quality digital product, eliminating reputational risks for both themselves and the client. If the developers have presented a frankly half-done product for UAT, the work of a QA specialist may become a starting point for the work of lawyers and the termination of the contract.

Conclusion

UAT is an important stage in the development of a digital product. If the client’s regular employees strictly follow the rules for preparing and conducting acceptance testing, the quality of the final product can be significantly improved.

If a professional QA specialist is additionally involved on the client’s side, this increases the effectiveness of verification and saves testing time, as well as helps to identify unscrupulous performers in a qualified manner.

If you or someone you know needs to develop a high-quality mobile application, web service or to help in solving business needs, feel free to contact Effective, we are ready to collaborate with you in any way: both on the whole project and outstaff. You can contact us via e-mail contact@effective.band

--

--