返回
Continuously Learning Bug Locations
DOI:10.1145/3771929.png)
摘要
En 中文
在软件开发生命周期中,自动定位与缺陷报告相关的有缺陷变更集至关重要。基于深度学习(DL)的技术通过利用代码的结构信息和学习变更集与缺陷报告之间的关联,显示出有前景的结果。然而,由于与变更集相关联的源代码会随时间演变,此类模型的性能往往会因概念漂移而下降。为应对这一挑战,本文评估了在多个子任务设置中应用持续学习(CL)技术进行缺陷定位的潜力(每个子任务处理静态或非静态数据),并将其与一种利用BERT模型的缺陷定位技术、一种基于A2C算法的深度强化学习技术以及一种基于DL的语义缺陷定位函数级交互模型进行比较。此外,我们通过使用逻辑回归来识别和整合最显著的缺陷诱因,增强了CL技术。在七个广泛使用的软件项目上的实证评估表明,在非静态设置下,CL技术相较于DL技术,在平均倒数排名(MRR)方面高出最多61%,在平均精度均值(MAP)方面高出44%,在top@1指标上高出83%,在top@5指标上高出56%,在top@10指标上高出66%。此外,我们证明所研究的CL技术能够有效定位与缺陷报告相关的变更集,同时能够减轻所研究任务中的灾难性遗忘,并在训练期间减少多达5倍的计算开销。我们的发现表明,采用CL进行非静态设置下的缺陷定位具有潜力,并希望这有助于利用CL技术改进软件工程中的缺陷定位活动。
Keyword:
Reinforcement Learning,Continual Learning,Bug Localization,Software Maintenance
期刊
A
IF:
6.2
论文数:
1.2K
被引数:
3.4K
机构
暂无机构信息
引用论文
暂无论文信息

