一种基于动态程序失效执行块的程序错误定位方法技术

技术编号:24497486 阅读:29 留言:0更新日期:2020-06-13 03:37
本发明专利技术公开了一种基于动态程序失效执行块的程序错误定位方法,对SFL方法进行了理论和实践两方面的分析,在此基础上提出了新的颗粒度即动态程序失效执行块DFEB,并基于此颗粒度提出了一种新的错误定位方法即基于动态程序基本块的错误定位方法。本发明专利技术通过对每个测试用例所执行的相邻语句进行分组,可以从测试执行所获得的覆盖矩阵来轻松地构建DFEB,然后使用条件概率模型将DFEB集成到SFL技术中,可有效定位程序错误语句。实验结果表明,在大多数情况下,本发明专利技术方法比经典方法更有效,在整体错误定位效果上具有优势。

A program error location method based on dynamic program failure block

【技术实现步骤摘要】
一种基于动态程序失效执行块的程序错误定位方法
本专利技术属于软件程序错误定位检测
,具体涉及一种基于动态程序失效执行块的程序错误定位方法。
技术介绍
软件规模和复杂程度的与日俱增给软件开发和调试技术带来了极大的挑战,面对软件开发过程中如影相随的软件缺陷问题,软件测试是提升其质量和可靠性的重要技术手段,软件测试作为一种确保和提高软件质量的方式,在软件开发生命周期中发挥着越来越重要的作用。调试是软件测试过程的一部分,涉及到测试中的程序故障定位和纠正代码错误;软件故障定位主要是识别故障的特定位置,被认为是调试中最昂贵,最耗时的活动。另外,特别是对于大型程序,由于测试人员的经验和知识的限制,手动定位其错误代码成为一个具有挑战性的问题。为了缓解这个问题,已经提出了许多方法应用于学术界和工业中的自动故障定位,同时提高了定位故障的效率和有效性。在提出的软件故障定位方法中,基于频谱的软件故障定位(SFL)是一种典型的轻量级自动诊断技术,通过降低调试效率,相对更高效;程序频谱是执行配置文件,详细说明了运行期间的动态程序行为,它可用于指示程序的哪些组本文档来自技高网...

【技术保护点】
1.一种基于动态程序失效执行块的程序错误定位方法,包括如下步骤:/n(1)统计软件程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;/n(2)统计每组测试用例在软件程序运行下的执行结果:正确或错误;/n(3)利用执行结果为错误的测试用例从软件程序中找出所有的动态程序失效执行块DFEB;/n(4)利用条件概率模型计算出软件程序中每个DFEB及每条语句的错误可疑度;/n(5)根据错误可疑度从高到低对软件程序中的DFEB进行排序并逐个进行错误排查;在排查任一DFEB时,根据错误可疑度从高到低对该DFEB中的语句进行排序并逐条进行错误排查。/n

【技术特征摘要】
1.一种基于动态程序失效执行块的程序错误定位方法,包括如下步骤:
(1)统计软件程序中各条语句在每组测试用例下的语句覆盖情况,得到对应的语句覆盖矩阵;
(2)统计每组测试用例在软件程序运行下的执行结果:正确或错误;
(3)利用执行结果为错误的测试用例从软件程序中找出所有的动态程序失效执行块DFEB;
(4)利用条件概率模型计算出软件程序中每个DFEB及每条语句的错误可疑度;
(5)根据错误可疑度从高到低对软件程序中的DFEB进行排序并逐个进行错误排查;在排查任一DFEB时,根据错误可疑度从高到低对该DFEB中的语句进行排序并逐条进行错误排查。


2.根据权利要求1所述的程序错误定位方法,其特征在于:所述步骤(1)中语句覆盖情况的定义为:以某一测试用例作为软件程序的输入,若软件程序在整个运行过程中执行了某一条语句,则该语句在该测试用例下的语句覆盖情况表示为1,否则表示为0。


3.根据权利要求2所述的程序错误定位方法,其特征在于:所述步骤(1)中语句覆盖矩阵的大小为m×n,m为软件程序中的语句总数,n为测试用例总数;该矩阵中第i行第j列的元素值为第i条语句在第j组测试用例下的语句覆盖情况,i和j均为自然数且1≤i≤m,1≤j≤n。


4.根据权利要求1所述的程序错误定位方法,其特征在于:所述动态程序失效执行块DFEB的定义为:当执行结果为错误的测试用例作为输入时软件程序中连续执行的语句集合。


5.根据权利要求2所述的程序错误定位方法,其特征在于:所述步骤(3)的具体实现过程为:对于任一组执行结果为错误的测试用例作为输入,将软件程序中语句覆盖情况为1且相邻的多条语句归属于同一个DFEB,然后将其余语句覆盖情况为1且单独的语句各自归为独立的DFEB;依此遍历所有执行结果为错误的测试用例,从软...

【专利技术属性】
技术研发人员:舒挺潘抱一
申请(专利权)人:浙江理工大学
类型:发明
国别省市:浙江;33

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

1