Abstract

This chapter examines ways in which software engineers have sought to achieve software reliability through testing. Some of these efforts have succeeded, while others have not. Practical testing techniques fall into two classes, those which rely heavily on knowledge of the application domain and those which rely on exploitation of the structure of the program. The choice between these two approaches is often determined by the characteristics of the problem and not by the software producers. The use of structural testing techniques is well developed, exploiting both the control-flow and data-flow properties of software. External testing techniques tend to emphasize the exploitation of functionality. This is unfortunate because there appears to be no agreement as to what constitutes a function. While mathematicians are clear on this issue, it must be noted that natural languages such as English have no simple method for expressing functionality. At present the only practical way to establish whether a piece of software satisfies a given reliability need is to quantify the existing and future levels of testing and establish the link through experience.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call