一种基于高阶变异的程序自动化错误定位方法及系统技术方案

技术编号:34290363 阅读:33 留言:0更新日期:2022-07-27 09:19
本发明专利技术公开了一种基于高阶变异的程序自动化错误定位方法及系统,涉及软件调试技术领域,包括:高阶变异体生成步骤和语句怀疑度度量步骤。本发明专利技术提出了基于错误分布的高阶变异体生成技术有效分析了错误的潜在分布,生成特定的高阶变异体显著提高了高阶变异体的生成效率;首次使用高阶变异体用于真实场景中的错误定位,旨在通过使用高阶变异体模拟真实场景下的错误情况;语句怀疑度度量有效考虑到错误可能存在的分布,提升了错误定位的精度。提升了错误定位的精度。提升了错误定位的精度。

【技术实现步骤摘要】
一种基于高阶变异的程序自动化错误定位方法及系统


[0001]本专利技术涉及软件调试
,尤其涉及一种基于高阶变异的程序自动化错误定位方法及系统。

技术介绍

[0002]软件调试是检测、定位和改正软件程序中的错误的过程,是保障软件质量并使其正常运行的重要手段。通常,软件调试包括程序检查、错误定位和错误修复三个阶段。其中,错误定位是修复软件错误的基本前提,也是软件调试过程中最为费时费力的一个步骤。因此在过去的几十年中,研究人员致力于研究软件复杂错误定位技术以降低软件调试的成本。
[0003]在早期的软件错误定位研究中,绝大部分的工作假设被测程序中仅包含一个错误。在真实软件调试场景下,简单错误的假设并不符合实际的程序特征,而在开源项目和商业项目中通常会包含多个错误(即复杂错误)。研究表明,工业界中实际应用的程序中超过90%的故障是需要修改多个位置才能修复的错误。同时研究人员发现,当程序内含有多个错误的时候,部分错误之间可能会相互影响,或者产生相互干扰的现象,进而导致错误定位效果降低。同时,研究人员发现一些错误定位方法在单错误程序上可以取得本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于高阶变异的程序自动化错误定位方法,其特征在于,包括以下步骤:S101.高阶变异体生成步骤:获取语句的怀疑度,依据语句的怀疑度计算相应的语句权重,组合权重后归一化处理得到权重矩阵,通过计算语句组合的变异体数量矩阵来生成高阶变异体;S201.语句怀疑度度量步骤:对所有高阶变异体执行测试套件,获得其执行结果和杀死信息,得到变异杀死信息,通过使用怀疑度计算公式得到变异体怀疑度,对变异体的怀疑度进行进一步评估,计算得到语句怀疑度值,根据语句怀疑度值对程序语句进行排序。2.根据权利要求1所述的一种基于高阶变异的程序自动化错误定位方法,其特征在于,S101.高阶变异体生成具体包括以下步骤:S1011.获取语句怀疑度列表;S1012.计算语句权重与组合;S1013.计算语句组合对应的变异体个数;S1014.生成高阶变异体。3.根据权利要求2所述的一种基于高阶变异的程序自动化错误定位方法,其特征在于,S1011.获取语句怀疑度列表的具体内容为:首先对测试套件T执行被测程序P={s1,s2,

,s
n
},其中,s表示语句,n表示语句标号;依据程序覆盖信息和执行结果使用SBFL或MBFL得到被测程序P={s1,s2,

,s
n
}的语句怀疑度列表。4.根据权利要求2所述的一种基于高阶变异的程序自动化错误定位方法,其特征在于,S1012.计算语句权重与组合的具体内容为:根据程序语句s的怀疑度Sus(s),定义语句的权重为:式中,s为程序语句,n为语句标号,Sus(s)为程序语句的怀疑度;则程序p的语句权重集合为:W={w(s1),w(s2),...,w(s
n
)};若生成k阶变异体,则对程序语句进行k次排列,其对应权重矩阵W
Matrix
为:其中,W
(

1)
表示矩阵W的转置,i为程序语句排列次数;对应权重矩阵W
Matrix
使用归一化方法处理得到权重矩阵W
Matrix

。5.根据权利要求2所述的一种基于高阶变异的程序自动化错误定位方法,其特征在于,S1013.计算语句组合对应的变异体个数的具体内容为:权重矩阵W
Mat...

【专利技术属性】
技术研发人员:刘勇王海峰
申请(专利权)人:北京化工大学
类型:发明
国别省市:

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

1