To be aware of the major software testing techniques
To see how different test objectives lead to the selection of different testing techniques
To appreciate a classification of testing techniques, based on the objectives they try to reach
To be able to compare testing techniques with respect to their theoretical power as well as their practical value
To understand the role and contents of testing activities in different life cycle phases
To be aware of the contents and structure of the test documentation
To be able to distinguish different test stages
To be aware of some mathematical models to estimate the reliability of software
Testing should not be confined to merely executing a system to see whether a given input yields the correct output. During earlier phases, intermediate products can, and should, be tested as well. Good testing is difficult. It requires careful planning and documentation. There exist a large number of test techniques. We discuss the major classes of test techniques with their characteristics.
Suppose you are asked to answer the kind of questions posed in (Baber, 1982):
Would you trust a completely automated nuclear power plant?
Would you trust a completely automated pilot whose software was written by yourself? What if it was written by one of your colleagues?
Would you dare to write an expert system to diagnose cancer? What if you are personally held liable in a case where a patient dies because of a malfunction ...