Testing is a set of activities that can be planned in advance
and conducted systematically. For this reason a template for
software testing -- a set of steps into which we can place specific
test case design techniques and testing methods -- should be
defined for the software process.
A number of software testing strategies have been proposed
in the literature. All provide the software developer with a template
for testing and all have the following generic characteristics.