Go to previous article – Unit Testing introduction
What is Acceptance Testing?
Acceptance testing is a form of testing that tests the acceptability of a piece of software. It is also an umbrella term along with “customer testing” as they are used interchangeably.
The purpose of this testing method is to evaluate how the system complies with the requirements set for it and to assess if it is ready and acceptable (hence the term “acceptance” testing) to be delivered to the client/end-user.
In the non-software world, this process may require chemical or physical tests, but for the software world (and our purposes in this article) this process will involve the use of black-box system testing prior to its delivery to the market.
With acceptance testing the behavior of the software product is described, and the results are generally given as a pass or fail. While the results from a completed test may indicate a failure, this oftentimes does not prove there is a defect with the software product.
Black-box testing is the method of choice when dealing with acceptance testing as there is not a specific strict procedure that has to be followed.
- The general procedure starts off with the tester forming a test plan, preparing the materials and data needed to execute the test and then conducting a final review of the plan.
- The next step is to prepare the checklist and understand the requirements, reviewing them and making sure the test is set up properly.
- Finally, the test may be performed.
Now, keep in mind that this testing is only performed after system testing and before the system is available for actual use; therefore, acceptance testing is conducted on software that is in an in-between state of function and non-function.
There are a few types of acceptance testing, and which type is being performed depends on who is doing the testing:
- User acceptance testing– This is performed by the end users; the end users are typically the customers of the software themselves.
- Internal acceptance testing– This is usually performed by the members of the organization that created the software, but not by the actual creators themselves.
- Customer acceptance testing– If software was developed by a company but owned by a customer, this type of testing may take place. In this case it is the customer himself/herself who does the testing.
- Operational acceptance testing– This is also known as operational readiness testing, as the testing here is done to ensure the processes of the software are ready to be used by the public. Checks are done on back-up facilities, maintenance procedures, security procedures, and other performance related aspects to the software.
Acceptance testing has many benefits along with a few downfalls– like any testing procedure. One benefit is that this testing encourages developers and customers collaborating closely with one another to create a product mutually agreed upon and eventually adequate for the public. On the other hand, the test results may be difficult to understand and convey between the customer and tester.
To read more about Software testing methodologies like:
Agile testing strategy and Regression testing