Bug triage is an essential task in software maintenance phase. It assigns developers (fixers) to bug reports to fix them. This process is performed manually by a triager, who analyzes developers profiles and submitted bug reports to make suitable assignments. Bug triaging process is time consuming thus automating this process is essential to improve the quality of software. Previous work addressed triaging problem either as an information retrieval or classification problem. This paper tackles this problem as a resource allocation problem, that aims at the best assignments of developers to bug reports, that reduces the total fixing time of the newly submitted bug reports, in addition to the even distribution of bug reports over developers. In this paper, a combination of matrix factorization and Gale Shapely algorithm, supported by the differential evolution is firstly introduced to optimize the total fix time and normalize developers work load. Matrix factorization is used to establish a recommendation system for Gale-Shapley to make assignment decisions. Differential evolution provides the best set of weights to build developers score profiles. The proposed approach is assessed over three repositories, Linux, Apache and Eclipse. Experimental results show that the proposed approach reduces the bug fixing time, in comparison to the manual triage, by 80.67%, 23.61% and 60.22% over Linux, Eclipse and Apache respectively. Moreover, the workload for the developers is uniform.
翻译:错误处理是软件维护阶段的一项基本任务。 它指派开发者( 密件者) 进行错误报告, 以修复它们。 此进程由一位三驾马车手动完成, 他分析开发者配置, 并提交错误报告, 以便做出合适的任务。 错误处理程序耗时, 因此自动处理程序对于提高软件质量至关重要 。 先前的工作将问题作为信息检索或分类问题处理 。 本文将这一问题作为一个资源分配问题来解决, 目的是让开发者最佳地分配错误报告, 从而减少新提交的错误报告的总固定时间, 除了在开发者之间均衡分配错误报告之外, 。 在本文中, 由差异演化支持的矩阵因因子化和 Gale Shapely 算法的组合, 以优化总固定时间和正常开发者工作量。 矩阵化用于为 Gale- Shapley 建立推荐系统以做出任务决定。 差异演化为构建开发者分数的最佳分数组。 提议的方法在三个仓库、 Linux、 Apache 和 Eclips 实验结果中分别显示, 80- 将 E lifer 22 和 Appil 格式 分别降低 和 Appilxilxill 。