User Tools

Site Tools


concepts:user-acceptance-test

What is user acceptance testing?

User acceptance testing (UAT) is a step in the lifecycle of a software project. The customer sets his specification(s) and the engineer realizes the software system. After finishing the software system the customer gets it to test whether the functionality fits his requirements or not.

It’s also possible that user acceptance testing is done between departments. For example if one department is realising a part of a system for an other department.

Who is doing the user acceptance testing?

The user acceptance testing is always done by the user or by testers who have been charged by the customer. User acceptance testing is never done by the development team. The user will not get the code which means the user is doing a blackboxtest. The customer expects the developers to realize the software system based on the latest technical improvements/ the actual state of the art. This also includes the code review, implementation test and system test and unit test.

Goals of user acceptance testing

There are three goals of user acceptance testing:
1. Checking if every requirement is implemented
2. Checking if the software system is running as it should (without errors or exceptions)
3. Finding Bugs

The most important goal of user acceptance testing is to find bugs. So those issues could be fixed before the system is going live/productive. Usually it is impossible to check if every function is running as it should because of the complexity of the software system.

Phases of user acceptance tests

1. Requirement analysis
2. Creating test scenarios
3. Creating a test plan
4. Creating test cases
5. Exection of the user acceptance test
6. Tracking the results of the user acceptance test
7. Checking whether the requirements of the customer are accomplished

Preparation of user acceptance testing

To execute a user acceptance testing as correct as possible two documents should be created. One is the test specification which describes the aims of the user acceptance testing in detail. The other one is a test plan which depends on the test specification. The test plan contains possible solutions to reach the aims mentioned in the test specification.

Execution of user acceptance testing

The user acceptance test is successful when an error was found. The aim of user acceptance testing is to find as few issues as possible. The user acceptance testing should also be done as quick as possible because the customer wants to implement the software system as soon as possible.
As you can see there is discrepancy between having a software system with no errors but a user acceptance test that is successful when an error was found.

Risks of user acceptance testing

The results of an user acceptance test is dependent on the motivation of the tester doing the user acceptance test.
When user acceptance tests needs to be done too often, the customer might lose confidence in the developing team because they are going to present him the software system as completed. When the user acceptance test fails several times the customer might guess that the development team is not able to implement his requirements correctly.

Sources of information:

  • Kritische Erfolgsfaktoren beim Abnahmetest in Redevelopment-Projekten Erfahrungen aus einem Großprojekt (J. Borchers)
  • Toward preprototype user acceptance testing of new information systems: implications for software project management (F.D. Davis, V. Venkatesh)
  • Testen, Analysieren und Verifizieren von Software (P. Liggesmeyer, H. M. Sneed, A. Spillner)
  • User acceptance testing : a step-by-step guide (B. Hambling, P. van Goethem)
  • ATDD in der Praxis - Eine praktische Einführung in die Akzeptanztest-getriebene Softwareentwicklung mit Cucumber, Selenium und FitNesse (M. Gärtner)
concepts/user-acceptance-test.txt · Last modified: 2017/04/21 21:25 by Elpawo