What is User Acceptance Testing (UAT)?

User Acceptance Testing (UAT) is the last phase of application testing.  There are different types of UAT, including Beta testing and FAT testing. UAT will test all the requirements and the test results will support the validation.

During the initial phase, the application will be tested by the developers.  Once the application is successfully tested by the developers, it will be sent to the users for testing. 

The user will test all the requirements and come up with a review output. The user acceptance tests will be performed in UAT environment. 

Agile/Scrum UAT testing: Please check this Agile UAT link

Why UAT environment?

It will not be tested in Production environment, as production server will have real production data.  When performing tests, the UAT will be used.  The UAT will have the replica of the production server configuration.

The production environment will have production data and UAT environment will have test data.  The user will not be able to corrupt the production data when testing, since they are using UAT environment for testing. 

Once the tests are passed, then the application will be moved into production.

What is UAT requirements specification document?

The user community will create a document called User Requirement Specification (URS).  This document will have all the requirements that are needed in the application.  The document will explain the Scope of the UAT and put together all the functional requirements that are expected in the application. 

Each requirement will be given an unique Requirement ID, with requirement description. All the requirements in the Specification document will be reviewed by the user community and signed by the Team Leader and Manager of the users.

What is UAT environment?

The UAT environment is an image of the production server with same configuration. When UAT tests are performed, it’s tested in the ‘real world’ scenario. When UAT tests are completed successfully, the application will be moved into production and it is the last phase of the testing process.

Purpose of UAT

The purpose of the UAT is to ensure the application is able to handle the real world tasks and all the requirements specified by the user community is fulfilled successfully.

How is UAT performed?

UAT is performed by the users of the application or by the paid testers.  The UAT scripts will be created before doing the UAT.   The UAT scripts will be reviewed by a senior member and approved before testing.

The UAT scripts are the steps that are to be followed in sequential order by the testers.   Each step will have a ‘Pass’ or ‘Fail’ result.  The test results are recorded after completing each step. Each step will have an expected result and actual result column. 

The actual result will be compared with expected result and ‘Pass’ or ‘Fail’ is determined. Each step has to be signed or initialed by the tester.  When all the steps are completed with ‘Pass’ result, the UAT document is considered as totally completed successfully. 

If any step fails, then the whole UAT document has to be repeated after fixing the issue.

There will be multiple UAT documents for testing one module of the applications. All testing scenarios are grouped together to form a UAT document.  All UAT testing documents have to be completed before moving the application to production.

Types of UAT

There are few types of UAT available

  1. Alpha & Beta Testing
  2. Contract Acceptance Testing
  3. Regulation Acceptance Testing
  4. Operational Acceptance Testing
  5. Black Box Testing

Alpha & Beta Testing

Alpha testing is conducted in the development environment.  It is performed by the development team.  It is done before a product is released for the customers.  The development team will identify uses to conduct this type of tests. They document  test results and fixes any bugs before releasing it.

Beta Testing is conducted by the users of the customer in their environment. The customer users perform extensive testing and usually it will be by a large group.  The beta users will give the feedback.  The product is fixed for those issues and the product will be released with all the updates.

Contract Acceptance Testing

CAT is conducted in the development environment.  It is performed by the development team. The focus is to keep all the functionalities required in the contract.  This is tested to see if the application is providing all the required functionalities that are specified in the contract.

Regulation Acceptance Testing

RAT is conducted in the development environment.  It is performed by the development team.  It’s goal is to check if the software/ application is able to satisfy all the  speficied regulations.  The legal and governmental regulations are tested. 

For example:  In pharmaceutical industry, the software applications should adhere to 21CRF11 regulations.  This is tested in the application.

Operational Acceptance Testing

OAT is conducted in the development environment.  It is performed by the development team.  The operational acceptance testing goal is to make sure the defined workflow is followed. The step by step workflow is navigating as per the user specification defined in URS.  This type of user acceptance testing is used for all defined workflows.

Black Box Testing

Black box testing is a common and frequently used User Acceptance Testing. BBT is conducted in the development environment.  It is performed by the development team.  It is a testing method to test if all the specification in the User Requirement Specifications are met.

UAT BlackBox testing
UAT – Blackbox testing

FAT: This is for Factory Acceptance Testing, before installation of equipment in a factory.

Conclusion

User acceptance testing will save a lot of time and money when the project is completed. It will increase the ROI of the product. Any new findings will be incorporated in the next version of the product. UAT is a very important testing before accepting the product from the vendor.