Software Testing Knowledge Base
QA Madness Knowledge Base Testing types

What Is User Acceptance Testing and How to Run It?

Acceptance testing (also known as user acceptance testing services or UAT testing) is a common type of testing that is probably applied in every project. Its main purpose is to quickly go through the functionality and understand whether it meets the requirements and expectations of the customer. To accurately conduct this type of testing, it is significant to correctly create the Acceptance Criteria that become the basis for the testing process. Such traits as perseverance, the ability to formulate a problem thesis, ask the right questions, and, of course, an understanding of the product as a whole are very helpful here.

Why and When Do You Need Acceptance Testing?

Let’s start with theoretics and take a closer look at acceptance testing. So, acceptance allows you to determine the quality of a product and make sure it is ready for use.

Some sources tell us that acceptance testing is not a TYPE of testing, but the final, fourth LEVEL of testing. We cannot agree with this, and here’s the reason. Checking whether the product meets the requirements and wishes of the customer is an ongoing process – it occurs at each of the testing levels, so it is not worth it to be distinguished as a separate testing level.

Thus, we can conclude that acceptance testing is exactly a type of testing. Most often, it is a part of manual QA testing services, but some projects require automated acceptance testing.

As mentioned before, Acceptance testing is performed by a QA engineer (or an engineer together with a customer) based on the Acceptance Criteria. So, Acceptance Criteria are conditions you refer to in order to make sure that a product is ready for use by users. They are most often written by QA specialists, but in many projects, this responsibility lies with business analysts.

Now, let’s consider why acceptance testing is needed. The most obvious reason is the fact that the product is designed for the target audience, and acceptance testing is what allows a QA company/specialist to see, for example, the shortcomings from the point of view of the user interface and correct them before the product is released.

So when do we run acceptance testing? There are two options for timing:

  • At the end of the sprint.
  • At the end of development.

Types of Acceptance Testing

Next, let’s take a look at the five types of acceptance testing:

  1. Alpha testing is an inspection of a product by the development team, that is, by a QA specialist and without leaving the company.
  2. Beta testing implies giving a product to a group of people who are part of the target audience. The target audience tests it and provides a report. At this stage, we can identify new bugs. Probably 75% of overall beta tests are accounted for game testing.
  3. Contractual acceptance testing involves a third-party development team – freelancers or an outsourced team that participated in the development. This type of testing is used to verify that the remote team understood all the requirements correctly.
  4. Regulation acceptance testing allows you to make sure that the product meets the laws and standards in the field. It is used most frequently in the finance and healthcare sectors.
  5. Operational acceptance testing provides an assessment of such processes as onboarding and protective mechanisms.

Acceptance Testing Process: Agile vs Waterfall

You are most likely familiar with SDLC and development models such as Agile and Waterfall. But to brush up on it a bit, let’s have a few words about these software development models.

A traditional development model is the Waterfall model. Its main feature is the sequential, step-by-step implementation of each stage within the SDLC. Each next stage begins strictly after the previous one ends. This model is relevant for projects where the requirements do not change but remain the same from the very beginning of the development process. This model is common for such industries as medicine and technology.

Agile methodology, as the very name suggests, implies changing requirements that don’t interfere with the development process as a whole. This approach allows you to prioritize the tasks and effectively develop a product. Almost all companies use the Agile Methodology for project development as it is convenient and enables frequent product releases after minor changes and improvements. Thus, a customer has an opportunity to make money right now, not after all the stages of development.

After a quick walk through the fundamental differences between development models, let’s take a look at the differences in approaches to acceptance testing based on their particularities.

It is typical for the Waterfall software development model to conduct acceptance testing at the end of the testing phase, whereas according to the Agile methodology, the UAT process happens at the end of each sprint or the end of major sprints.

The testing flow and mechanics, basic requirements and concepts, however, remain unchanged for both methodologies. Only the timing and frequency of acceptance testing changes.

To Sum Up

Acceptance testing is a necessary step for the development process. Acceptance testing is a bottom line we draw in software testing before successfully completing the development stage, current QA & testing process, and approval by a client.