User acceptance testing or UAT as it is more commonly known as, forms a very important and necessary part of the whole software testing cycle. User acceptance testing determines or gives you an indication about how your software system or application will be perceived by the user, as it seeks to check whether or not the software system meets the user stated specifications. Therefore, it becomes extremely important for a tester to know what user acceptance testing exactly is and what is the most appropriate time for employing it. This article is concerned with the user acceptance testing and its details, and focuses on making related queries as clear as possible.
Before starting a project, certain agreements are made between the client and the company executing the project. As a part of this, for the program developers, some specifications and requirements are set for the software system or application which should be met by the software system at the time of delivery to the client. The project is completed based on the agreement, but one of the big variables is how to ensure that the software system or application satisfies all of the requirements and specifications that were agreed up on during the agreement signing? And this in turn plays a big role in deciding whether the project has succeeded or not, and more important, whether the client will be satisfied enough to pay for the project.
At this point, the user acceptance testing comes in to play. So we can define the user acceptance testing as a sort of software testing technique employed for testing whether or not the software system or application meets all the agreement specified requirements, and there is actually no need to emphasize how important this can be.
The client plays the role of SME or subject matter expert during the user acceptance testing and determines after taking a trial of the software system whether it is meeting all the requirements as were decided over the contractual agreement or not. One of the most frequently asked questions is about the time in the schedule when the user acceptance testing must be performed? By the definition of the user acceptance testing we can conclude that it should be carried out at the end i.e., after the completion of the whole project and before it released or handed over to the client.
User acceptance testing gives an assurance to the executing company that the client would accept the software system or application or whether some rework may be required. Many a times, the user acceptance testing can be performed by the users also and the test cases are created based on the specifications and requirements stated in the contractual agreement by the client. The test cases are usually kept formal and each one is assigned a severity level, and in fact, the user acceptance testing should be carried out as seriously as possible, and any problems reported should be checked and logged for inspection and possible rework.
User acceptance testing serves a means for verification of the software system or application, such that it can help verify that the application meets all the specifications and requirements and works accordingly. User acceptance testing also serves as a means for emulating the usage conditions as seen in the real world. The test cases run by the users or clients are not just focused up on the identification of the simple problems (like spelling and grammatical errors, show stopper defects etc.) but, also focus upon quite complex issues, and with execution by users who act like the end users (in some cases, these users may not have the same level of computer expertise even after relevant training).
It is important that the previous stages of testing have been performed effectively since if more defects are discovered during the user acceptance testing, it can harm the reputation of the organization as well as it can bring down the production rate. It is better if most of the issues are identified and fixed in the former stages of the software testing life cycle. These days a more sophisticated version of UAT is available called “quantified user acceptance testing” and it is also way faster and smarter than the traditional user acceptance testing. The quantified user acceptance testing is governed by seven following aspects:
1. Linear testing
2. Recursive testing and
3. Adaptive testing
4. Major systems and services checks (MSC)
5. Internal consistency checks (ISC)
6. Real time regression (RTR)
7. Reactive regression
|Handbook of Usability Testing||User Acceptance Test (UAT) Planning||UAT Defined: A Guide to Practical User Acceptance Testing|