A new approach to program testing
James C. King
International Conference on Reliable Software 1975
This paper is a nonprogrammers view of design princiPleS which are considered essential to test ability of complex structures. The principles are related to the programming problem. The basic problems in verifying the function of any complex structure derive from: inadequate specification of function, the very large number of possible structures (most of which are "mistakes") and the very large number of possible outputs for specified and unspecified inputs. Present trends in programming techniques are towards various forms of controlled modularity. If modularity is controlled so that the function of a module is independent of the source of its input, the destination of its output, and the past history of use of the module, the difficulty of testing the modules and structures assembled from the modules is greatly reduced. Multilevel modularity also powerfully reduces the complexity of modules and structures. Controlled modularity requires that the separation of certain variables be rigorously maintained. Controlled branching also reduces complexity and testing requirements. These are examined with mathematical examples and it is concluded that if the proper principles of controlled modularity are observed, it should be technically feasible to design software to achieve specified function and that under certain conditions it should be economically feasible to test software so designed to practical levels of accuracy and reliability.
James C. King
International Conference on Reliable Software 1975
Barbara Liskov, Stephen Zilles
International Conference on Reliable Software 1975
N.P. Edwards, H. Tellier
ACM Annual Conference 1974
N.P. Edwards
ACM SIGPLAN Notices