User Acceptance Testing (UAT)

What is User Acceptance Testing?
User Acceptance testing is the software testing process where system tested for acceptability & validates the end to end business flow. Such type of testing executed by client in separate environment (similar to production environment) & confirm whether system meets the requirements as per requirement specification or not.
UAT is performed after System Testing is done and all or most of the major defects have been fixed. This testing is to be conducted in the final stage of Software Development Life Cycle (SDLC) prior to system being delivered to a live environment. UAT users or end users are concentrating on end to end scenarios & typically involves running a suite of tests on the completed system.
The Acceptance testing is “black box” tests, means UAT users doesn’t aware of internal structure of the code, they just specify the input to the system & check whether systems respond with correct result.

User Acceptance testing also known as Customer Acceptance testing (CAT), if the system is being built or developed by an external supplier. The CAT or UAT are the final confirmation from the client before the system is ready for production. The business customers are the primary owners of these UAT tests. These tests are created by business customers and articulated in business domain languages. So ideally it is collaboration between business customers, business analysts, testers and developers. It consists of test suites which involve multiple test cases & each test case contains input data (if required) as well as the expected output. The result of test case is either a pass or fail.
Acceptance Testing Definition:
Acceptance Testing is a level of the software testing process where a system is tested for acceptability.
Prerequisites of User Acceptance Testing:
Prior to start the UAT following checkpoints to be considered:
  • The Business Requirements should be available.
  • The development of software application should be completed & different levels of testing like Unit Testing, Integration Testing & System Testing is completed.
  • All High Severity, High Priority defects should be verified. No any Showstoppers defects in the system.
  • Check if all reported defects should be verified prior to UAT starts.
  • Check if Traceability matrix for all testing should be completed.
  • Before UAT starts error like cosmetic error are acceptable but should be reported.
  • After fixing all the defects regression Testing should be carried out to check fixing of defect not breaking the other working area.
  • The separate UAT environment similar to production should be ready to start UAT.
  • The Sign off should be given by System testing team which says that Software application ready for UAT execution.
Why Alpha and Beta Testing?
The software application may use different users on different way & it impossible to developer or tester to predict what all possible scenarios or test data end user will use & how customer actually use the software application. So most of software venders are use the term like Alpha testing and Beta Testing which help to uncover the errors that may occurs in the actual test environment. In this testing method the software application release over limited end users rather than testing professionals to get feedback from them.
A] Alpha Testing
Alpha testing is conducted by Customer at the developer’s site, it is performed by potential users like developer, end users or organization users before it is released to external customers & report the defects found while Alpha testing.
This software product testing is not final version of software application, after fixing all reported bug (after bug triage) the new version of software application will release. Sometimes the Alpha Testing is carried out by client or an outsider with the attendance of developer and tester. The version of the release on which Alpha testing is perform is called “Alpha Release”.

B] Beta Testing
Most if times we have the sense of hearing term “Beta release/version”, so it is linked to Beta Testing.
Basically the beta testing is to be carried out without any help of developers at the end user’s site by the end users &, so it is performed under uncontrolled environment. Beta testing is also known as Field testing. This is used to get feedback from the market.
This testing is conducted by limited users & all issues found during this testing are reported on continuous basis which helps to improve the system. Developers are taking actions on all issues reported in beta testing after bug triage & then the software application is ready for the final release. The version release after beta testing is called “Beta Release“.
This is last stage of the testing where product is sent outside the company or for trial offer to download.

What to Test in User Acceptance Testing?
  • Based on the Requirements definition stage use cases the Test cases are created.
  • Also the Test cases are created considering the real world scenarios for the application.
  • The actual testing is to be carried out in environments that copy of the production environment. So in the type of testing is concentrating on the exact real world use of application.
  • Test cases are designed such that all area of application is covered during testing to ensure that an effective User Acceptance Testing.
What are the key deliverable of User Acceptance Testing?
The completion of User Acceptance Testing is the significant milestone for traditional testing method. The following key deliverable of User Acceptance Testing phase:
  • Test Plan: This outlines the Testing Strategy
  • UAT Test cases: The Test cases help the team to effectively test the application in UAT environment.
  • Test Results and Error Reports: This is a log of all the test cases executed and the actual results.
  • User Acceptance Sign-off: This is the system, documentation, and training materials have passed all tests within acceptable margins.
  • Installation Instructions: This is document which helps to install the system in production environment.
  • Documentation Materials: Tested and updated user documentation and training materials are finalized during user acceptance testing