An Empirical Study of the Fault-Predictive Ability of Software Control-Structure Metrics

Abstract

The increasing cost and complexity of software in recent years is causing growing interest in the development of measurement technology to evaluate, predict and compare software complexity. Metrics can be used throughout all the development cycle providing valuable information to the software developers in order to enhance the final products. The goal of this thesis is to verify empirically the fault-predictive ability of some software complexity metrics and specifically their usefulness during the testing phase. A set of eight programs, varying in length from 1,186 to 2,489 lines of Pascal code with 157 faults identified with specific modules, provided the data for this study. The results of the analysis of the programs using four metrics, cyclomatic complexity, bandwidth, nested complexity and the number of statements, show that control-structure metrics can be effectively used to detect the more fault-prone modules. The nested complexity of the modules seems to be some relation with the number of faults caused by wrong use of variables and overrestrictive input checks. These observations can be particularly useful during the testing phase because testers can use control-structure metrics to predict not only the modules that may cause more problems but also the more frequent types of faults and use the metrics to guide the choice of testing techniques.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Jun 01, 1990
Accession Number
ADA231860

Entities

People

  • Alberto T. De Almeida

Organizations

  • Naval Postgraduate School

Tags

Communities of Interest

  • Space
  • Weapons Technologies

DTIC Thesaurus Topics

  • Analysis Of Variance
  • Bandwidth
  • Classification
  • Computer Programming
  • Computer Programs
  • Computer Science
  • Computers
  • Data Analysis
  • Databases
  • Debugging
  • Department Of Defense
  • Reliability
  • Software Development
  • Software Metrics
  • Software Testing
  • Test And Evaluation
  • Test Methods

Fields of Study

  • Computer science
  • Engineering

Readers

  • Electrical Engineering
  • Software Engineering.
  • Theoretical Analysis.