基于GraphSAGE和MLP的软件缺陷定位方法技术

技术编号:34534110 阅读:32 留言:0更新日期:2022-08-13 21:28
本发明专利技术属于计算机应用技术领域,公开了一种基于GraphSAGE和MLP的软件缺陷定位方法。该方法包括以下步骤:1)获取待测程序的代码覆盖信息,统计语句被失败测试用例覆盖的次数;2)构建抽象语法树并进行剪枝处理,以及对每个节点进行词嵌入;3)将语义信息与覆盖次数作为节点属性;4)通过GraphSAGE学习有价值的特征,得到每个节点的节点表示;5)对于一个语句由多个节点组成的情况,对其进行特征融合;6)将每个语句的表示输入到多层感知机中进行训练并排序,生成错误报告。本发明专利技术结合静态和动态特征,通过图神经网络进一步提取特征信息,并利用多层感知机来计算可疑度,实现较高精度的缺陷定位。位。位。

【技术实现步骤摘要】
基于GraphSAGE和MLP的软件缺陷定位方法


[0001]本专利技术属于计算机应用
,涉及一种基于GraphSAGE和MLP的软件缺陷定位方法。

技术介绍

[0002]在软件开发过程中,程序缺陷是不可避免的。开发人员往往会花很多时间在软件测试和调试中,并且测试和调试可占开发成本的75%。为了提高调试的效率,研究人员提出软件自动化缺陷定位技术。它旨在生成缺陷定位报告帮助开发人员进行调试,进而节省调试时间。
[0003]目前,已经有多种研究方法用于自动化定位软件缺陷。传统的缺陷定位方法依赖于执行信息进行预测。其中基于频谱的缺陷定位方法(SBFL)通过分析测试用例的覆盖信息以及执行结果,设计可疑度计算公式去得到语句可疑排名。静态缺陷定位通常从代码结构、语法信息进行分析,例如使用抽象语法树(Abstract Syntax Tree,AST)结构。抽象语法树是一种描述代码结构的树状表示方式,基于AST的神经网络模型可以更好地表示源代码。在此基础上,图嵌入学习通过聚集和结构信息,将每个节点表示成向量。与词嵌入相比,它不仅提高了性能,还提供本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于GraphSAGE和MLP的软件缺陷定位方法,其特征在于,包括以下步骤:S1.使用Defects4J数据集,搜集各项目程序的源代码和缺陷报告后进行处理,获取源代码属性X、邻接矩阵D和错误标签Y,构成缺陷数据集,将所述缺陷数据集分为训练集和验证集;所述处理具体包括以下步骤:S11.将所述源代码转化成抽象语法树A,来表示源代码的语法结构;S12.对抽象语法树A进行剪枝操作,得到剪枝后的抽象语法树A1;S13.根据抽象语法树A1的节点连接信息,得到表示其结构的邻接矩阵D;S14.对抽象语法树A1中的所有节点进行词嵌入操作,得到各节点的节点属性X1;S15.根据缺陷报告中的错误信息,对抽象语法树A1中的节点进行错误标记,得到标签Y;S16.收集源代码覆盖信息和测试用例执行结果TR,并根据覆盖信息和执行结果TR,统计抽象语法树A1中每个节点被失败测试用例覆盖的次数X2;S17.使用t

SNE对节点属性X1进行降维,得到降维后的节点属性X3;S18.将抽象语法树A1的节点属性X3与覆盖次数X2进行特征融合,得到源代码属性X;S2.将源代码属性X、错误标签Y与邻接矩阵D输入GraphSAGE中,通过聚合函数聚合信息,输出得到每个节点的节点属性X

;S3.对节点属性X

进行tanh线性转换并取均值,输出语句的属性X”及标签Y

;S4.将...

【专利技术属性】
技术研发人员:华进钱洁陈志华鞠小林
申请(专利权)人:江苏边智科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1