UAT (User Acceptance Testing)
UAT (User Acceptance Testing) is often the final stage of the implementation process which is conducted to ensure that system requirements meet business needs. The UAT process allows for any issues to be fixed before the system goes live. Acceptance Testing often can be in the form of Alpha or Beta Testing, where the software is tested by the intended audience in the “real environment”.
Why is UAT important?
Despite resource deficits, they need to be managed to conduct proper tests when it comes to this phase. Even though this can be expensive, it is not close to possible cost damages that can be caused by bad requirements understanding. In the ideal world, acceptance testing would be performed by system users and they should decide if the deliverable is what they are intending to pay for.
During the implementation process, the system is going through many types of testing by programmers, analysts, and designers. So why focus on UAT? All other forms of testing are carried out by the engineering team to ensure that the system works technically, according to their understanding of the business requirements. UAT should be carried out by the users or business consultants to determine whether the software fits their use or not. Most engineering teams are often forced to perform ad-hoc testing based on the developed feature instead to plan the test effort per feature upfront. UAT can give a clear picture of what should be expected as the outcome.
How to create an efficient UAT process?
Performing and writing acceptance tests takes time, so UAT planning and conducting should be as efficient as possible:
- Acceptance Tests should be based on User Stories
- UAT Gives details about system layout and its reactions on user actions
- Acceptance Tests should not define need, but behavior
- UAT should be a contract between a client and a vendor
- UAT as a deliverable
- UAT design and testing through an iterative process so that risks regarding requirements can be dropped in the early implementation phase
- UAT should be signed by the client
- Acceptance Tests should be simple, understandable and cheap:
- We tend to use Behavior Driven Development and Gherkin model (Given-When-Then) for defining efficient and cheap acceptance tests
UAT is applicable to any implementation methodology, including agile and also recommended as a step in the Development phase if we use the Microsoft Dynamics Sure Step methodology.
Who benefits? The answer is simple – everyone.
- The satisfaction of the clients is increased, as they are more confident that the requirements are met, without the fear of how the product will behave in the real environment and if a critical issue will arise when least expected.
- The quality criteria of the product is defined in the early phase of development/implementation
- Vendors have improved communication, both with the clients and inside the team, as the requirements definition is improved through the acceptance tests and signed by the client
- The engineering team ends up minimizing the pressure during the implementation and risks of post-implementation live fixes.
- Stakeholders use the information gathered through UAT to better understand the target audience’s needs
The benefits of UAT significantly outweigh the investments. As the UAT can be planned to spend up to 5-10% of the project time, it can save almost 30% of the total waste. This is a good way for stakeholders to ensure a good ROI out of projects.