Page 145 - 《软件学报》2025年第4期
P. 145
曹帅 等: 深度学习在基于信息检索的缺陷定位中的应用综述 1551
些信息还没有被已经提出的方法使用. 此外, 现有工作提出考虑相似缺陷对应的修复源文件, 但仅仅将该相似性体
现为得分, 对于使用深度学习模型的基于信息检索的缺陷定位方法, 还可以将相同或相似的软件项目中, 相似缺陷
的缺陷报告内容及修复源文件名等历史缺陷定位信息作为检索增强文本, 为方法提供更充足的信息. 在未来的工
作中, 尝试将更多常用信息检索特征融入使用深度学习的基于信息检索的缺陷定位方法中, 并增加对缺陷报告中
多模态信息进行编码表征处理与特征提取, 或者, 将历史缺陷定位信息作为深度学习模型输入提供, 可能会使方法
具有更好的定位结果.
6.2.5 采用更有效的代码表征方案
本文在第 4 节介绍了代码的多种表征方式, 包括序列、语法树与图, 这些表征方式从不同角度抽象了代码特
征. 未来的基于信息检索的缺陷定位方法可以探究更新颖的代码表征方式, 或借鉴信息检索任务中被提出但未曾
被信息检索方法采用的代码表征方案. 如 Ding 等人 [95] 提出的 CONCORD 方法通过遮罩语言模型、对比学习、
抽象语法树预测这 3 个预训练任务, 从序列结构的代码文本中学习到符合语法结构等特征的代码表征, 使相似克
隆代码段的表征更相似, 从而在下游任务上提升表现. Zeng 等人 [96] 提出的 deGraphCS 采用新颖的基于变量的流
图编码代码结构, 更好地表示变量间的依赖关系. 上述方法并非针对基于信息检索的缺陷定位任务提出, 但更好地
实现了代码结构与内容的编码表征, 这意味着转换后的代码表征含有更丰富的信息, 可能更好地与缺陷报告的表
征匹配. 后续工作也可以尝试聚合代码的不同表征, 或探究何种表征方案更适合进行基于信息检索的缺陷定位
任务.
7 总结与未来工作展望
随着人工智能技术的飞速发展, 基于信息检索的缺陷定位领域也迎来了前所未有的机遇和挑战. 深度学习模
型以其强大的特征提取能力, 赋予了基于信息检索的缺陷定位方法更为精确和高效的定位能力. 深度学习模型不
仅推动了基于信息检索的缺陷定位方法在特征提取方面的创新, 使得缺陷报告和源代码之间的语义匹配更加准
确, 提高了缺陷定位的准确率, 降低了误报率, 还推动了基于信息检索的缺陷定位方法在处理大规模数据集方面的
能力提升, 在面对随软件项目扩展而指数级增长的数据量时, 能够高效地处理并在短时间内得出准确的定位结果.
在人工智能技术的帮助下, 软件开发人员能够更快地定位和修复缺陷, 最终提升了软件开发的效率和质量.
本文对 52 篇将深度学习应用于基于信息检索的缺陷定位的论文做了调研, 整理了数据集、数据集处理方式
和评价指标. 对使用深度学习的基于信息检索的缺陷定位方法从可迁移性和方法效果进行统计分析, 并从信息编
码表征和特征提取技术两个重要步骤进行详细介绍与分析. 可以发现, 将深度学习模型引入基于信息检索的缺陷
定位方法, 可以提取出缺陷报告和源代码之间的深层特征, 使得新方法可以将缺陷报告和源文件之间更准确地语
义匹配, 优于传统基于信息检索的缺陷定位方法. 阅读本篇综述, 可以针对现有的将深度学习应用于基于信息检索
的缺陷定位的方法的不足与边界进行改进, 尝试构建更先进的测评数据集或尝试提出性能更好的缺陷定位方法.
在统计 52 篇论文的工作中, 我们在确定每个类别的最先进方法时, 发现很难对现有方法进行统一的测评, 因
此我们准备从准确率、效率、数据集和评价指标等方面作为研究问题对现有方法进行证实研究, 并尝试利用源文
件中更多的结构等其他信息, 融合更多特征, 提出定位粒度低, 定位效果更好的使用深度学习的基于信息检索的缺
陷定位方法.
References:
[1] Tassey G. The economic impacts of inadequate infrastructure for software testing. Planning Report 02-3, Gaithersburg: National Institute
of Standards and Technology, 2002.
[2] Jones JA. Semi-automatic Fault Localization. Atlanta: Georgia Institute of Technology, 2008.
[3] Bissyandé TF, Réveillère L, Lawall JL, Muller G. Diagnosys: Automatic generation of a debugging interface to the Linux kernel. In:
Proc. of the 27th IEEE/ACM Int’l Conf. on Automated Software Engineering. Essen: ACM, 2012. 60–69. [doi: 10.1145/2351676.
2351686]
[4] Britton T, Jeng L, Carver G, Cheak P, Katzenellenbogen T. Reversible debugging software. Technical Report, Cambridge: University of