Predicting risk of software changes
Top Cited Papers
- 28 August 2002
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in Bell Labs Technical Journal
- Vol. 5 (2) , 169-180
- https://doi.org/10.1002/bltj.2229
Abstract
Reducing the number of software failures is one of the most challenging problems of software production. We assume that software development proceeds as a series of changes and model the probability that a change to software will cause a failure. We use predictors based on the properties of a change itself. Such predictors include size in lines of code added, deleted, and unmodified; diffusion of the change and its component subchanges, as reflected in the number of files, modules, and subsystems touched, or changed; several measures of developer experience; and the type of change and its subchanges (fault fixes or new code). The model is built on historic information and is used to predict the risk of new changes. In this paper we apply the model to 5ESS® software updates and find that change diffusion and developer experience are essential to predicting failures. The predictive model is implemented as a Web-based tool to allow timely prediction of change quality. The ability to predict the quality of change enables us to make appropriate decisions regarding inspection, testing, and delivery. Historic information on software changes is recorded in many commercial software projects, suggesting that our results can be easily and widely applied in practice.This publication has 25 references indexed in Scilit:
- 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
- The5ESSSwitching System: IntroductionAT&T Technical Journal, 1985
- Identifying Error-Prone Software—An Empirical StudyIEEE Transactions on Software Engineering, 1985
- Software errors and complexity: an empirical investigation0Communications of the ACM, 1984
- An Experiment in Software Error Data Collection and AnalysisIEEE Transactions on Software Engineering, 1979
- An Analysis of Competing Software Reliability ModelsIEEE Transactions on Software Engineering, 1978
- A Complexity MeasureIEEE Transactions on Software Engineering, 1976