What is User Acceptance Testing?
User Acceptance Testing (UAT) is the software testing phase during which the system is tested for acceptability and validated for the end to end business flow. UAT is conducted by the end user or the client in a separate environment, similar to the production environment. During UAT, you test end-to-end scenarios and this typically involves running a suite of tests on the completed and integrated systems.
Some Key Points about UAT
Fundamental Best Practices
One of the critical pain points in UAT is how late in the cycle this testing takes place. Typically UAT is one of the last efforts to ensure the quality before the product goes live. Keeping this fact into consideration, it is imperative that the UAT should be carefully planned. The following workflow can come handy and prove useful to ensure a smooth UAT cycle.
An important truth for any process where quality must be determined is the fact it should be thoughtfully planned and the same goes for UAT as well. To effectively plan the UAT phase, it needs to be included in the master project plan and scheduled across the life of the project. The following checklist gives an overview of what needs to be planned for a successful UAT cycle.
The execution phase of the UAT is the one that definitely holds the most anxiety of the UAT process. What if the customer doesn’t like it? What if there is a major issue? What if there is a requirement gap? And so on …. So if the implementation team is not prepared for the UAT and have questions about things going wrong, then cancel it!
The execution phase is an opportunity to get closer to your client and do not miss this to make client a raving fan of yours. This implies that full disclosure is important in UAT. If there is a major bug, don’t hide it – openly discuss it and work around it.
It is helpful to have the basic test cases written, reviewed and signed off by the responsible stakeholders. The test cases should be made available in a test management system that tracks execution. This however, does not negate the importance of allowing customers to interact with the system in an exploratory manner but rather, provides a framework establishing the guidelines within which the UAT testing is conducted to ensure all the requirements have been reviewed and tested. Always remember: Clear expectations are key for a successful UAT. The following checklist gives an overview for executing UAT in a successful manner:
Ideally documentation and execution should happen in parallel. Recording and documenting the test results, findings, bugs and other relevant details is beneficial in evaluating the UAT execution. It is recommended to set up a system which lets you document all relevant information without losing any data. At the end of the UAT cycle a test execution report should be prepared to document all the details like:
It is worth mentioning here that the UAT test team must provide daily status updates to the stakeholders regarding the number of test cases executed, defects encountered and current status of those defects . More importantly, any Sev1 or Sev2 defects should be reported and triaged immediately for implementation team to provide the fix. This will ensure that there is minimal impact to the release schedule.
Once the test execution is completed and the test results documented, it is now time to evaluate and retrospect those results and processes. When evaluating the test results and findings, it gives us an opportunity to find answers to some of these questions.
User Acceptance Testing isn’t easy or trivial. A successful UAT cycle depends on solid planning and execution throughout the project and not just at test time. But with the right approach and planning, chances of UAT being a successful event increases significantly.