What is Acceptance Testing?
Acceptance testing is normally the responsibility of the intended customer of the software under development. The testing is typically performed prior to the customer officially accepting the software product. The aim of this type of testing is not actually to find defects, but to provide a level of confidence in the software and to act as an assessment of the products readiness for deployment. A company may have paid a significant sum of money to a software development company to provide them with a product. So it is in the receiving company's best interests to perform some kind of test to ensure the product does what it was intended to do, and operates as expected.
This type of testing may not be the last phase of software testing though, as depending on the software/system, an integration test may be required too. This type of software testing is also valid at other stages of the software development lifecycle, for example; A COTS(Commercial Off The Shelf) product can be Acceptance Tested when it is installed or integrated. Also, Acceptance Testing of a functional enhancement can be performed before a System Test, or Acceptance testing of the usability of a component can be done during the component testing phase.
Unlike most other forms of software testing, the test cases are known to both customer and developer. The test cases can be created by either the developer or the customer, but typically both parties will be involved in the test case reviews. The type of testing techniques employed in this type of software testing are traditionally 'Black-Box', as there is normally a high level of customer/end user input.
Acceptance Testing can also be considered to be a category in itself, as there are other types of software testing that belong to it, such as:
Operational Acceptance Testing
This type of testing typically revolves around the tasks associated with a System Administrator such as; disaster recovery, backups/restores, maintenance tasks and security vulnerabilities. This type of testing is often referred to as operational readiness testing.
User Acceptance Testing
This type of software testing is typically performed by business users. The product will be fully developed at this stage, and testing will be done using real-world usage scenarios and a cross-section of typical end-user profiles may be used.
Contract and regulation acceptance testing
Contract acceptance testing is typically performed against a set of criteria documented within the contract for the production of the software. This criteria should be defined when the contract is actually agreed upon. Similarly, regulation acceptance testing is executed against regulations that need be adhered to, such safety or government regulations.
Author: James S Clark