Skip to content
Related Articles
Get the best out of our app
GeeksforGeeks App
Open App

Related Articles

Software Testing – UAT (User Acceptance Testing)

Improve Article
Save Article
Like Article
Improve Article
Save Article
Like Article

User Acceptance Testing is a testing methodology where clients/end users participate in product testing to validate the product against their requirements. It is done at the client’s site on the developer’s site. For industries such as medicine or aerospace, contractual and regulatory compliance testing and operational acceptance tests are also performed as part of user acceptance tests. UAT is context-dependent and UAT plans are prepared based on requirements and are not required to perform all kinds of user acceptance tests and are even coordinated and contributed by the testing team.

Acceptance criteria are defined based on the following attributes:

  • Functional correctness and completeness.
  • Data integrity.
  • Data conversion.
  • Applicability.
  • Performance.
  • Timeliness.
  • Confidentiality and availability.
  • Installability and upgradeability.
  • Scalability.
  • Documentation.

Purpose of UAT

The purpose of User Acceptance Testing (UAT) is to identify bugs in software, systems, and networks that may cause problems for users. UAT ensures that software can handle real-world tasks and perform to development specifications. Users are given the opportunity to interact with the software prior to its official release to see if any features were overlooked or if any bugs exist.

The UAT methodology follows three basic guidelines: When testing messages using multiple people instead of separate devices test one sender at an independent location without having been online with each other since late last year when sending information over short distances but still communicating back home by telephone, and When transmitting through email addresses rather than social media accounts where you are talking publicly about your service before delivering it via messenger services like Signal. 

The testing performed at the end of the development cycle is validated by user acceptance testing. Other testing phases may be completed and the software may be fully functional, but it may still fall short of the requirements for end users. 

  • Protection again Faults: UAT protects against the release of faulty, ineffective, or unfinished software products. 
  • Bug Less SW: UAT should be thorough and reflect user requirements to ensure that the software is not released with bugs. These issues can be costly and potentially damaging to the reputation of the software vendor.
  • Proper Testing -In order for testing to work, each client must be tested against all available network connections with an equal probability and subject them at the end if they accept it – regardless of how many messages are sent without receiving one response back from our server. 
  • Issues – In the past, we’ve found issues with people using mobile applications who are not being contacted when they need them. 
  • Incorrect User Names – There were also a number of instances where usernames have been added incorrectly to email messages on websites including Twitter or Facebook which caused false positives. It was taken out by an attacker while attempting some sort Of password reset procedure because one user accidentally entered their details whilst editing emails without intending to do so but rather as part of the end after doing certain tasks within another program such As logging into someone’s server via FTP. 
  • Test Check – This practice can lead users away unnecessarily when new features become needed because testers do little more than check the system’s state while doing nothing else but trying any particular part of the interface.

Need for User Acceptance Testing

  • Usability: There is a need for User Acceptance Testing in Software Testing for any product because as the software test process relies on users to get used. 
  • Feedback Mechanism: The best way to reach users and ensure their confidence is to introduce feedback via usability testing using tools.
  • Non-Feasible Cause: There are some reasons why this may not be feasible: A lack – there are many ways one can go about providing user acceptance tests within applications that have complex features – ex “Safari” has been tested extensively by testers since its debut 2 decades ago with little change. The use case will become simple very quickly with proper testing methods. 
  • Documentation and Communication: Software testers are looking for good documentation about how code works so that they can verify whether what they are doing actually does exactly as promised; this ensures an honest test if required or just improves their ability at communicating on behalf but not through tests themselves. It also opens them up to trying something novel (like some new features) until there are problems presented by lack of functionality instead. 

Types of User Acceptance Testing

Below are the 5 types of user acceptance testing:

1. Alpha UAT:

  • Alpha UAT means that your user is tested before they get a hold of the product, so if you’re testing users’ usage patterns we recommend running an alpha test to ensure it can pass all acceptance tests prior to when beta gets deployed into production. 
  • It enables more rapid validation in early adopters/testers which allows fast adjustments as the software progresses through development with each release cycle toward feature maturity.
  • It ensures that there is no opportunity for bugs or exploits once security updates become available based upon adoption levels achieved by products launched later during their life cycle such should be done at least six months after launch.

