Redsauce's Software QA Blog

UAT and Agile testing. Discover it

Posted by Pablo Gómez

{1570}

What is the meaning of UAT?

UAT, means by its acronym: User Acceptance Testing (User Acceptance Testing) and is crucial in software validation. It is one of the last stages where the customer verifies that the product meets his expectations. In this context, UAT is performed in a real-world environment to ensure that the software meets the needs and requirements of the end-user. It is essential to identify problems from the user's perspective before final deployment.


Translated with www.DeepL.com/Translator (free version)


When we talk about software quality, one of the last validation phases of our product is the User Acceptance Test (UAT). It is, therefore, one of the last opportunities for the customer to ensure that the product conforms to expectations.


This type of testing can be confused with others such as functional testing , end-user testing, alpha-testing, beta-testing, black-box testing, operational acceptance testing, contract acceptance testing or regulation acceptance testing. But then...

What is UAT?

Fortunately in this case the meaning of the acronym is quite self-explanatory: tests that are performed on the product in an environment identical to the real one and by its target audience. It is performed to check whether a software product or system meets the requirements and expectations of the end user. In other words, it is a test that is performed to ensure that the product is acceptable and useful to the people who will use it on a day-to-day basis.

Why do we do UAT? Isn't it the same as functional testing?

UAT is performed after unit testing, integration testing and system testing, which means that the product has already been thoroughly tested by the developers. This also includes functional testing, which validates the requirements and specifications of the software without taking the user into account. However, UAT focuses precisely on the end-user experience and can uncover problems that were not detected in previous tests. These end users can be customers, employees, partners or anyone who will interact with the product or system in question.

Types of UATs

There are several types of tests that could "fit" the definition of UAT. Among them we could mention:

Alpha and beta testing

In these cases the UAT is performed by groups of end users who, in these cases, will act as testers. In the case of Alpha testing, the end users are generally internal company employees using a specific and dedicated testing environment. This Alpha phase, which takes place before the Beta phase, helps to detect bugs and usability issues. This is the most common type of UAT, where it is usually a figure from the Product team who performs the test.


On the other hand, Beta testing (also called field testing) is carried out by a group of "controlled" end users who use the application also in a certain environment different from the final one but closer than in the case of Alpha testing. They must also be able to provide feedback to the development team, which translates into further product improvements.

Operational Acceptance Testing

These tests are carried out to validate that there are processes that help the software to be compatible with other versions, that it is stable under certain circumstances, that there are backup plans, security plans, user training, etc.

Regulation Acceptance Testing (Regulation Acceptance Testing or Compliance Acceptance Testing)

They validate that the developed software complies with the applicable laws and regulations, which can be local, national, governmental, etc.

Contract Acceptance Testing (Contract Acceptance Testing)

In this case it is tested that the software meets the criteria and specifications that the project team has defined in the contract.

How to perform a UAT

I would say that throughout my working life, we have known as many ways to carry out a UAT as companies we have visited. More technical, less technical, with different stakeholders involved, at one point in the development cycle or another, in different environments... (just the topic of environment management would give for another blog post). However, in a usual way, all UATs share (or should share) these steps:

  1. Schedule the test dayGenerally the agile development cycle itself has a day defined to perform that UAT but in any case, I recommend to have it scheduled.

  2. Identify the functionalities involvedThe objective is that the tests cover as much as possible all the use cases that the end user may perform. Having a clear idea of which functionalities have been included or have been affected in the release helps to know what kind of tests to do and also to not leave anything out.

  3. Select the team that will carry out the testGenerally it is one or more people from the product team who carry out the UAT. This is the team who knows what is needed, who agreed on the acceptance criteria and ultimately the "representative" of our end user. Sometimes this UAT can be carried out by another team in the company or even a selected set of end-users who will act as beta-testers.

  4. Relate bugs in a defect managerIt is very convenient to be able to have listed all the bugs that have been found in the UAT in order to make a classification, to have the details of the defect, to know in which release it has appeared, how to reproduce it, etc.

  5. Evaluate the incidents and make a triageOnce we have the bugs found, it is necessary to classify them in order to decide if the version can be deployed in production with those bugs and correct them later or if, on the contrary, it is necessary to correct them.

  6. Final decisionFinally, based on the previous points, it is necessary to decide if the software is ready to be deployed in production and choose a date to do it or wait for the next sprint to enjoy the new functionality.

And you, how do you manage UAT in your team?


If you need help with the quality of your software or your testing, remember that you can contact us whenever you want, by clicking on this link. We will be glad to help you.


Thank you very much, health and happy UATs :)


image

About us

You have reached the blog of Redsauce, a team of experts in QA and software development. Here we will talk about agile testing, automation, programming, cybersecurity… Welcome!