The Design of Bug Fixes – ICSE 2013

by Emerson Murphy-Hill, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan

When software engineers fix bugs, they may have several options as to how to fix those bugs. Which fix is chosen has many implications, both for practitioners and researchers: What is the risk of introducing other bugs during the fix? Is the bug fix in the same code that caused the bug? Is the change fixing the cause or just covering a symptom? In this paper, we investigate the issue of alternative fixes to bugs and present an empirical study of how engineers make design choices about how to fix bugs. Based on qualitative interviews with 40 engineers working on a variety of products, 6 bug triage meetings, and a survey filled out by 326 engineers, we found that there are a number of factors, many of them non-technical, that influence how bugs are fixed, such as how close to release the software is. We also discuss several implications for research and practice, including ways to make bug prediction and localization more accurate.

Download as PDF.

Reference

Emerson Murphy-Hill, Thomas Zimmermann, Christian Bird, Nachiappan Nagappan. The Design of Bug Fixes. In Proceedings of the 35th International Conference on Software Engineering (ICSE 2013), San Francisco, CA, USA, May 2013.

BibTeX Entry

@inproceedings{murphyhill-icse-2013,
    title = "The Design of Bug Fixes",
    author = "Emerson Murphy-Hill and Thomas Zimmermann and Christian Bird and Nachiappan Nagappan",
    year = "2013",
    month = "May",
    booktitle = "Proceedings of the 35th International Conference on Software Engineering",
    location = "San Francisco, CA, USA",
}