A critique of software defect prediction models

被引:528
作者
Fenton, NE [1 ]
Neil, M [1 ]
机构
[1] Ctr Software Reliabil, London EC1V 0HB, England
基金
英国工程与自然科学研究理事会;
关键词
software faults and failures; defects; complexity metrics; fault-density; Bayesian Belief Networks;
D O I
10.1109/32.815326
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Many organizations want to predict the number of defects (faults) in software systems, before they are deployed, to gauge the likely delivered quality and maintenance effort. To help in this numerous software metrics and statistical models have been developed, with a correspondingly targe literature. We provide a critical review of this literature and the state-of-the-art. Most of the wide range of prediction models use size and complexity metrics to predict defects. Others are based on testing data, the "quality" of the development process. or take a multivariate approach. The authors of the models have often made heroic contributions to a subject otherwise bereft of empirical studies. However, there are a number of serious theoretical and practical problems in many studies. The models are weak because of their inability to cope with the, as yet, unknown relationship between defects and failures. There are fundamental statistical and data quality problems that undermine model validity. More significantly many prediction models tend to model only part of the underlying problem and seriously misspecify it. To illustrate these points the "Goldilock's Conjecture," that there is an optimum module size, is used to show the considerable problems inherent in current defect prediction approaches. Careful and considered analysis of past and new results shows that the conjecture lacks support and that some models are misleading. We recommend holistic models for software defect prediction, using Bayesian Belief Networks, as alternative approaches to the single-issue models used at present. We also argue for research into a theory of "software decomposition" in order to test hypotheses about defect introduction and help construct a better science of software engineering.
引用
收藏
页码:675 / 689
页数:15
相关论文
共 62 条
[1]   OPTIMIZING PREVENTIVE SERVICE OF SOFTWARE PRODUCTS [J].
ADAMS, EN .
IBM JOURNAL OF RESEARCH AND DEVELOPMENT, 1984, 28 (01) :2-14
[2]  
*AG LTD, BAY BEL NETS
[3]  
AKIYAMA F, 1971, INFORMATION PROCESSI, V71, P353
[4]  
[Anonymous], 1992, PRACTICAL SOFTWARE M
[5]  
[Anonymous], 1991, SOFTW TESTING VERIFI
[6]  
[Anonymous], 1991, APPL SOFTWARE MEASUR
[7]  
[Anonymous], P 3 EUR C SOFTW QUAL
[8]  
Basili V., 1996, IEEE T SOFTWARE ENG
[9]   SOFTWARE ERRORS AND COMPLEXITY - AN EMPIRICAL-INVESTIGATION [J].
BASILI, VR ;
PERRICONE, BT .
COMMUNICATIONS OF THE ACM, 1984, 27 (01) :42-52
[10]   On the use of testability measures for dependability assessment [J].
Bertolino, A ;
Strigini, L .
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, 1996, 22 (02) :97-108