摘要
软件开发人员花费大量时间修复项目中的错误。为了简化这一过程,人们提出了错误定位方法来识别可能导致特定错误的源代码文件。先前的工作提出了几种基于相似性的机器学习技术来进行错误定位。尽管这些技术取得了重大进展,但它们没有直接优化评估指标。我们认为,直接优化评估指标可以对错误定位方法的性能做出积极贡献。因此,在本文中,我们利用强化学习 (RL) 技术来直接优化排名指标。我们提出了 RLocator,一种基于强化学习的错误定位方法。我们使用马尔可夫决策过程 (MDP) 来制定 RLocator,以直接优化评估指标。我们介绍了该技术,并基于来自六个广受欢迎的 Apache 项目的 8,316 个错误报告的基准数据集对其进行了实验评估。我们的评估结果表明,RLocator 的平均倒数秩 (MRR) 为 0.62,平均精度 (MAP) 为 0.59,前 1 名得分 为 0.46。我们将 RLocator 与两种最先进的错误定位工具 FLIM 和 BugLocator 进行了比较。我们的评估表明,RLocator 在两个方面都显著优于这两种方法,MAP 提高了 38.3%,MRR 提高了 36.73%,前 K 名指标提高了 23.68%。这些发现强调,直接优化评估指标极大地有助于提高错误定位问题的性能。