User acceptance testing, a testing methodology where the clients/end users involved in testing the product to validate the product against their requirements. It is performed at client location at developer's site.
For industry such as medicine or aviation industry, contract and regulatory compliance testing and operational acceptance testing is also carried out as part of user acceptance testing.
UAT is context dependent and the UAT plans are prepared based on the requirements and NOT mandatory to execute all kinds of user acceptance tests and even coordinated and contributed by testing team.
The following diagram explains the fitment of user acceptance testing in the software development life cycle:
The acceptance test cases are executed against the test data or using an acceptance test script and then the results are compared with the expected ones.
Acceptance criteria are defined on the basis of the following attributes:
Functional Correctness and Completeness
Data Integrity
Data Conversion
Usability
Performance
Timeliness
Confidentiality and Availability
Installability and Upgradability
Scalability
Documentation
The acceptance test activities are carried out in phases. Firstly the basic tests are executed and if the test results are satisfactory then the execution of more complex scenarios are carried out.
The Acceptance test plan has the following attributes
Introduction
Acceptance Test Category
operation Environment
Test case ID
Test Title
Test Objective
Test Procedure
Test Schedule
Resources
The acceptance test activities are designed to reach at one of the conclusions :
Accept the system as delivered
Accept the system after the requested modifications have been made
Do not accept the system
The Acceptance test Report has the following attributes:
Report Identifier
Summary of Results
Variations
Recommendations
Summary of To-DO List
Approval Decision