Predicting fault incidence using software change history
Top Cited Papers
- 1 July 2000
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Software Engineering
- Vol. 26 (7) , 653-661
- https://doi.org/10.1109/32.859533
Abstract
This paper is an attempt to understand the processes by which software ages. We define code to be aged or decayed if its structure makes it unnecessarily difficult to understand or change and we measure the extent of decay by counting the number of faults in code in a period of time. Using change management data from a very large, long-lived software system, we explore the extent to which measurements from the change history are successful in predicting the distribution over modules of these incidences of faults. In general, process measures based on the change history are more useful in predicting fault rates than product metrics of the code: For instance, the number of times code has been changed is a better indication of how many faults it will contain than is its length. We also compare the fault rates of code of various ages, finding that if a module is, on the average, a year older than an otherwise similar module, the older module will have roughly a third fewer faults. Our most successful model measures the fault potential of a module as the sum of contributions from all of the times the module has been changed, with large, recent changes receiving the most weight.Keywords
This publication has 18 references indexed in Scilit:
- The software maintenance project effort estimation model based on function pointsJournal of Software Maintenance and Evolution: Research and Practice, 2003
- Reexamining the fault density component size connectionIEEE Software, 1997
- Predicting fault-prone software modules in telephone switchesIEEE Transactions on Software Engineering, 1996
- Regression modelling of software quality: empirical investigationInformation and Software Technology, 1990
- An analysis of several software defect modelsIEEE Transactions on Software Engineering, 1988
- Software errors and complexity: an empirical investigation0Communications of the ACM, 1984
- Models and Measurements for Quality Assessment of SoftwareACM Computing Surveys, 1979
- A Complexity MeasureIEEE Transactions on Software Engineering, 1976
- The source code control systemIEEE Transactions on Software Engineering, 1975
- SOFTWARE RELIABILITY RESEARCHPublished by Elsevier ,1972