User acceptance testing (UAT) is the final phase of testing of a large application development project that you (the recipient whom the work is being done for) do “in-house” to make sure that your new software application, (or a major enhancement to an existing application), solves the problems that you set out to solve for your users.
It is often overlooked and not given the attention it deserves. This is partially due to the fact that it comes at project end and often projects are rushed to launch. However, it is also often a part of the project that is misunderstood. UAT is essential for launch success, and demystifying both the need and approach is important.
You should do it because if you left something out that should have been included, or you have a workflow that doesn’t really match the real-world business workflow, you’ll want to find that out for yourself rather than have your users and customers tell you after you’ve released your application.
Our customers often ask why UAT is needed after all the functional testing that’s been done by the development team during the implementation phase. However, functional tests only confirm that the features work as designed. User acceptance testing goes well beyond this, as it seeks to answer the question, “Will users accept the solution given the problems that it’s intended to solve?”
You don’t want to leave this critical step to the team that designed and built the solution, because their viewpoint is one of knowing how the application is intended to work. In addition, they often lack the subject matter expertise to represent your real-world users.
Instead, you want people who are knowledgeable about the problems that the solution is designed to solve, and have a depth of experience with those problems that they can readily bring real-world scenarios into their testing. In other words, you need testers who can get inside the minds of your target users. If you had a subject matter expert who was consulted during the discovery and design phase, you should have them on your user acceptance testing team. However, you also want at least one tester who wasn’t consulted or didn’t work closely with the design team, because they will bring a perspective that is uninfluenced by the design decisions.
Requiring a test plan with formal test cases for UAT can be an impediment to successfully completing this phase, because testers will often fall into simply re-iterating the functional tests that have already been completed as part of development. However, if you simply “wing-it” without any prior thought and planning, you’re likely to fail to get value from your efforts. For this reason, we recommend that you create a test plan that incorporates the following:
UAT is important because it provides you with the best opportunity to catch and correct design missteps or omissions before your users see them. To successfully complete this critical phase, you need to engage testers who have subject matter expertise and who are not intimately familiar with the application design and who can approach their testing from the “business problem” perspective. You’ll get more benefit from UAT if you plan your testing around the real-world tasks and scenarios that the application is designed to handle, rather than simply turning testers loose on the application without direction.