Software products are developed on the basis of specified business and end user requirements to meet their intended needs and expectations. Acceptance of the product by the user would fulfil the purpose & goal of software development. Thus, evaluation of the developed product by the user itself may help in gaining confidence in the product’s readiness and in its functioning.
Acceptance testing is one of the last types of testing performed over software application by the pool of targeted user to ensure the readiness of the system from user's perspective in order to meet their needs and expectations.
The main goal behind acceptance testing is to check that whether the developed software product passes the acceptance norms, defined on the basis of business and user requirements so as to declare it acceptable or non-acceptable for its use by the users. Acceptance testing is also referred to as red box testing.
Generally, it begins with the completion of system testing and before the deployment of software product for its actual use.
However, this type of testing may be applied to other levels, like in smoke testing, which ensures the acceptance of the software build based on its stability for further testing.
Acceptance is a formal type of testing which follows the black-box testing strategy to execute tests on software product. It means that the acceptance testing is performed without having any prior knowledge of the software's internal working and involves feeding of inputs to observe and evaluate the response of the system. Generally, this type of testing involves multiple executions of test cases including following activities.
Broadly, there are two main types of Acceptance Testing
It is an on-site acceptance testing executed at developer's site usually by the group of skilled testers. This is carried out at the end of the software development process and before the handing over of the software product to clients/users. The feedback or the collected result from the alpha testing is significantly used to fix bugs or defects, and it is feasible to improve the usability of the product.
Explore more of this testing in our article Alpha Testing.
Also known by the name field testing, beta testing is an off-site acceptance testing, carried out at client's site by the stakeholder or the end-users. This testing involves the evaluation of the software in the real environment by its potential users before its actual release in the market.
Apart from above, acceptance testing can also be classified as under:
User Acceptance Testing: It involves initial testing of the software application by the employee(s) of the development organization itself before passing it for the final testing, to be carried out at client site by the users.
Operational Acceptance Testing: It is done to ensure the readiness of operational features of the software product by checking the procedures, required for using and maintaining the software product.
Contract Acceptance Testing: Involves the testing of acceptance criteria & requirements that were evolved during the contract and before the delivery of software product.
Regulation Acceptance Testing: This testing is done to ensure that software product abides the rules, regulations, laws and safety standards of the government.
It is expected from every software product that it should function based on the needs of the end users to meet and satisfy their desired demands & expectations, and which can be guaranteed through acceptance testing along with gain of confidence in its user-acceptance, prior to its market release.