An industrial study on the risk of software changes
Authors:
Open Access
- 11 November 2012
- conference paper
- Published by Association for Computing Machinery (ACM)
- p. 1-11
Abstract
Modelling and understanding bugs has been the focus of much of the Software Engineering research today. However, organizations are interested in more than just bugs. In particular, they are more concerned about managing risk, i.e., the likelihood that a code or design change will cause a negative impact on their products and processes, regardless of whether or not it introduces a bug. In this paper, we conduct a year-long study involving more than 450 developers of a large enterprise, spanning more than 60 teams, to better understand risky changes, i.e., changes for which developers believe that additional attention is needed in the form of careful code or design reviewing and/or more testing. Our findings show that different developers and different teams have their own criteria for determining risky changes. Using factors extracted from the changes and the history of the files modified by the changes, we are able to accurately identify risky changes with a recall of more than 67%, and a precision improvement of 87% (using developer specific models) and 37% (using team specific models), over a random model. We find that the number of lines and chunks of code added by the change, the bugginess of the files being changed, the number of bug reports linked to a change and the developer experience are the best indicators of change risk. In addition, we find that when a change has many related changes, the reliability of developers in marking risky changes is negatively affected. Our findings and models are being used today in practice to manage the risk of software projects.Keywords
This publication has 30 references indexed in Scilit:
- Don't touch my code!2011
- Choosing software metrics for defect prediction: an investigation on feature selection techniquesSoftware: Practice and Experience, 2011
- What makes a good bug report?2008
- Predicting risk of software changesBell Labs Technical Journal, 2002
- Classification and evaluation of defects in a project retrospectiveJournal of Systems and Software, 2002
- Predicting fault incidence using software change historyIEEE Transactions on Software Engineering, 2000
- Predicting fault-prone software modules in telephone switchesIEEE Transactions on Software Engineering, 1996
- A validation of object-oriented design metrics as quality indicatorsIEEE Transactions on Software Engineering, 1996
- A metrics suite for object oriented designIEEE Transactions on Software Engineering, 1994
- Estimating the Error Rate of a Prediction Rule: Improvement on Cross-ValidationJournal of the American Statistical Association, 1983