A code-based model for predicting path faults in cobol programs
Robert F. Roggio · 1980
The most significant problem facing the computer profession today is the spiraling costs and continuing unreliability of software. Many studies have shown that the high incidence of errors in software is the underlying reason. Errors can be introduced into a software system throughout its life cycle. But by proper maintenance and testing of software, these errors may be significantly reduced, and resulting software reliability may be greatly improved. A basic understanding of the deficiencies in standard maintenance procedures and in testing activities associated with software development and remedial maintenance dictates that computer professionals become familiar with and subscribe to the use of software tools. Many outstanding diagnostic tools and techniques both automated and manual, support the various phases of the software life cycle. Despite the incurred cost in time and resources, these static and dynamic methodologies may be used to achieve a high degree of software reliability. Static analyzers constitute a class of automated testing tools that inspect source programs to detect certain classes of errors that can be discovered by examining the use of language constructs within a program. As part of this research, a static analyzer was developed to specifically identify infeasible paths (source code to which there is no logical path) in COBOL programs that are currently operational on B3500/B3700/B4700 computer systems. By exercising the static analyzer on over 500 COBOL source programs, data were drawn and a large data base was constructed to support further analysis of the problem. Simple linear as well as multiple variable models based on fourteen program characteristics are used for indicating path faults in COBOL programs. By applying the models to existing COBOL programs, one may readily determine those programs that would benefit from the expenditure of resources for static analysis in attempts to improve overall system reliability.