Acceptance testing (also known as user acceptance testing) is a type of testing carried out in order to verify if the product is developed as per the standards and specified criteria and meets all the requirements specified by customer. This type of testing is generally carried out by a user where the product is developed externally by another party.
It falls under black box testing methodology where the user is not very much interested in internal working/coding of the system, but evaluates the overall functioning of the system and compares it with the requirements specified by them.
User acceptance testing is considered to be one of the most important testing by user before the system is finally delivered or handed over to the end user.
Acceptance testing is also known as validation testing, final testing, QA testing, factory testing, and application testing. And in software engineering, this testing may be carried out at two different levels; one at the system provider level and another at the end user level (hence called user acceptance testing, field testing, or end-user testing).
How is it Carried Out?
This testing in software engineering generally involves execution of number test cases, which constitute to a particular functionality based on the requirements specified by the user. During the testing, the system has to pass through or operate in a computing environment that imitates the actual operating environment existing with user.
The user may choose to perform the testing in an iterative manner or in the form of a set of varying parameters (for example: missile guidance software can be tested under varying payload, different weather conditions etc.).
The outcome of this method can be termed as success or failure based on the critical operating conditions the system passes through successfully/unsuccessfully and the user's final evaluation of the system.
The test cases and test criterion in this testing are generally created by end user and cannot be achieved without business scenario criteria input by user. This type of testing and test case creation involves most experienced people from both sides (developers and users) like business analysts, specialized testers, developers, end users, etc.
Process Involved in the Testing
- Test cases are created with the help of business analysts, business customers (end users), developers, test specialists, etc.
- Test cases suites are run against the input data provided by the user and for the number of iterations that the customer sets as base/minimum required test runs.
- The outputs of the test cases run are evaluated against the criterion/requirements specified by user.
- Depending upon the outcome, if it is as desired by the user or consistent over the number of test suites run or non conclusive, the user may call it successful/unsuccessful or suggest some more test case runs.
- Based on the outcome of the test runs, the system may get rejected or accepted by the user with or without any specific condition.
It is done in order to demonstrate the ability of system/product to perform as per the expectations of the user and induce confidence in the newly developed system/product. A sign-off on contract stating the system as satisfactory is possible only after successful acceptance testing.
It is considered to be an essential step before the system is finally accepted by the end user. In general terms, it is a process of testing the system before it is finally accepted by user.
It is a type of testing carried out at developer's site by users (internal staff). In this type of testing, the user goes on testing the system and the outcome is noted and observed by the developer simultaneously.
It is a type of testing done at user's site. The users provide their feedback to the developer for the outcome of testing. This type of testing is also known as field testing. Feedback from users is used to improve the system/product before it is released to other users/customers.
This type of testing is also known as operational readiness/preparedness testing. It is a process of ensuring all the required components (processes and procedures) of the system are in place in order to allow user/tester to use it.
Contact and Regulation Testing
In contract and regulation testing, the system is tested against the specified criteria as mentioned in the contract document and also tested to check if it meets/obeys all the government and local authority regulations and laws and also all the basic standards.