Affiliation:
1. IBM Thomas J. Watson Research Center, Yorktown Heights, New York
Abstract
This paper is a nonprogrammers view of design principles which are considered essential to testability 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.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Reference11 articles.
1. Letters to the editor: go to statement considered harmful
2. Mills H. D. "Mathematical Foundations for Structured Programming: FSC 72-6012 Feb. 1972. Mills H. D. "Mathematical Foundations for Structured Programming: FSC 72-6012 Feb. 1972.
Cited by
2 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. A new approach for software testability analysis;Proceedings of the 28th international conference on Software engineering;2006-05-28
2. Software quality assurance through prototyping and automated testing;Information and Software Technology;1990-01