Fixing bugs in a timely manner lowers various potential costs in software maintenance. However, manual bug fixing scheduling can be time-consuming, cumbersome, and error-prone. In this paper, we propose the Schedule and Dependency-aware Bug Triage (S-DABT), a bug triaging method that utilizes integer programming and machine learning techniques to assign bugs to suitable developers. Unlike prior works that largely focus on a single component of the bug reports, our approach takes into account the textual data, bug fixing costs, and bug dependencies. We further incorporate the schedule of developers in our formulation to have a more comprehensive model for this multifaceted problem. As a result, this complete formulation considers developers' schedules and the blocking effects of the bugs while covering the most significant aspects of the previously proposed methods. Our numerical study on four open-source software systems, namely, EclipseJDT, LibreOffice, GCC, and Mozilla, shows that taking into account the schedules of the developers decreases the average bug fixing times. We find that S-DABT leads to a high level of developer utilization through a fair distribution of the tasks among the developers and efficient use of the free spots in their schedules. Via the simulation of the issue tracking system, we also show how incorporating the schedule in the model formulation reduces the bug fixing time, improves the assignment accuracy, and utilizes the capability of each developer without much comprising in the model run times. We find that S-DABT decreases the complexity of the bug dependency graph by prioritizing blocking bugs and effectively reduces the infeasible assignment ratio due to bug dependencies. Consequently, we recommend considering developers' schedules while automating bug triage.
翻译:及时修正错误会降低软件维护方面的各种潜在成本。 但是, 人工错误修正时间安排可能会耗费时间、 繁琐和容易出错。 在本文中, 我们提议使用排程和依赖性识别错误错误三重( S- DABT), 这是一种错误三重方法, 使用整数编程和机器学习技术来向合适的开发者分配错误。 与以往主要侧重于错误报告单一部分的工作不同, 我们的方法会考虑到文本数据、 错误修正成本和错误依赖性。 我们进一步将开发者的时间表纳入我们的配方, 以便有一个更全面的模型来应对这一多方面的问题。 因此, 完整的配制会考虑到开发者的时间表以及错误的阻断效果。 我们用四个开源软件系统的数字研究, 包括 EclipsseJDT、 Libreoffice、 GCC 和 Mozilla, 表明, 计及设置者错误计时的计时, 将找到平均错误修正时间。 我们发现, S- DABT 会降低开发者的进度, 导致一个高水平的开发者在不全面模型中, 将错误差分数 。