User Acceptance Testing is a formal way to ensure that the new system or process does actually meet the user requirements. Each module to be implemented will be subject to one or more User Acceptance Tests (UAT) before being ‘signed off’ as meeting user needs. The time required will vary depending on the extent of the functionality to be tested. The test schedule will allow time for discussion and issue resolution.
Thus, I can say a user acceptance test is a chance to completely test business processes implemented in the application or software.
Main Objectives of the user acceptance testing:
- Validate system set-up for transactions and user access
- Confirm use of system in performing business processes
- Verify performance on business critical functions
- Confirm integrity of converted and additional data, for example values that appear in a look-up table
- Assess and sign off go-live readiness
The scope of each user acceptance test will vary depending on which business process is being tested. In general however, tests will cover the following broad areas:
- A number of defined test cases using quality data to validate end-to-end business processes.
- A comparison of actual test results against expected results
- A meeting/discussion forum to evaluate the process and facilitate issue resolution.
User Acceptance Testing is a 7 step process:
- UAT Planning
- Designing User Acceptance Test Cases
- Creation team for UAT
- Executing Test Cases
- Defect Logging
- Resolving the issues/bug fixing
- Sign Off
Designing UA Test Cases: The UA test cases help the UAT team to test the application thoroughly. This also helps ensure that the UAT provides sufficient coverage of all the scenarios. Generally, scenario based test cases are created for UAT. The inputs for these test cases are:
- Use cases created during requirements gathering
- Inputs from business analysts and subject matter experts
UAT test cases are written in very simple language that describe steps to be taken to test various business workflow or scenario.
Participants of UAT: Participants for a UAT can vary from project to project, client to client or organization to organization. The team for UAT is typically consists of customer team & project team.
- Customer Team:
- IT team of customer (if any)
- Business Users / Managers / Application owner (E.g. If the developed application is for HR department, then, HR head can be the application owner).
- End Users
- Project Team:
- Project Manager / Tech Lead
- Testing Team / Test Lead
- Business Analyst
Roles and Responsibilities: The project team will be responsible for coordinating the preparation of all test cases and the UAT group will be responsible for the execution of all test cases (with support from the project team). However, sometimes, UAT test cases are prepared by customer team specially by business users.
The UAT team will
- Ensure that the definition of the tests provide comprehensive and effective coverage of all reasonable aspects of functionality
- Execute the test cases using sample source documents as inputs and ensure that the final outcomes of the tests are satisfactory
- Validate that all test case input sources and test case output results are documented and can be audited
- Document any problems, and work with the project team to resolve problems identified during the tests
- Sign off on all test cases by signing the completed test worksheets
- Accept the results on behalf of the relevant user population
- Recognize any changes necessary to existing processes and take a lead role locally in ensuring that the changes are made and adequately communicated to other users
The Project Team will:
- Provide first level support for all testing issues
- Advise on changes to business process and procedure and/or
- Change the system functionality, where possible, via set up changes
- Track and manage test problems