System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本公开的实施例涉及信息技术及自动化,具体地,涉及适用于一种软件故障定位方法和装置。
技术介绍
1、故障定位在软件开发过程中扮演着不可或缺的角色,它是软件故障修复与质量保障的必然环节。随着用户需求的不断增长和软件规模的不断增大,软件开发过程中暴露出的故障也越来越多。
2、尽管目前各种故障定位技术已经被广泛应用,但许多方法都存在巧合正确性问题。巧合的正确性是指在测试过程中,通过的测试用例可能会执行错误的语句,而失败的测试用例执行的语句可能不会导致测试用例失败。这种情况下,测试结果并不能真实反映软件中存在的故障,给故障定位带来了困难。
技术实现思路
1、本文中描述的实施例提供了一种软件故障定位方法和装置,克服了上述问题。
2、第一方面,根据本公开的内容,提供了一种软件故障定位方法,包括:
3、获取待定位故障对应的目标程序源码,所述目标程序源码用于故障程序测试时生成故障测试数据;
4、基于所述故障测试数据中不同粒度的元素特征确定突变生成算子,并将所述突变生成算子转换为适应突变器处理的抽象表示数据;
5、基于所述抽象表示数据生成抽象突变体;
6、将所述抽象突变体转换为实际源码对应的实际突变体,并提取所述实际突变体对应不同粒度故障程度的突变特征;
7、基于所述突变特征、故障语义特征以及故障频谱特征,训练得到多个神经网络模型,并基于每个所述神经网络模型输出的故障语句可疑得分聚合的排序结果,确定软件故障程序语句的位
8、可选的,所述将所述突变生成算子转换为适应突变器处理的抽象表示数据,包括:
9、规范所述突变生成算子所对应程序语句的源代码形式,并将规范化后的源代码确定为一个标记符号流,所述标记符号流中包括多个标记信息,所述标记信息为标记符或标记文字;
10、生成所述标记信息对应的标识数据;
11、基于所述标记信息对应的标识数据,确定适应所述突变器处理的所述抽象表示数据。
12、可选的,所述基于所述抽象表示数据生成抽象突变体,包括:
13、构建一个rnn编码器,基于所述rnn编码器确定所述抽象表示数据所对应程序语句的第一坐标向量表示数据,所述第一坐标向量表示数据用于描述x序列;
14、构建一个rnn解码器,基于所述rnn解码器确定所述抽象表示数据所对应程序语句的第二坐标向量表示数据,所述第二坐标向量表示数据用于解码第一坐标向量数据为y序列项;
15、基于所述第一坐标向量表示数据和所述第二坐标向量表示数据,生成所述抽象突变体。
16、可选的,所述提取所述实际突变体对应不同粒度故障程度的突变特征,包括:
17、基于多种预设突变算子确定所述实际突变体的可疑得分;
18、基于每种所述故障定位技术的权重数据以及多种预设突变算子确定所述实际突变体的可疑得分,确定所述实际突变体的相似度得分;
19、基于所述实际突变体的相似度得分,确定所述实际突变体对应不同粒度故障程度的突变特征。
20、可选的,所述基于所述突变特征、故障语义特征以及故障频谱特征,训练得到多个网络模型之前,还包括:
21、提取故障语义特征,所述故障语义特征用于描述突变程序深度语义特征;
22、生成故障频谱特征,所述故障频谱特征用于描述基于定位的故障程序所生成的基于频谱的特征。
23、可选的,所述提取故障语义特征,包括:
24、将突变前的故障定位程序和突变后的故障定位程序,分别转换为不同预设数量个单词序列;
25、分别提取所述突变前的故障定位程序转后的单词序列对应的语义向量以及所述突变后的故障定位程序转后的单词序列对应的语义向量,得到所述故障语义特征。
26、可选的,所述生成故障频谱特征,包括:
27、获取用于故障定位的定制化测试套件;
28、将所述定制化测试套件输入带有所述实际突变体的源代码中,得到覆盖信息和测试用例执行结果;
29、基于所述覆盖信息和所述测试用例执行结果,生成故障频谱特征。
30、可选的,多个所述神经网络模型包括:卷积神经网络模型、双向长短期记忆网络模型和多层感知神经网络模型。
31、可选的,所述基于每个所述神经网络模型输出的故障语句可疑得分聚合的排序结果,确定软件故障程序语句的位置,包括:
32、将预设测试集输入所述卷积神经网络模型中,基于所述卷积神经网络模型的输出确定第一故障语句可疑值得分;
33、将预设测试集输入所述双向长短期记忆网络模型中,基于所述双向长短期记忆网络模型的输出确定第二故障语句可疑值得分;
34、将预设测试集输入所述多层感知神经网络模型中,基于所述多层感知神经网络模型的输出确定第三故障语句可疑值得分;
35、基于所述第一故障语句可疑值得分、所述第二故障语句可疑值得分以及所述第三故障语句可疑值得分聚合的排序结果,确定软件故障程序语句的位置。
36、第二方面,根据本公开的内容,提供了一种软件故障定位装置,包括:
37、获取模块,用于获取待定位故障对应的目标程序源码,所述目标程序源码用于故障程序测试时生成故障测试数据;
38、第一处理模块,用于基于所述故障测试数据中不同粒度的元素特征确定突变生成算子,并将所述突变生成算子转换为适应突变器处理的抽象表示数据;
39、生成模块,用于基于所述抽象表示数据生成抽象突变体;
40、第二处理模块,用于将所述抽象突变体转换为实际源码对应的实际突变体,并提取所述实际突变体对应不同粒度故障程度的突变特征;
41、第三处理模块,用于基于所述突变特征、故障语义特征以及故障频谱特征,训练得到多个神经网络模型,并基于每个所述神经网络模型输出的故障语句可疑得分聚合的排序结果,确定软件故障程序语句的位置。
42、可选的,第一处理模块,具体用于:
43、规范所述突变生成算子所对应程序语句的源代码形式,并将规范化后的源代码确定为一个标记符号流,所述标记符号流中包括多个标记信息,所述标记信息为标记符或标记文字;生成所述标记信息对应的标识数据;基于所述标记信息对应的标识数据,确定适应所述突变器处理的所述抽象表示数据。
44、可选的,生成模块,具体用于:
45、构建一个rnn编码器,基于所述rnn编码器确定所述抽象表示数据所对应程序语句的第一坐标向量表示数据,所述第一坐标向量表示数据用于描述x序列;构建一个rnn解码器,基于所述rnn解码器确定所述抽象表示数据所对应程序语句的第二坐标向量表示数据,所述第二坐标向量表示数据用于解码第一坐标向量数据为y序列项;基于所述第一坐标向量表示数据和所述第二坐标向量表示数据,生成所述抽象突变体。
46、可选的,第二处理模块,具体用于:
47本文档来自技高网...
【技术保护点】
1.一种软件故障定位方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述突变生成算子转换为适应突变器处理的抽象表示数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述抽象表示数据生成抽象突变体,包括:
4.根据权利要求1所述的方法,其特征在于,所述提取所述实际突变体对应不同粒度故障程度的突变特征,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于所述突变特征、故障语义特征以及故障频谱特征,训练得到多个网络模型之前,还包括:
6.根据权利要求5所述的方法,其特征在于,所述提取故障语义特征,包括:
7.根据权利要求5所述的方法,其特征在于,所述生成故障频谱特征,包括:
8.根据权利要求1所述的方法,其特征在于,多个所述神经网络模型包括:卷积神经网络模型、双向长短期记忆网络模型和多层感知神经网络模型。
9.根据权利要求8所述的方法,其特征在于,所述基于每个所述神经网络模型输出的故障语句可疑得分聚合的排序结果,确定软件故障程序语句的位置,包括:
10.一种软件故障定位装置,其特征在于,包括:
...【技术特征摘要】
1.一种软件故障定位方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述将所述突变生成算子转换为适应突变器处理的抽象表示数据,包括:
3.根据权利要求1所述的方法,其特征在于,所述基于所述抽象表示数据生成抽象突变体,包括:
4.根据权利要求1所述的方法,其特征在于,所述提取所述实际突变体对应不同粒度故障程度的突变特征,包括:
5.根据权利要求1所述的方法,其特征在于,所述基于所述突变特征、故障语义特征以及故障频谱特征,训练得到多个网络模型之前,还包括:
【专利技术属性】
技术研发人员:谢生龙,杨战海,李晓燕,高志远,徐雪丽,郭翔天,
申请(专利权)人:延安大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。