2. Beta UAT:

  • Beta UAT means that users who have successfully completed one or more rounds of tests will be shown a popup stating if they are accepted for testing by the new version of Angular2 (a beta release). 
  • The application is tested in a natural environment.
  • It reduces risks, and failures, and improves the quality of the product through customer feedback.

3. Operational Acceptance Testing (OAT):

  • Operational Acceptance Testing (OAT) is a software testing technique that evaluates a software application’s operational readiness prior to release or production. 
  • The goal of operational acceptance testing is to ensure system and component compliance as well as the smooth operation of the system in its Standard Operating Environment (SOE). 
  • OAT Testing (Operational Acceptance Testing) is also known as Operational Readiness Testing (ORT) or Operational Testing. 
  • These test cases guarantee there are work processes set up to permit the product or framework to be utilized. 
  • This ought to incorporate work processes for reinforcement plans, client preparation, and different support cycles and security checks.

4. Contract Acceptance Testing:

  • Contract Acceptance Testing refers to the process of testing developed software against predefined and agreed-upon criteria and specifications. 
  • When the project team agrees on the contract, they define the relevant criteria and specifications for acceptance.

5. Regulation AT:

  • Regulation AT is generally called Compliance AT.
  • This sort of affirmation testing is done to guarantee the thing dismisses no rules and rules that are set by the regulating associations of the particular country where the thing is being conveyed. 
  • Generally, things that are available from one side of the planet to the other should go through this testing type considering the way that different countries have different standards and rules set by discrete directing associations.

UAT vs System Testing



System Test

Testing Method

It is based on User Convenience and Feedback. Testing is done on the basis of meeting customer requirements.It is based on the System/Feature Milestone – Testing done on the basis of meeting system/specs requirements.


UAT is done by Clients, Stakeholders, and Testers.System testing is done by the Developer and Testers.


Alpha UAT, Beta UAT, Operational acceptance testing, Contract AT, Regulation AT. System and Integration Tests.

Test Cases

Test cases here include positive scenarios.True and False (+/-) Test cases.

Testing Methodology

The testing methodology of UAT is based on Functional Tests.Functional / Performance/ Other Tests.

Order of Execution

UAT is done after System Test.The system Test is done first.

Acceptance Testing vs V-Model

Below is the difference between acceptance testing and V-Model:




Testing Type

It is based on customer feedback.It is based on Verification and Validation Model.


UAT is carried out after every iteration post-system test.In V-Model, testing happens at the end only.

Test Scenarios

Tests Based on Customer Requirements and happen Feature by Feature / Module by Module.Happens whole as a software.


UAT is carried out after the system test.For every development phase, there is a V-Model Test phase.

Customer Interaction

In UAT, interaction with customers is done on regular basis.V-Model doesn’t need customer interaction regularly.

Acceptance Test Plan – Attributes

Acceptance tests are performed in phases. Basic tests are performed first, and if the test results are satisfactory, then more complex scenarios are performed. An acceptance test plan has the following attributes:

  • Introduction.
  • Acceptance test category.
  • Environment operation.
  • Test case ID.
  • The name of the test.
  • The objective of the test.
  • Test procedure.
  • Exam schedule.
  • Resources.

Conclusions Drawn:

  • Accept the system as delivered.
  • After making the required adjustments, accept the system.
  • Don’t accept the system.

Acceptance Test Report – Attributes:

An acceptance test report has the following attributes:

  • Message identifier.
  • Summary of results.
  • Variation.
  • Recommendation.
  • Task list summary.
  • Approval decision.

How to Execute UAT Tests?

The way to carry out effective User Acceptance Testing involves getting people into your product’s user acquisition funnel. What are some example questions you could ask users? What information would be useful, what is relevant and why do you want it found by other potential customers? You can’t test all possible data points at once so a lot may need refinement before launching but in theory, testing should give you an idea that there might just not even exist enough value being tested or the wrong question was asked.

