Bug-fix time prediction models: can we do better?
Proceedings of the 8th Working Conference on Mining Software Repositories
Fuzzy set-based automatic bug triaging (NIER track)
Proceedings of the 33rd International Conference on Software Engineering
Using software evolution history to facilitate development and maintenance
Proceedings of the 33rd International Conference on Software Engineering
Fuzzy set and cache-based approach for bug triaging
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Developer prioritization in bug repositories
Proceedings of the 34th International Conference on Software Engineering
Graph-based analysis and prediction for software evolution
Proceedings of the 34th International Conference on Software Engineering
Inferring developer expertise through defect analysis
Proceedings of the 34th International Conference on Software Engineering
Learning to classify bug reports into components
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Learning from evolving data streams: online triage of bug reports
EACL '12 Proceedings of the 13th Conference of the European Chapter of the Association for Computational Linguistics
Categorizing bugs with social networks: a case study on four open source software communities
Proceedings of the 2013 International Conference on Software Engineering
Bug resolution catalysts: identifying essential non-committers from bug repositories
Proceedings of the 10th Working Conference on Mining Software Repositories
Understanding the meaning of bug attributes and prediction models
Proceedings of the 5th IBM Collaborative Academia Research Exchange Workshop
International Journal of Open Source Software and Processes
Topic-based, time-aware bug assignment
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
Software bugs are inevitable and bug fixing is a difficult, expensive, and lengthy process. One of the primary reasons why bug fixing takes so long is the difficulty of accurately assigning a bug to the most competent developer for that bug kind or bug class. Assigning a bug to a potential developer, also known as bug triaging, is a labor-intensive, time-consuming and fault-prone process if done manually. Moreover, bugs frequently get reassigned to multiple developers before they are resolved, a process known as bug tossing. Researchers have proposed automated techniques to facilitate bug triaging and reduce bug tossing using machine learning-based prediction and tossing graphs. While these techniques achieve good prediction accuracy for triaging and reduce tossing paths, they are vulnerable to several issues: outdated training sets, inactive developers, and imprecise, single-attribute tossing graphs. In this paper we improve triaging accuracy and reduce tossing path lengths by employing several techniques such as refined classification using additional attributes and intra-fold updates during training, a precise ranking function for recommending potential tossees in tossing graphs, and multi-feature tossing graphs. We validate our approach on two large software projects, Mozilla and Eclipse, covering 856,259 bug reports and 21 cumulative years of development. We demonstrate that our techniques can achieve up to 83.62% prediction accuracy in bug triaging. Moreover, we reduce tossing path lengths to 1.5–2 tosses for most bugs, which represents a reduction of up to 86.31% compared to original tossing paths. Our improvements have the potential to significantly reduce the bug fixing effort, especially in the context of sizable projects with large numbers of testers and developers.