Qualitative Methods in Empirical Studies of Software Engineering
IEEE Transactions on Software Engineering
A case study in root cause defect analysis
Proceedings of the 22nd international conference on Software engineering
An analysis of errors and their causes in system programs
Proceedings of the international conference on Reliable software
Conducting On-line Surveys in Software Engineering
ISESE '03 Proceedings of the 2003 International Symposium on Empirical Software Engineering
Predicting the Location and Number of Faults in Large Software Systems
IEEE Transactions on Software Engineering
The Top Ten List: Dynamic Fault Prediction
ICSM '05 Proceedings of the 21st IEEE International Conference on Software Maintenance
Proceedings of the 28th international conference on Software engineering
Predicting Faults from Cached History
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Guide to Advanced Empirical Software Engineering
Guide to Advanced Empirical Software Engineering
Proceedings of the 30th international conference on Software engineering
Evaluating the Quality of Open Source Software
Electronic Notes in Theoretical Computer Science (ENTCS)
How we refactor, and how we know it
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
The secret life of bugs: Going past the errors and omissions in software repositories
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Fair and balanced?: bias in bug-fix datasets
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Information needs in bug reports: improving cooperation between developers and users
Proceedings of the 2010 ACM conference on Computer supported cooperative work
Has the bug really been fixed?
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Using information fragments to answer the questions developers ask
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Design, discussion, and dissent in open bug reports
Proceedings of the 2011 iConference
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Automated Behavioral Testing of Refactoring Engines
IEEE Transactions on Software Engineering
Expectations, outcomes, and challenges of modern code review
Proceedings of the 2013 International Conference on Software Engineering
Injecting mechanical faults to localize developer faults for evolving software
Proceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications
Hi-index | 0.00 |
When software engineers fix bugs, they may have several options as to how to fix those bugs. Which fix they choose 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 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, data from 6 bug triage meetings, and a survey filled out by 326 engineers, we found 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.