【技术实现步骤摘要】
基于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.将...
【专利技术属性】
技术研发人员:华进,钱洁,陈志华,鞠小林,
申请(专利权)人:江苏边智科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。