Page 127 - 《软件学报》2025年第4期
P. 127
曹帅 等: 深度学习在基于信息检索的缺陷定位中的应用综述 1533
定位技术存在方法局限性的观点. Zamfirov [27] 对不同的缺陷定位技术进行文献回顾, 识别、分类和分析现有的缺
陷定位方法和工具, 从工业角度分析了这些方法与工具的优缺点.
由于深度学习近两年才被广泛应用于缺陷定位, 并且取得了快速的发展, 目前主流的方法均基于深度学习.
图 3 总结了目前使用深度学习的基于信息检索的缺陷定位方法的通用框架. 首先对缺陷报告和源代码文件中的文
本进行预处理, 剔除源文件和缺陷报告中存在的无用字符, 并将组合词拆解. 然后分别将缺陷报告和源文件进行编
码表征转化为向量, 接着通过深度学习模型提取缺陷报告和源文件向量的深层语义特征与其他特征. 最后将提取
的特征进行融合, 根据缺陷报告与源文件的相似度进行排序, 给出几个可能导致缺陷发生的代码模块完成缺陷
定位.
缺陷报告
缺陷报告编码表征
预
处 特征提取层 特征融合层 相关性排序
理
源文件 源文件编码表征
究问题旨在从定位粒度和可迁移性两方面对比使用深度学习技术的基于信息检索的缺陷定位方法和传统的基于
缺陷提交
额外信息
图 3 缺陷定位通用流程图
然而, 该类技术当前依然存在各种挑战与技术瓶颈, 仍是学术界和工业界需明确探索和研究的开放课题. 为了
促进深度学习的基于信息检索的缺陷定位技术的研究与发展, 加深研究人员对该类研究领域及问题的认知, 同时
考虑到现有的工作尚未系统性针对深度学习在缺陷定位中的研究做出梳理分析与讨论, 本工作归纳和梳理了现有
应用深度学习的基于信息检索的缺陷定位方法中采用的评估指标、数据集、信息编码表征方法和具体深度模型,
并指出现有研究不足以及未来研究方向. 具体而言, 本文通过回答 4 个研究问题 (research questions, RQ) 组织主要
综述内容, 以期为相关研究人员快速了解领域研究进展和未来发展动向提供便利. 各研究问题如下.
RQ1. 使用深度学习技术的基于信息检索的缺陷定位方法对数据集和方法评估的要求是否与传统方法存在
差别?
深度学习技术一般需要使用大规模数据训练模型, 也需要使用验证数据和测试数据, 并且要使用特定的深度
学习模型的评估指标. 因此, 本研究问题旨在探究应用深度学习技术后相比传统的基于信息检索的方法在用于构
建缺陷定位方法的数据、用于评估方法的测试数据及评价指标等方面有何区别, 以及现有方法是如何应对深度学
习技术在这些方面带来的变化.
RQ2. 使用深度学习技术后是否能提升基于信息检索的缺陷定位方法的效果?
传统基于检索的缺陷定位研究中将需要定位的缺陷位置设置成了不同的粒度. 使用深度学习技术后同样是在
这些粒度上定位缺陷的位置. 同时, 使用深度学习的基于信息检索的缺陷定位方法训练得到的模型其性能会受到
训练数据的影响, 在某些项目的数据上训练得到的模型被应用到其他项目上时可能会导致性能的损失. 因此, 本研
信息检索的缺陷定位方法的性能.
RQ3. 使用深度学习的基于信息检索的缺陷定位方法在信息编码表示和特征提取中采用的具体方案有哪些?
使用深度学习的基于信息检索的缺陷定位方法的模型核心在信息编码表示和对信息的特征提取中. 本研究问
题旨在梳理信息编码表示的具体方案和特征提取的具体方案. 通过分析不同方案, 对比不同方法间深度学习应用
于基于信息检索缺陷定位的方法之间的差别.
RQ4. 在所有被本文统计的方法中最先进的方法?