DeepTriage:探索深度学习在缺陷分派中的有效性
软件工程
2018-01-08 v1 机器学习
摘要
对于给定的软件缺陷报告,识别可能修复该缺陷的合适开发人员是缺陷分派过程的主要任务。大多数缺陷跟踪系统中都存在缺陷标题(摘要)和详细描述。自动缺陷分派算法可表述为一个分类问题,以缺陷标题和描述为输入,将其映射到可用开发人员(类别)之一。主要挑战在于缺陷描述通常包含自由非结构化文本、代码片段和堆栈跟踪的组合,使输入数据含有噪声。现有的词袋(BOW)特征模型未考虑非结构化文本中可用的句法和顺序词信息。我们提出了一种新颖的缺陷报告表示算法,使用基于注意力的深度双向循环神经网络(DBRNN-A)模型,以无监督方式从长词序列中学习句法和语义特征。然后使用基于 DBRNN-A 的缺陷表示而非 BOW 特征来训练分类器。注意力机制使模型能够在长词序列(如缺陷报告中)学习上下文表示。为了提供大量数据以学习特征学习模型,我们利用未修复的缺陷报告(开源缺陷跟踪系统中约 70% 的缺陷),这些在先前研究中被完全忽略。另一贡献是通过提供源代码并创建来自三个开源缺陷跟踪系统的公共基准缺陷报告数据集使本研究可复现:Google Chromium(383,104 份缺陷报告)、Mozilla Core(314,388 份缺陷报告)和 Mozilla Firefox(162,307 份缺陷报告)。我们通过实验将我们的方法与 BOW 模型和机器学习方法进行比较,观察到 DBRNN-A 提供了更高的 rank-10 平均准确率。
引用
@article{arxiv.1801.01275,
title = {DeepTriage: Exploring the Effectiveness of Deep Learning for Bug Triaging},
author = {Senthil Mani and Anush Sankaran and Rahul Aralikatte},
journal= {arXiv preprint arXiv:1801.01275},
year = {2018}
}