User Acceptance Testing

Written by Jeff

What Is User Acceptance Testing?

User Acceptance Testing (UAT) is a form of Acceptance Testing where the customer/user tests the software and finds out whether it meets their needs and expectations. It is often referred to as Alpha or Beta testing. Alpha testing is done at the developer’s site, while Beta testing is done at the user’s site. It is the final verification of the software system that will reasonably determine the stability of the end product, due to the emulation of the real-life environment. User tests do not normally uncover major defects, as those are usually discovered and fixed in prior stages of testing.

What Is Its Purpose?

UAT is done to ensure customer satisfaction with the product near the end of its development and testing cycle. It lets the client/user test the near-complete product under simulated real-life scenarios. It is the final stage of testing done before a client/user either accepts or rejects the new system.

How Is It Executed?

UAT is typically done under the guidance of a subject-matter expert, although it is essentially users of the system performing tests under simulated real-life scenarios. It can occur at either the developer’s site or the client’s own site or it can be distributed throughout the Internet with varying levels of public access to various functionality.

Consequences Of Inadequate Acceptance Testing

Inadequate UAT can result in a user encountering a bug after the system is implemented that can compromise the usability of the system. Confidence and trust in the system can be compromised. Another outcome is that the application could be found to be difficult or awkward to use or requires significant training because it doesn’t feel intuitive to the client/user.

Bugs may never be reported to the developers without UAT resulting in clients implementing work-arounds or using the defect as a “feature”. These unintended “features” can disappear in subsequent releases of the software and cause operational issues for the end user who has come to rely on the unintended “feature”.

If the software is not properly UAT tested, the user may be inadequately prepared for the system when it is implemented. They may not have a good idea of what it does and how it fits their needs. Their operations may need some alterations to accommodate the new system and they will not have had the time to uncover this preparation effort prior to implementation.

Ultimately, UAT can determine whether the system is successfully implemented and used which impacts the reputation of all stakeholders involved in its development.