文档详情

基于深度学习的软件缺陷定位方法研究.pdf

发布:2025-04-22约10.87万字共67页下载文档
文本预览下载声明

基于深度学习的软件缺陷定位方法研究

摘要

缺陷定位是软件工程领域中至关重要的研究课题之一。传统的基于信息检索的软件

缺陷定位方法(IRBL)能在一定程度上根据缺陷报告定位到缺陷源代码文件,但是缺陷

报告由自然语言组成,源代码由编程语言组成,两者之间存在着语义鸿沟,而传统的

IRBL无法有效缓解二者之间的语义鸿沟,因此IRBL存在着准确率不高的问题。近年

来,越来越多的研究尝试利用深度学习技术,通过大量数据的学习分析来弥补IRBL的

不足。为了提升缺陷定位方法的准确率以及减少缺陷报告质量问题带来的影响,本文在

研究如何缓解词汇不匹配问题的同时,通过挖掘更多的数据特征来辅助提升缺陷定位方

法的准确率。并通过结合多角度的信息检索特征加强缺陷报告和源代码之间的关联性表

示,缓解参差不齐的缺陷报告质量对缺陷定位带来的影响。为此,本文提出基于深度学

习的软件缺陷定位方法,主要工作如下:

为了缓解缺陷报告和源代码之间的语义鸿沟以及传统的基于深度学习的缺陷定位

方法只考虑文本特征而忽略代码结构特征的问题,提出了基于双层语义特征融合的软件

缺陷定位模型(DSFFBL)。在DSFFBL中,首先提出浅层代码语义特征提取模型,通

过将原文本拆分输入到预训练模型获取句向量表示,在保留原文件数据特征的同时缓解

缺陷报告和源代码词汇不匹配的问题。其次针对抽象语法树(AST)中存在噪声节点问

题,提出一种剪枝合并抽象语法树(PMAST),PMAST在删除冗余节点减少噪声的同

时有效保留了AST的节点信息。然后提出深层代码语义特征提取模型,该模型同时提

取PMAST和控制流图(CFG)的图语义特征并融合得到深层代码语义特征,来弥补浅

层代码语义特征存在的代码结构表征不足的问题。DSFFBL通过融合浅层和深层代码语

义特征,将其输入至神经网络计算缺陷报告和源代码的相关性进行缺陷定位。

为了缓解缺陷报告质量参差不齐给缺陷定位带来的影响,本文结合多角度的信息检

索特征加强缺陷报告和源代码之间的关联性表示。首先在向量空间模型(VSM)上额外

考虑长文本和代码复杂度对关联性带来的影响,提出了一种考虑代码复杂度的改进向量

空间模型(crVSM)计算二者相似度特征得分。其次,使用crVSM提出了一种类名相似

度特征得分算法计算类名相似度特征得分。然后本文在缺陷修复时间间隔特征得分算法

上提出更细粒度的改进,进一步体现出近距离时间间隔带来的影响。在此基础上结合堆

栈帧位置和API相似度得分提出了基于多角度特征的软件缺陷定位模型(MFEBL)。

最后将浅层代码语义、深层代码语义和多角度特征三种不同模态的特征进行融合,提出

哈尔滨工程大学硕士学位论文

了一种基于多模态融合的软件缺陷定位方法(MFBL),从深度学习和信息检索两方面

互相弥补对方的语义表征能力,相较于传统的缺陷定位方法包含更充足、更丰富的特征

表示,缓解了缺陷报告质量参差不齐给缺陷定位带来的影响。

本文选择在开源数据集上对上述研究进行多组实验,经过大量实验证明本文提出的

基于深度学习的软件缺陷定位方法较其他方法具有更优的定位性能。

关键词:软件缺陷定位;缺陷报告;信息检索;深度学习

基于深度学习的软件缺陷定位方法研究

Abstract

Buglocalizationisoneofthecrucialresearchtopicsinthefieldofsoftwareengineering.

TraditionalInformationRetrievalbasedBugLocalization(IRBL)methodscanlocatebug

sourcecodefilestosomeextentbasedonbugreports.However,sincebugreportsarecomposed

ofnaturallanguagewhilesourcecodeiscomposedofprogramminglanguages,thereexistsa

semantic

显示全部
相似文档