Written By


February 25, 2020 - 2 min read

What is User Acceptance Testing? 


User Acceptance Testing (UAT), also known as End-User, Application or Beta Testing, is the final phase of the testing process ahead of release, installation or distribution of the software.


During this phase, actual software users test the software to make sure it works as expected in real-world and day-to-day business scenarios in accordance with the specifications. 


The steps in conducting User Acceptance Testing include:


  1. Planning – a plan outline all details of the UAT is produced
  2. Designing Test Cases – test cases are designed and defined cleared so that they will cover all the functional scenarios of the software in real-world usage. 
  3. Selection of the Testing Team – a testing team made up of end-users is created.
  4. Executing Test Cases and Documenting – the testing team executes the test cases, logging bugs and comments. 
  5. Bug Fixing – the development team resolves the bugs reported by the Testing Team
  6. Sign Off – when all of the bugs have been fixed, the Testing Team indicates acceptance that the software meets user requirements and is ready to be released.


Prerequisites of UAT


There are 10 accepted prerequisites for User Acceptance Testing according to Guru99:


  1. Business Requirements must be available.
  2. Application Code should be fully developed
  3. Unit Testing, Integration Testing & System Testing should be completed
  4. No Showstoppers, High, Medium defects in System Integration Test Phase –
  5. Only Cosmetic error is acceptable before UAT
  6. Regression Testing should be completed with no major defects
  7. All the reported defects should be fixed and tested before UAT
  8. Traceability matrix for all testing should be completed
  9. UAT Environment must be ready
  10. Sign off mail or communication from System Testing Team that the system is ready for UAT execution


Types of UAT


There are 5 different types of User Acceptance Testing.


  • Alpha & Beta Testing 
  • Contract Acceptance Testing
  • Regulation Acceptance Testing
  • Operational Acceptance Testing
  • Black Box Testing


How does User Acceptance Testing differ from Functional Testing? 


User Acceptance Testing consists of test steps which verify that specific requirements are working for the end-user. UAT focuses on how well the client can use the product to complete the required tasks. 


Functional Testing tests specific requirements and specifications of the software but it lacks the user component. While a functional test might conclude that software behaves as expected it won’t verify that it will actually work for the user.


UAT within an Agile Framework


In the Agile framework, a Product Backlog is composed of user stories. User stories describe the user, the feature they want to use and the reason they need it.


  • As a (user),
  • I want (a feature)
  • So I can (reason of need/business benefit)


This provides valuable guidelines for User Acceptance Testing. The feature has been clearly defined by who needs it and why. The acceptance criteria should become apparent during Backlog Refinement. During Backlog Refinement the Product Owner and Development Team collaborate on the details of user stories, including acceptance criteria. Additional user acceptance testing criteria may also be defined for functional or non-functional features. 

An increment is only considered to be done when it’s a working (i.e. it’s fully tested) piece of software that fulfils the customer need, has the feature(s) that the customer wanted, and meets all the acceptance criteria.




Read More

What is Agile?

Agile (adj): used for describing ways of planning and doing work in which it is understood that making changes as they are needed is an impo…

Understanding User Stories and Acceptance Criteria

Simply put, a user story is a short, informal and simple to understand description of a single software feature or function….

Why Choose a React SPA + Laravel API for Business Systems

React Single Page Apps supported with a Laravel API offer up the ability to create incredibly interactive systems with great performance and…