Objectives

This section must be regarded as a preliminary to the introduction of a framework for testing object-oriented programs. It discusses the notion of software quality, including structural criteria, and the various aspects of testing, including strategical, tactical and operational issues. The differences between black box and white box testing are explained, and illustrated with an example. Also, the various aspects of the test cycle are briefly described. Finally, an example is given demonstrating the need to retest when extending a program by inheritance.

Points to emphasize

Hints

It is important to stress that exhaustive testing is generally impossible. Testing is intrinsically a weak method of software validation. An adequate design method and protocols to prevent errors seems to be a better way in which to develop reliable software.

Questions

  1. What aspects can you distinguish with respect to software quality?
  2. Give an example demonstrating how inheritance may affect tested code.

Comments

You may consult the literature to elaborate on the issues presented in this section.