I have mentioned in my posts that if users either find a system difficult to use or find problems with it, then user adoption of this system is going to be extremely difficult. One of the ways to eliminate potential problems and provide user adoption is user acceptance testing.
User Acceptance Testing (UAT) is a process to obtain confirmation that a system meets mutually agreed upon requirements for the system. Major stakeholders, the project sponsor, and users across an organization provide such confirmation after testing the system. UAT is done using real world scenarios relevant to the users' tasks in the system.
Users of the system perform these tests, which you would derive from the user requirements documents. The UAT acts as a final verification of the required business functions and proper functioning of the system, emulating real-world usage conditions. UAT is one of the final stages of a content management project and often occurs before users accept the system. This type of testing gives users the confidence that the system being deployed for them meets their requirements. This testing also helps to find bugs related to usability of the system.
Before UAT is conducted the system needs to be fully developed. Various levels of QA testing should already be completed before UAT. Most of the technical bugs should have already been fixed before UAT.
What to Test?
To ensure an effective UAT test cases are created. These Test cases can be created using various use cases identified during the requirements definition stage. The Test cases ensure proper coverage of all the scenarios during testing.
During this type of testing the specific focus is the exact real world usage of the system. The testing is done in an environment that simulates the production environment. The test cases are written using real world scenarios for the system.
How to Test?
Focus is on the functionality and the usability of the system rather than the technical aspects. It is assumed that the system already has undergone QA testing.
UAT typically involves the following:
- UAT planning;
- designing UA test cases;
- selecting a team that would execute the UAT test cases;
- executing test cases;
- documenting the defects found during UAT;
- resolving the issues/bug fixing
- sign Off.
As always the planning process is the most important of all the steps. This affects the effectiveness of the testing Process. The planning process outlines the UAT Strategy. It also describes the key focus areas, entry and exit criteria.
Designing UAT Test Cases
UAT test cases help the test execution team to test the system. This also helps to ensure that the UAT provides sufficient coverage of all the scenarios. The Use Cases created during the requirements definition stage may be used as input for creating test cases. The input from users can also be used for creating test cases.
Each UAT test case describes in a simple language the precise steps to be taken to test something.
Selecting a Team That Would Execute the UAT Test Cases
The UAT Team is generally a good representation of users across the organization. Be sure to involve major stakeholders and sponsors.
Executing Test Cases
The testing team executes the test cases and may additionally perform random tests relevant to their tasks in the system. Lead the team by executing the test cases with them and guide users as necessary.
Documenting the Defects found During UAT
The team logs their comments and any defects or issues found during testing.
Resolving the Issues/Bug Fixing
Discuss the issues/defects found during testing with your project team and sponsors. The issues are resolved as per the mutual consensus and to the satisfaction of the users. Sometimes you may have to prioritize these issues/bugs. After these issues/bugs were either fixed, allow users to re-test the system. If you decided to prioritize and fix them later, inform your users about it with the estimated date of the fix.
Upon successful completion of the UAT and resolution of the issues the team generally indicates the acceptance of the system. Once users "Accept" the system, they indicate that the system meets their requirements.
Users now would feel confident that the system meets their needs and they feel "invested" in the system. There may also be legal or contractual requirements for acceptance of the system.
UAT Key Deliverables
- the test plan - outlines the testing strategy;
- test cases – help the team to effectively test the system;
- the test log – a log of all the test cases executed and the actual results;
- user sign off – this indicates that the users find the system is delivered to their satisfaction.