  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.