The way to carry out effective User Acceptance Testing has some prerequisites. They include: 

  • A comprehensive knowledge base, in which everything is tested and proven before release; it needs accurate information about user behavior from the beginning until end; on every front page, you need appropriate visual aids for testing purposes, just as people at any software company are expected by other companies too do use web tools or online services like forums, etc. 
  • One should develop such a database-like system with different levels of detail that will be useful only if your business grows quickly over time; after development, there exists lots more possibilities open up when looking at each level’s value since all users accept not always what they think but usually something better than others does.

Below are the steps to execute UAT Tests:

1. Requirements Analysis: This step involves analyses of business requirements. The following documents will be considered and studied thoroughly to identify and develop test scenarios:

  • Business Use Cases.
  • Business Requirements Document (BRD).
  • System Requirements Specification (SRS).
  • Process Flow Diagrams. 

2. UAT Test Plan Creation: In this step, a test place is created that will help to outline the test strategy that will be used to verify and ensure that the software meets the expected business requirements. The test plan includes entry criteria, exit criteria, test scenarios, and a test case approach.

3. Identify Test Scenarios: This step involves identifying the test scenarios will respect to the business requirements and creating test cases listing the clear test steps. The test cases should cover the UAT test scenarios. 

4. Create UAT Test Cases: Create UAT test cases in this step that cover most of the test scenarios. Business use cases are the input here to create test cases. 

5. Prepare Test Data: It is considered a best practice to use live data for UAT testing, UAT testers should be familiar with database flow.

6. Test Run: This step involves executing the test cases and reporting the bugs if there are any. Re-test the software once the bugs are fixed. In this step, test management tools can be used for test case execution. 

7. Confirm Business Objectives: In this step, the UAT testers need to sign off the mail after the UAT testing to ensure that the product is good to go for production. Deliverables here are Test Plan, UAT Test Scenarios, Test Cases, Results Log, and Defect Log.

UAT Process


Evaluation Criteria for UAT

The evaluation of the performance of computer software or a microchip design is termed as user acceptance testing (UAT). This testing determines whether the software or microchip design functions as expected or not. This is done by running it on a computer system or prototype and then monitoring the results. Basically, this testing is meant to evaluate whether the user can use the software or microchip design correctly or not. The evaluation criteria for UAT include the following elements:

  • Interoperability: It ensures that all the modules and components of the system function together and are in sync with each other. This also ensures that all the related systems function together and are in sync with each other. For example, an ATM performs UAT by switching on various components to check their status. Here, it refers to the test criteria for UAT.
  • Prerequisites: It determines whether any particular requirement has been met before starting the test execution or not. For example, if you want to launch an airplane, you must make sure that there is enough fuel in the tank before starting the test flight- here, it refers to the test criteria for UAT.
  • Safety: It ensures that no danger occurs while using the software or microchip design during the test execution. For example, while launching an airplane, pilots must ensure that there are no trees or buildings nearby before taking off- here, it refers to the test criteria for UAT.

User acceptance testing aims at evaluating the performance of computer software or a microchip design so that any deficiency can be detected early during product development so that appropriate changes can be made. Therefore, it is very essential to plan and conduct effective User Acceptance Testing (UAT) of software before releasing it to end users.

Exit Criteria for UAT

There are some Exit Criteria required to be met for User Acceptance Testing. They include:

  • Confidence: A high level of confidence that the proposed user has enough knowledge, experience, and skill set to perform at least one task effectively.
  • Proper Execution: Where tests show users can contribute fully to existing tasks successfully using their own expertise. All three terms represent different levels with each being less than 50% when compared to full-time professionals in this area. When you use these two criteria as input your goal is to gain support from others who have achieved similar results through other research methods instead of focusing on just learning how important it really was once they got there. 
  • Lesser Defects: After analyzing the test results, project managers should be able to draw some conclusions based on what they’ve found. For example, if there are more errors during testing than expected, this can be taken as a positive sign. It shows that the program is easy to learn and use which is a necessary condition for successful implementation. In addition, this means that their project objectives are understandable and easily implemented by end users. In other words, their business process works satisfactorily. If there are fewer errors than expected, this can also be taken as a positive sign. It indicates that implementing certain security measures early in the development lifecycle will go a long way in reducing unexpected errors during testing.
  • No Critical Defects: After drawing these conclusions, project managers should ensure that all critical defects found during testing are resolved within one month after launch. This allows them time to notify users about any lingering issues and rectify any critical bugs before releasing the final copy to end users. Doing so will increase the likelihood of satisfied users and increase early adopter interest in your product.
  • Proper UAT: A well-coordinated UAT helps software developers identify problems early on in their projects- thereby reducing overall development costs and timeline delays. Hence, performing UAT effectively requires a lot of planning and commitment from every developer involved in a project. The developer performing the test should analyze each scenario carefully before moving on to the next test step. Doing so will help them produce a quality product that satisfies customer needs and meets project objectives at the earliest possible time.

