User Acceptance Test

A tester wrote to me: “Why do we have to conduct user acceptance testing (UAT) when we already tested software several times to make sure that it does not have defects? Is having UAT necessary?”

Answer: Today customers expect software companies to deliver quality software at lowest costs and shorter time to meet their business needs. However many software companies only focus on the functional aspects via several tests such as unite test, integration test, system test etc. in their development environment. Few pay attention on how the software will work in the users environment. Many times, the software meet all functional requirements but failed during the user acceptance test because of incompatible testing environment.

User Acceptance Testing (UAT) helps users to assure themselves that the software meet their needs and operate well in their environment. It is designed to find out if a software fulfills the acceptance criteria and ready for use. UAT identifies how compliant the software is with the business requirements when it operate in the real business environment.

UAT involves the participation from users and is different from system testing which is performed by developers and testers. Because users play a key role in UAT, it is important to define the acceptance criteria with the users during the early phases of the software life cycle. Business Analysts or Requirements Engineers, who possess knowledge of the business processes must help in designing appropriate requirements, which forms the base for testers to create the test cases. UAT should be performed in an environment that simulates the production environment or put on the exact real world usage of the software application.

During UAT most technical defects must already be fixed during various testing processes (Unit test, integration test, system test) conducted by testers. The functionality and usability aspects of the software are key aspects to be thoroughly tested during UAT. The testing team should develop the test scenarios for the UAT. An effective UAT plan that details out the key areas must be designed and user acceptance test cases must be prepared to test the software. Any defects found during the UAT should be resolved as soon as possible. Basically UAT helps projects to ensure that the software implements the intended business processes, and meets the requirements of users in various environments. It is the last test in the software development life cycle and the most necessary to prove that the software meet users’ requirements.

Sources

  • Blogs of Prof. John Vu, Carnegie Mellon University