Returning to the overall model of the development process shown in
Figure 6.3, you can see that acceptance testing is the process of comparing
the program to its initial requirements and the current needs of its
end users. It is an unusual type of test in that it usually is performed by
the program’s customer or end user and normally is not considered the
responsibility of the development organization. In the case of a contracted
program, the contracting (user) organization performs the acceptance
test by comparing the program’s operation to the original contract.
As is the case for other types of testing, the best way to do this is to devise
test cases that attempt to show that the program does not meet the contract;
if these test cases are unsuccessful, the program is accepted. In the case of a program product, such as a computer manufacturer’s operating
system, or a software company’s database system, the sensible customer
first performs an acceptance test to determine whether the product satis-
fies its needs.