Qualities of UAT Testers

The UAT Testers should possess the following qualities:

  • Problem Solving and analytical skills: The Tester Should be analytically strong and should possess strong Problem-solving skills to carry out UAT effectively.
  • Software Life Cycle Awareness: The Tester Should be aware of the SDLC (Software Development Life Cycle)  to carry out UAT effectively.  The tester should also consider whether a new release is needed or would result in any issues with existing software released prior to and/or following this test.
  • Create Test profile, use cases and execute: The Tester should be able to create new test cases, execute existing test cases and be able to propose new test cases, and execute via manual / automation.
  • Out-of-box testing: The tester should try to implement corner case scenarios more effectively. He should try to think out of the box and plan his code accordingly for every possible situation he may encounter throughout the development cycle. If an app provides both native/web & mobile applications, test it with some basic tools such as a browser (Firefox, Chrome), or web app installer like Cordova). Remember that all tests are written using “Unit Tests”. Unit Testing doesn’t include functional integration checks.
  • Knowledge of Testing methodologies: The Tester should possess a strong knowledge of the various Testing methodologies available at his disposal. It includes unit, procedure, and component testing (also referred to as integration/integration tests), configuration management, etc. In addition, it is necessary for a skilled test taker with sufficient experience in dealing specifically or otherwise directly With human testers not only have either had extensive exposure to this subject themselves but also any experiences pertaining to how to many people actually believe what you are saying.
  • Technical skills and scripting knowledge: The Tester should have strong technical skills about the product that he is working on. So that, he can understand the customer requirements and feedback and can contribute more to the product.

Challenges of UAT

Challenges of carrying out User Acceptance Testing include:

  • Misreporting Activities: The use and misuse/misreporting activities by potential users can be extremely challenging to control. For example, this issue may arise when a company is not equipped with appropriate information systems. The inability or difficulty in identifying risks from online behavior that might lead to future decisions regarding safety based on user experience will make it hard if we want these problems to persist even after repeated measures have been taken. ‘User’ itself has become an increasingly important concept within today’s world where people are constantly becoming aware via electronic media about new phenomena as well as existing ones which they could never foresee during their initial childhood experiences. 
  • Proper Example to demonstrate: Provide an example project to test the validity and reliability, or at least performance, aspects – such as time complexity, resource usage per user, etc. 
  • Proper Evaluation: Evaluating how this information is handled by users after a successful acceptance Test needs to be done using common programming tools that provide adequate input data including HTML formatted examples with optional inputs for feedback before/after each iteration.
  • Usability: The tester’s job is critical in UAT since they must demonstrate the usability of your product by simulating real-life scenarios. They must also gather information on how your users interact with your product. This process can be difficult for nontechnical people since they lack the necessary understanding to evaluate your product properly. Fortunately, there are many resources available to make this experience as easy and comfortable as possible. You can invite tech support members or volunteers from your company or community to test the program as they can then act as guides to help less tech-savvy people evaluate your creation.
  • Proper Balance: In addition to inviting users, IT professionals must balance user input and expectations with costs and constraints. For example, some companies limit the number of users per computer during their beta tests. This limits both costs and data collection. Other companies use VPNs so that only certain customers access the program at once. This limit costs without limiting data collection. 
  • Limitations of Actions Performed by user: There are also limitations on what actions each user can perform within the program— for example, some programs have an expiration date so that companies do not waste valuable data on unappealing customers.

Tools for UAT

A few tools used for UAT are listed below:

