What is User Acceptance Testing(UAT)?
In engineering and its various subdisciplines, acceptance testing is black-box testing performed on a system (e. g. software, lots of manufactured mechanical parts, or batches of chemical products) prior to its delivery.
In some engineering subdisciplines, it is known as functional testing, black box testing, release acceptance, QA testing, application testing, confidence testing, final testing, validation testing, usability testing, or factory acceptance testing.
In most environments, acceptance testing by the system provider is distinguished from acceptance testing by the customer (the user or client) prior to accepting the transfer of ownership.
In such environments, acceptance testing performed by the customer is known as beta testing, user acceptance testing (UAT), end-user testing, site (acceptance) testing, or field (acceptance) testing.
Overview of User Acceptance Testing
Acceptance testing generally involves running a suite of tests on the completed system. Each individual test, known as a case, exercises a particular operating condition of the user ‘ s environment or feature of the system and will result in a pass or fail boolean outcome. There is generally no degree of success or failure.
The test environment is usually designed to be identical, or as close as possible, to the anticipated user ‘ s environment, including extremes of such. These test cases must each be accompanied by test case input data or a formal description of the operational activities (or both) to be performed intended to thoroughly exercise the specific case and a formal description of the expected results.
Process of Acceptance Testing
The acceptance test suite is run against the supplied input data or using an acceptance test script to direct the testers. Then the results obtained are compared with the expected results. If there is a correct match for every case, the test suite is said to pass.
If not, the system may either be rejected or accepted on conditions previously agreed between the sponsor and the manufacturer.
The objective is to provide confidence that the delivered system meets the business requirements of both sponsors and users. The acceptance phase may also act as the final quality gateway, where any quality defects not previously detected may be uncovered.
A principal purpose of acceptance testing is that once completed successfully, and provided certain additional contractually agreed) acceptance criteria are met, the sponsors will then sign off on the system as satisfying the contract (previously agreed between sponsor and manufacturer), and deliver final payment.
User acceptance testing in details
User Acceptance Testing (UAT) is a process to obtain confirmation by a Subject Matter Expert (SME), preferably the owner or client of the object under test, through trial or review, that the modification or addition meets mutually agreed-upon requirements. In software development, UAT is one of the final stages of a project and often occurs before a client or customer accepts the new system.
Users of the system perform these tests, which developers derive from the client ‘ s contract or the user requirements specification.
Test designers draw up formal tests and device a range of severity levels. It is preferable that the designer of the user acceptance teste not be the creator of the formal Integration and system test cases for the same system, however, there are are some situations where this may not be avoided.
The UAT acts as a final verification of the required business function and proper functioning of the system, emulating real-world usage conditions on behalf of the paying client or a specific large customer.
If the software works as intended and without issues during normal use, one can reasonably infer the same level of stability in production. These tests, which are usually performed by clients or end-users, are not usually focused on identifying simple problems such as spelling errors and cosmetic problems, nor show-stopper bugs, such as software crashes.
Testers and developers previously identify and fix these issues during earlier unit testing, integration testing, and system testing phases.
The results of these tests give confidence to the clients as to how the system will perform in production. They may also be a legal or contractual requirement for acceptance of the system.
End – to – end support for user acceptance testing including:
- UAT Planning- Working closely with business users to understand their requirements and build test cases from the user perspective.
- UAT Execution-Striving for maximum test coverage, sequencing tests to prioritize critical functionalities and closely monitoring test progress to help escalate issues and “showstopper” defects for a quick resolution.
- UAT Closure-Preparing and delivering a final test summary report and documenting lessons learned to provide recommendations to improve testing initiatives.