A Release-Aware Bug Triaging Method Considering Developers' Bug-Fixing Loads

Yutaro KASHIWA  Masao OHIRA  

IEICE TRANSACTIONS on Information and Systems   Vol.E103-D   No.2   pp.348-362
Publication Date: 2020/02/01
Publicized: 2019/10/25
Online ISSN: 1745-1361
DOI: 10.1587/transinf.2019EDP7152
Type of Manuscript: PAPER
Category: Software Engineering
bug triage,  optimization,  project management,  repository mining,  machine learning,  

Full Text: PDF>>
Buy this Article

This paper proposes a release-aware bug triaging method that aims to increase the number of bugs that developers can fix by the next release date during open-source software development. A variety of methods have been proposed for recommending appropriate developers for particular bug-fixing tasks, but since these approaches only consider the developers' ability to fix the bug, they tend to assign many of the bugs to a small number of the project's developers. Since projects generally have a release schedule, even excellent developers cannot fix all the bugs that are assigned to them by the existing methods. The proposed method places an upper limit on the number of tasks which are assigned to each developer during a given period, in addition to considering the ability of developers. Our method regards the bug assignment problem as a multiple knapsack problem, finding the best combination of bugs and developers. The best combination is one that maximizes the efficiency of the project, while meeting the constraint where it can only assign as many bugs as the developers can fix during a given period. We conduct the case study, applying our method to bug reports from Mozilla Firefox, Eclipse Platform and GNU compiler collection (GCC). We find that our method has the following properties: (1) it can prevent the bug-fixing load from being concentrated on a small number of developers; (2) compared with the existing methods, the proposed method can assign a more appropriate amount of bugs that each developer can fix by the next release date; (3) it can reduce the time taken to fix bugs by 35%-41%, compared with manual bug triaging;