1. Report visual bugs straightforwardly into your devices, without leaving your site or web application

  • It lets users post messages, comments, and events to a “hub” hosted on Google Analytics, with an optional delay between updates which ensures only one message gets sent per second. 
  • This delays your own data loss by eliminating any accidental user interactions that might interrupt their Web App flow. 

2. FullStory: Enables clients to track and screen every client action. From snaps to page advances, everything is listed consequently.

  •  It allows you to visualize user acceptance and rejection through some graphs, similar in functionality to GraphPad but with a lot more flexibility.
  • The data can be viewed either via interactive dashboards like Scrum or by drawing on individual parts of it that are then visualized along with actual user feedback using your favorite software It makes this kind of structured test much easier than one would typically think, perhaps even less frustrating.

3. Hotjar: Uncovers the internet-based conduct and voice of your clients. Hotjar provides you with the ‘10,000-foot view’ of how to further develop your site’s client experience and execution/transformation rates.

  •  This application runs a service that keeps track of an online database of people who had ever viewed your website. 
  • The following page summarizes what hotjars offer and provides tips on creating websites using them. 
  • Also, It allows users to run tests from a command line and it does a great job at testing various features that may be added later on.

4. CrazyEgg: A web-based device that screens individual pages from your site, providing you with a breakdown of where various guests have clicked and on what part of the screen.

  • The user will need to build a class with all needed methods and return values along its arguments so that this can be easily tested by other developers or clients/users using different APIs like Selenium Server test suites. 
  • It comes in two flavors – one which builds on top of Mocha Test Suite i.e. WebDriver, and the other has just built upon MuleTest’s framework but adds some custom features such as implementation through Sockets, etc.

5. Qualaroo: Allows users to easily test their Web Apps.

  • Qualaroo is a Python library that allows users to easily test their Web Apps. 
  • Common data structures can be created in python which allows us directly run our tests against different server configurations using QA tools like RSpec and TDDRunner. 

6. Sentry:  A web interface that allows users to write acceptance tests on their own

  • It’s simple but effective and has been accepted into several national standards bodies such as ISO 9001 and ANSI X9-TRIAMS. 
  • Sentry provides a web interface that allows users to write acceptance tests and upload them by selecting an option on their dashboard from the toolbar menu with various test cases selected during setup. 

Guidelines for UAT

Guidelines for User acceptance Testing and review of existing code are as follows:

  • Don’t change much: Don’t change much except for the end result. 
  • Minimize complexity: Try to minimize complexity, while providing a usable interface by writing simple tests on top. 
  • Scope of Improvement: If you can identify what could be improved in your test results or if it is worth doing so, do that.
  • Security: To ensure the security of your application’s code, be sure to verify that only authorized users should interact with it (you cannot trust any unauthorized data).
  • Strong Passwords: You also must use strong passwords when dealing directly or indirectly through our website at least once a day after all logging is completed.
  • Conduct UAT: User acceptance testing can be conducted using software simulations or through manual interaction with end-users. This involves running multiple tests with different user types to identify the issues that prevent a product from being used correctly. Computer simulations allow testers to control each click, keyboard input, and display element on a computer screen. This allows for more precise testing without requiring physical devices or human resources. It’s important to note that not all bugs are caused by poor design- some may be due to user error or misconfigured system settings. That’s where user acceptance testing comes in it ensures that the end-user will use your product correctly so you can fix any bugs that prevent usability from occurring.
  • Code Review: Code review focuses on technical aspects such as functionality, security, and performance. The technical aspect of a product ensures that it works as intended and meets customer expectations. Code reviewers look at every line of code in a program to ensure there are no bugs or other technical issues with the code. This helps prevent errors or issues with the program that may not be immediately apparent to end users. Reviewers also check for any compatibility issues between the program and other devices and software, ensuring that your project works properly with other programs and hardware.
  • State Goals: Clearly stating your goals before launching any type of user acceptance or code review program is essential. Ideally, these programs should enhance the quality of future projects without sacrificing time spent on them directly. Implementing these tests early on lets you focus your attention on developing a successful product instead of fighting against existing flaws in your development process.

My Personal Notes arrow_drop_up
Last Updated : 29 Mar, 2023
Like Article
Save Article
Similar Reads