After the software developed and approved by the engineering team (R&D/QA), the software is now available to be delivered to the customer for UAT that will help him establish confidence in the software prior to approve the purchase of the software.
The main goals of UAT
- Allow the customer to validate that the system is compatible with his environment .
- Allow the customer to gain confidence in the software.
- Allow the customer to validate that the software is developed based on his preliminary requirements and specifications.
Who can run the UAT?
There are a few common scenarios that I saw during my years in the software industry:
- The client with a predefined list of tests that were provided by the company.
- The company users that get the software and send the feedback for review.
- The UAT team executes the tests, the client approves the results.
- The client with the assistance of the UAT team/support.
The basic phases of UAT process
- Planning and strategy.
- Build the ATP team.
- Design the ATP.
- ATP Execution and Documentation.
- Comparing of the actual Vs client expectation
- Defects Fixing and re-Testing (If Needed).
- ATP Sign-off.
Acceptance Test Review Checklist
Testing that are made to validate that the developed system meets the client requirements.
Phase 1: Entry Criteria (Examples)
- The application code was fully developed and tested by engineering teams (R&D/QA).
- All bugs are fixed and verified (Blockers, Critical and major).
- The client business requirements are available.
- The client environment is ready for tests.
- Exit criteria for the testing process met.
- Cosmetic/minor bugs can be approved.
- All risks are examined and removed.
- The testing cycles provide a full Code coverage (Beside the sections that were not tested as part of the Risk Assessment process).
Phase 2: Preliminary Investigation
- Prepare a timetable that will contain the ATP (ATP phases, ATP Review, ATP sign-off etc.).
- What is the testing level that the user asks to run prior to approve the software?
- Prepare time estimations for releasing the ATP.
- In any case that the user will test the system without the team, is there any Step-by-step test instruction that the client can use?
- Who will validate that the client has the relevant systems to support the testing process (System requirements and specifications)?
- Have you defined the process for reporting errors or any other issues that the client may have during the testing process?
- Is there any other 3 rd party software that the client need to install prior to the implementation of the software?
Phase 3: UAT Team
- Make sure that the UAT team understand the responsibilities during the UAT process.
- Validate that the UAT will verify the performance on business main process.
- Ensure that the UAT team will document every input/results of a test case.
- Make sure that the UAT team understand the expectations of the client.
- Determine the people that will be part of the UAT team.
- Determine test team training (if required).
- Make sure that the UAT team understand what are the tests to be executed and what are the expected outcomes that will satisfy the client.
- Make sure that the UAT team has the knowledge to take any required action for each defect that was identified during the test execution.
- Validate that the UAT team has a support team that can advise and resolve any issue during the process of test execution.
Phase 4: Test preparation
- Validate that the test plan includes the main Use cases that were requested by the client.
- Make sure that the test plan covers all possible interactions with the client environment.
- Has acceptance criteria was defined regarding the complication of the test plan?
- Validate that the test plan is compatible with the client time expectations.
- Has the test plan for the UAT process was sent to review?
- What tests will be executed manually/automatically?
- Has the test plan for the UAT process was approved?
- Validate that the team agreed to the test cases that are intended to run on client environment can cover the main aspects of the software.
- Validate that the test plan documentation is good enough, so both the stockholders and the client can review and understand.
Phase 5: Test Execution & Test Analysis
- Validate that the team will execute the tests without a deviation from the original test plan.
- Validate that the application is not causing any downtime/Failures on client site.
- Validate that all phases of the testing process documented.
- Validate that the test results reviewed by the client.
- Validate that all defects identified and resolved.
- Validate that the test results are documented.
- Validate that all defects are documented.
- Validate that you analyze the testing process (What was wrong? How can you improve the future process?).