CN103019943A - 一种面向失败测试用例稀少情况的软件错误定位方法 - Google Patents

一种面向失败测试用例稀少情况的软件错误定位方法 Download PDF

Info

Publication number
CN103019943A
CN103019943A CN2013100011209A CN201310001120A CN103019943A CN 103019943 A CN103019943 A CN 103019943A CN 2013100011209 A CN2013100011209 A CN 2013100011209A CN 201310001120 A CN201310001120 A CN 201310001120A CN 103019943 A CN103019943 A CN 103019943A
Authority
CN
China
Prior art keywords
test cases
test case
sub
case set
cases
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013100011209A
Other languages
English (en)
Other versions
CN103019943B (zh
Inventor
郑征
郝鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beihang University
Original Assignee
Beihang University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beihang University filed Critical Beihang University
Priority to CN201310001120.9A priority Critical patent/CN103019943B/zh
Publication of CN103019943A publication Critical patent/CN103019943A/zh
Application granted granted Critical
Publication of CN103019943B publication Critical patent/CN103019943B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种面向失败测试用例稀少情况的软件错误定位方法,包括五个步骤:一、对原始测试用例集中的成功测试用例进行拆分;二、成批复制失败测试用例,与拆分好的每份成功测试用例配对;三、依次输入类别均衡的子测试用例集,生成相应子排位表;该步骤又具体分为收集子测试用例集运行时程序谱的执行信息,计算语句可疑度和生成子排位表这三小步;四、集成多重排位结果,合成综合排位表;五、根据得到的综合排位表,依次返回源程序对应位置处进行检查,直到找出与错误相关的语句为止。该方法可以有效克服测试用例集类别不均衡现象对基于谱的软件错误定位方法所带来的不利影响,并且方法切实可行,能够有效提高基于谱的软件错误定位方法的定位精度。

Description

一种面向失败测试用例稀少情况的软件错误定位方法
所属技术领域
本发明涉及一种动态的软件错误定位方法,尤其涉及一种面向失败测试用例稀少情况的软件错误定位方法,它是一种面向拥有大量成功测试用例和极少数失败测试用例的使用情况,涉及对成功测试用例集进行拆分和对多重语句可疑度进行集成操作的软件错误定位方法。该方法属于软件测试技术领域。
背景技术
软件已深入到我们日常生活中的每个角落,但与此同时,软件中的bug(错误)也是无处不在。为查找软件中潜在的bug,许多自动化的错误定位技术被相继提出。
基于谱的软件错误定位方法(Spectrum-based Fault Localization,简称SBFL。该方法本质上是一种算法)通过比较程序语句在成功测试用例和失败测试用例运行时执行信息的差异,来查找最有可能与程序缺陷有关的语句。该类算法所基于的假设是:如果一条可执行语句只被失败测试用例覆盖而没有被成功测试用例所覆盖,则该可执行语句被认为越与程序缺陷相关。
在现有的基于谱的软件错误定位方法中,最具有代表性的是Tarantula算法(该名称是算法的发明人命名,现在暂无中文名称)。Tarantula算法是琼斯等人在“一种利用可视化信息的缺陷定位方法”(详见2002年《第二十四届国际软件工程会议》)一文中提出的,其选择的插桩方法是语句插桩,即对所有可执行语句进行插桩,统计成功和失败测试用例对每条可执行语句的覆盖情况。其余几种基于谱的软件错误定位方法与Tarantula算法所使用的插桩方式以及信息类型都相同,只是彼此可疑度计算公式不同。纳什等人在“一种基于谱的软件诊断模型”(详见2011年ACM出版社出版的《软件工程方法》杂志)一文中对现有的33种基于谱的软件错误定位方法进行了总结。
由于基于谱的软件错误定位方法的定位效果会受使用的测试用例集质量的影响,因此,如何有效利用测试用例集成为了软件错误定位领域里关注的热点。测试用例集缩减技术被证明能够有效提高对测试用例的利用效率,但是,现有研究主要集中于减少测试用例集的大小,却忽略了测试用例集的组成,例如测试用例集中成功测试用例与失败测试用例的类别比例。测试用例集中的类别不均衡现象是指一类测试用例的数量要远远多于另一类测试用例的数量。在现实生活中,已发布的软件通常都是含有大量的成功测试用例,仅含有少量的失败测试用例。例如,服务于2008年北京奥运会信息管理系统的基础中间件产品,它的成功测试用例与失败测试用例的比例就高达8500:1。对于验证错误定位方法定位效果的实验程序,这种由于失败测试用例稀少所导致的类别不均衡现象更是广泛存在。
研究如何消除测试用例集类别不均衡现象对基于谱的软件错误定位方法所产生的不利影响正是本发明所基于的考虑。
发明内容
本发明一种面向失败测试用例稀少情况的软件错误定位方法,其目的是:克服基于谱的软件错误定位方法容易受到测试用例集类别不均衡现象影响的缺点,提出一种拆分—集成操作,使得基于谱的软件错误定位方法在面对失败测试用例稀少情况时仍能发挥很好的定位作用。
本发明一种面向失败测试用例稀少情况的软件错误定位方法,其设计思想是:首先,对成功测试用例进行拆分。将原始测试用例集中的成功测试用例分成几个等份,确保每一份中成功测试用例的数量与原始测试用例集中失败测试用例数量相同。其次,将失败测试用例成批复制,并与拆分后的每份成功测试用例进行配对,构成新的类别均衡的子测试用例集。之后,依次输入每份类别均衡的子测试用例集,收集测试用例运行时程序的动态执行谱,调用基于谱的软件错误定位方法进行计算,生成相应的语句排位表。最后,对多重语句排位结果进行集成,合成综合排位表,程序开发人员根据综合排位表来查找程序中的缺陷。
更具体地,本发明一种面向失败测试用例稀少情况的软件错误定位方法,其步骤包括以下五步:
第一步对原始测试用例集中的成功测试用例进行拆分。将原始测试用例集中的成功测试用例P分成
Figure BDA00002699637700031
等份,第i份(1≤i≤m)成功测试用例用Pi表示。其中,u表示原始测试用例集中成功测试用例P的数量,v表示原始测试用例集中失败测试用例F的数量。Pi中包含v个成功测试用例,这v个成功测试用例均是通过对原始测试用例集中的成功测试用例进行随机不放回抽取而得到;
第二步成批复制失败测试用例,与拆分好的每份成功测试用例配对。经过此步后,将得到m份新的类别均衡的子测试用例集Si,其中,每份子测试用例集包含v个成功测试用例和v个失败测试用例;
第三步依次输入类别均衡的子测试用例集,生成相应子排位表。该步骤又分为三小步:
(一)收集子测试用例集运行时程序谱的执行信息。针对插桩后的待测程序,输入第i个类别均衡的子测试用例集,统计语句s在该子测试用例集运行时得到的
Figure BDA00002699637700032
这四个参数。其中,
Figure BDA00002699637700033
Figure BDA00002699637700034
分别表示第i个类别均衡的子测试用例集中经过语句s的成功测试用例数目,经过语句s的失败测试用例数目,没有经过语句s的成功测试用例数目和没有经过语句s的失败测试用例数目;
(二)计算语句可疑度。针对上一步中得到的语句s的执行信息,使用基于谱的软件错误定位方法进行计算,为语句s计算可疑度Ti(s)。不断循环该步骤,直至计算出所有语句的可疑度;
(三)生成子排位表。按照可疑度值由大到小的顺序对所有语句进行排序,生成子排位表Li。其中,语句s在子排位表Li中的排位用Ri(s)表示。
第四步集成多重排位结果,合成综合排位表。针对第三步中得到的语句s的m个可疑度计算结果,利用公式
Figure BDA00002699637700041
来为语句s计算总可疑度
Figure BDA00002699637700042
其中,式中符号说明如下:m表示将原始测试用例集中的成功测试用例拆分成的份数;表示第i个类别均衡的子测试用例集中经过语句s的失败测试用例数目;Ti(s)表示运行第i个类别均衡的子测试用例集之后,使用基于谱的软件错误定位方法为语句s计算出的可疑度。不断循环第四步,为所有语句计算出总可疑度。最后按照总可疑度值由大到小的顺序对所有语句进行排序,生成综合排位表L,语句s在综合排位表中的排位用
Figure BDA00002699637700044
表示;
第五步根据得到的综合排位表,依次返回源程序对应位置处进行检查,直到找出与错误相关的语句为止。
本发明与现有方法相比较的优点在于:现有方法均没有对失败测试用例稀少所导致的测试用例集类别不均衡现象加以考虑,而该现象又会对基于谱的软件错误定位方法的定位精度造成负面影响。本发明方法是第一个被提出来用于解决该问题的方法,并且方法切实可行,能够有效提高基于谱的软件错误定位方法的定位精度。
附图说明
图1为示例程序代码和测试用例运行剖面
图2为本发明流程示意图
图3为待测程序详细信息图
图4为各算法在Siemens程序包上整体定位结果提升对比
图5为各算法在space、flex和grep程序上整体定位效果提升对比
图6为各算法在单个独立程序上定位效果提升对比
对图中的符号和标号说明如下:
图1左侧这段代码的主要功能是输出三个数中的中间值。其中,错误位于第4行,以方框标出,斜线右侧为正确的代码。可以发现该错误为逻辑错误,在编译器编译过程中可以编译通过而不会提示出错。随机输入3个整数,构成一个测试用例,如t1-t8所示。分别输入这8个测试用例,测试用例的运行剖面如图1右侧所示。其中,黑色实心点表示相应测试用例运行时经过了该语句。t1和t2为运行失败的测试用例,用符号F进行标示,t3-t8为成功测试用例。
图2展示了本发明方法的使用流程。主要包括拆分成功测试用例和集成多重语句排位结果两个操作,图中SBFL表示一种基于谱的软件错误定位方法,排位表表示对待测程序中所有可执行语句按照计算出的可疑度值大小进行从高到低的排序。
图3列举了用于验证本专利所提方法定位效果的实验程序的详细信息。其中,代码行数表示待测程序的代码规模;版本数表示待测程序中植入的不同类型错误的数量(每个版本中都只植入了一个错误);类别比例表示待测程序自带的测试用例集中成功测试用例数目与失败测试用例数目的比值。例如,Siemens程序包中的tcas程序,它的代码行数是141行,包含41个错误版本,类别比例为159.31:1。
图4给出了各算法在Siemens程序包上整体定位效果提升对比实验的实验结果。图中数据是在对图3所示的Siemens程序包全部141个错误版本进行实验后统计得到的。从左手侧起,第一列表示代码的检查代价;第二列是对同一行中从第三列起至最后一列的数据求平均值;在第三列至最后一列中,正数表示相应的基于谱的软件错误定位方法在采取拆分-集成操作后相比没有采取该操作之前定位精度获得提升,反之,负数表示定位精度降低,零表示定位精度没有发生改变。例如,对于Jaccard算法,当检查5%的代码量时,采取拆分-集成操作后,算法定位精度提升了9.38%。
图5给出了各算法在space、flex和grep程序上整体定位效果提升对比实验的实验结果。图中数据是在对图3所示的space、flex和grep程序总共76个错误版本进行实验后统计得到的,具体数据解释与图4类似。
图6给出了各算法在单个独立程序上定位效果提升对比实验的实验结果。图中数据是在对图3所示的10个独立程序分别进行实验后统计得到的,具体数据解释与图4类似。
具体实施方式
假定待测程序中含有若干个缺陷,通常测试之前这些缺陷是未知的。首先对原始测试用例集中的成功测试用例进行拆分,并与失败测试用例配对,构成新的类别均衡的子测试用例集。然后依次加载子测试用例集,运行插桩后的程序,记录程序的执行信息。基于谱的软件错误定位方法将利用这些执行信息计算语句的可疑度,并将所有可执行语句按照可疑度值从高到低排列,生成子排位表。最后,根据前面得到的多重计算结果,调用集成公式,为每个可执行语句计算总可疑度,合成综合排位表,程序人员最终根据该排位表来查找错误代码。
为了检验本专利中所提方法的定位效率,考虑把Siemens程序包、space程序、UNIX程序包中的flex和grep程序(这些程序都是公认的典型测试对象。其中,后三个为实际应用程序)作为实验对象,这些待测程序中的错误位置、错误数量和错误类型都是事先已知的。图3显示了所有待测程序的详细信息。
选取图1所示的一段程序来验证本发明方法,运用本发明的流程如图2所示,其具体实施步骤如下:
第一步对原始测试用例集中的成功测试用例进行拆分。现共有8个测试用例,它们分别是t1(1,0,2)、t2(2,1,2)、t3(0,1,1)、t4(0,1,2)、t5(1,1,1)、t6(1,1,2)、t7(1,1,0)和t8(2,2,3)。其中,t1和t2为失败测试用例,t3-t8为成功测试用例。可以将成功测试用例拆分成
Figure BDA00002699637700061
份,例如P1(t3,t4),P2(t5,t6),P3(t7,t8);
第二步成批复制失败测试用例,与拆分好的每份成功测试用例配对。将失败测试用例t1和t2整体复制3份,并将其与拆分好的成功测试用例配对,构成3个新的类别均衡的子测试用例集,即S1(t1,t2,t3,t4)、S2(t1,t2,t5,t6)和S3(t1,t2,t7,t8);
第三步依次输入类别均衡的子测试用例集,生成相应子排位表。该步骤又分为三小步:
(一)收集子测试用例集运行时程序谱的执行信息。当输入子测试用例集S1时,针对程序中的所有可执行语句s1-s13,分别统计aef,anf,aep和anp这四个参数,记录的数据如下所示:
aef anf aep anp
s1 2 0 2 0
s2 2 0 2 0
s3 2 0 2 0
s4 2 0 1 1
s5 1 1 1 1
s6 1 1 0 2
s7 1 1 0 2
s8 0 2 1 1
s9 0 2 1 1
s10 0 2 0 2
s11 0 2 1 1
s12 0 2 0 2
s13 2 0 2 0
同理,当运行子测试用例集S2和S3时,记录的数据分别为:
aef anf aep anp
s1 2 0 2 0
s2 2 0 2 0
s3 2 0 2 0
s4 2 0 1 1
s5 1 1 1 1
s6 1 1 0 2
s7 1 1 0 2
s8 0 2 1 1
s9 0 2 1 1
s10 0 2 0 2
s11 0 2 1 1
s12 0 2 0 2
s13 2 0 2 0
aef anf aep anp
s1 2 0 2 0
s2 2 0 2 0
s3 2 0 2 0
s4 2 0 1 1
s5 1 1 1 1
s6 1 1 0 2
s7 1 1 0 2
s8 0 2 1 1
s9 0 2 1 1
s10 0 2 0 2
s11 0 2 1 1
s12 0 2 1 1
s13 2 0 2 0
(二)计算语句可疑度。针对上一步中得到的子测试用例集S1-S3运行时程序谱的执行信息,选择33种基于谱的软件错误定位方法中任何一种进行计算,本次操作只以典型的Tarantula算法为例加以演示。根据公式
Figure BDA00002699637700081
可得语句s1-s13的可疑度分别为:
Figure BDA00002699637700082
注:在计算过程中,一旦遇到无法计算出数值且aef=0(失败测试用例运行时没有覆盖到相应语句)的情况时,按照基于谱的软件错误定位方法所基于的假设,认为该语句不可疑。因此在算法设计中,通常将该可疑度赋值为相应算法可疑度计算范围的下限值,这里以N/A加以表示。
(三)生成子排位表。根据计算出的语句可疑度,可以得到子排位表L1=L2=<{s6,s7},s4,{s1,s2,s3,s5,s13},{s8,s9,s11},{s10,s12}>,L3=<{s6,s7},s4,{s1,s2,s3,s5,s13},{s8,s9,s11,s12},s10>,语句s4在各子排位表中的排位R1(s4)=R2(s4)=R3(s4)=3;
第四步集成多重排位结果,合成综合排位表。针对第三步中得到的3种计算结果,利用公式
Figure BDA00002699637700091
来计算总可疑度。可得 T &OverBar; ( s 1 ) = T &OverBar; ( s 2 ) = T &OverBar; ( s 3 ) = 1 , T &OverBar; ( s 4 ) = 1.4 , T &OverBar; ( s 5 ) = 0.5 , T &OverBar; ( s 6 ) = T &OverBar; ( s 7 ) = 1 , T &OverBar; ( s 8 ) = T &OverBar; ( s 9 ) = 0 , T &OverBar; ( s 10 ) = N / A , T &OverBar; ( s 11 ) = 0 , T &OverBar; ( s 12 ) = N / A , T &OverBar; ( s 13 ) = 1 . 综合排位表为L=<s4,{s1,s2,s3,s6,s7,s13},s5,{s8,s9,s11},{s10,s12}>,语句s4在综合排位表中的排位 R &OverBar; ( s 4 ) = 1 .
第五步根据得到的综合排位表,依次返回源程序对应位置处进行检查,直到找出与错误相关的语句为止。在本例中,当检查综合排位表中排在第一位的语句s4时,就可以辅助程序开发人员迅速找到存在错误的代码。
对图3所列举的待测程序运用本专利方法进行错误定位,并选取Tarantula算法(典型算法)、Jaccard算法、Ochiai算法(这两种算法被证明能取得较好的定位效果)、Ochiai2算法(作为Ochiai算法的对比算法)、Wong3算法(唯一有参数的算法)、Wong2算法(Wong3算法的对比算法)、Euclid算法、Hammann算法(与Wong2算法计公式相似,作为Wong2的对比算法)、Zoltar算法和Harmonic算法(这两种算法计算公式最复杂)作为实验对象。此外,引入Expense作为算法定位效果的评价标准。其中,
Expense = 1 w &Sigma; i = 1 w [ 1 - based in dex of s i in L # of executable statment in L &times; 100 % ]
w表示程序中错误的总数目,L表示语句排位表,1-based index of si in L表示与错误相关语句在语句排位表中的排位,#of executable statement in L表示语句排位表中可执行语句的总数(例如,对于上面具体实施中所举的例子,
Figure BDA000026996377000913
)。Expense表示为了定位到错误代码需要付出的代码检查代价。我们还引入Locate来衡量在特定代码检查代价下能够定位到错误代码的概率。其中
Locate ( e ) = # of subjects with Expense &le; e # of subjects &times; 100 %
#of subjects with Expense≤e表示待测程序中计算出的Expense值小于等于给定代码检查比e的版本数,#of subjects表示待测程序中版本总数。为确认拆分-集成操作是否会提高基于谱的软件错误定位方法的定位精度,我们使用Improve来进行评价。其中,
Improve(e)=Locate′(e)-Locate(e)
Locate’(e)表示采取拆分-集成操作之后基于谱的软件错误定位方法所得到的Locate值,Locate(e)表示采取拆分-集成操作之前基于谱的软件错误定位方法所得到的Locate值。为避免随机操作可能会给实验结论带来的不确定性,在图4、图5和图6所示实验中,我们均随机进行了10次实验,对数据取平均值后加以展示。
从图4中可以看到,在Siemens程序包全部141个错误版本中,对于所选取的10种基于谱的软件错误定位方法而言,本发明方法能够一直有效提高其中绝大多数算法的定位精度。
从图5中可以看到,对于space、flex和grep这些实际应用程序,除了在少数检查节点处定位精度有降低外,本发明方法能够做到提高至少不改变所选算法的定位精度。
图6为各单独程序上分别应用本发明方法后10种算法定位精度平均提升的结果。从图6中可发现,即使在各个单独程序上,本发明方法仍能有效提高各个算法的定位精度。
从以上实验数据中可以得出如下结论:
(1)在广泛采用的实验程序和实际应用程序上,本发明方法均能够得到很好的实施;
(2)本发明方法能够有效提高基于谱的软件错误定位方法的定位精度。

Claims (1)

1.一种面向失败测试用例稀少情况的软件错误定位方法,其特征在于:它包括以下五个步骤:
第一步对原始测试用例集中的成功测试用例进行拆分;将原始测试用例集中的成功测试用例P分成
Figure FDA00002699637600011
等份,第i份(1≤i≤m)成功测试用例用Pi表示;其中,u表示原始测试用例集中成功测试用例P的数量,v表示原始测试用例集中失败测试用例F的数量,Pi中包含v个成功测试用例,这v个成功测试用例均是通过对原始测试用例集中的成功测试用例进行随机不放回抽取而得到;
第二步成批复制失败测试用例,与拆分好的每份成功测试用例配对;经过此步后,将得到m份新的类别均衡的子测试用例集Si,其中,每份子测试用例集包含v个成功测试用例和v个失败测试用例;
第三步依次输入类别均衡的子测试用例集,生成相应子排位表;该步骤又分为三小步:
(一)收集子测试用例集运行时程序谱的执行信息;针对插桩后的待测程序,输入第i个类别均衡的子测试用例集,统计语句s在该子测试用例集运行时得到的这四个参数;其中,
Figure FDA00002699637600013
分别表示第i个类别均衡的子测试用例集中经过语句s的成功测试用例数目,经过语句s的失败测试用例数目,没有经过语句s的成功测试用例数目和没有经过语句s的失败测试用例数目;
(二)计算语句可疑度;针对上一步中得到的语句s的执行信息,使用基于谱的软件错误定位方法进行计算,为语句s计算可疑度Ti(s);不断循环该步骤,直至计算出所有语句的可疑度;
(三)生成子排位表;按照可疑度值由大到小的顺序对所有语句进行排序,生成子排位表Li,其中,语句s在子排位表Li中的排位用Ri(s)表示;
第四步集成多重排位结果,合成综合排位表;针对第三步中得到的语句s的m个可疑度计算结果,利用公式
Figure FDA00002699637600021
来为语句s计算总可疑度
Figure FDA00002699637600022
其中,式中符号说明如下:m表示将原始测试用例集中的成功测试用例拆分成的份数;
Figure FDA00002699637600023
表示第i个类别均衡的子测试用例集中经过语句s的失败测试用例数目;Ti(s)表示运行第i个类别均衡的子测试用例集之后,使用基于谱的软件错误定位方法为语句s计算出的可疑度;不断循环第四步,为所有语句计算出总可疑度,最后按照总可疑度值由大到小的顺序对所有语句进行排序,生成综合排位表L,语句s在综合排位表中的排位用
Figure FDA00002699637600024
表示;
第五步根据得到的综合排位表,依次返回源程序对应位置处进行检查,直到找出与错误相关的语句为止。
CN201310001120.9A 2013-01-04 2013-01-04 一种面向失败测试用例稀少情况的软件错误定位方法 Active CN103019943B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310001120.9A CN103019943B (zh) 2013-01-04 2013-01-04 一种面向失败测试用例稀少情况的软件错误定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310001120.9A CN103019943B (zh) 2013-01-04 2013-01-04 一种面向失败测试用例稀少情况的软件错误定位方法

Publications (2)

Publication Number Publication Date
CN103019943A true CN103019943A (zh) 2013-04-03
CN103019943B CN103019943B (zh) 2015-06-17

Family

ID=47968568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310001120.9A Active CN103019943B (zh) 2013-01-04 2013-01-04 一种面向失败测试用例稀少情况的软件错误定位方法

Country Status (1)

Country Link
CN (1) CN103019943B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468521A (zh) * 2015-11-18 2016-04-06 北京航空航天大学 一种基于子图搜索的指针相关语义错误定位方法
CN110362484A (zh) * 2019-07-03 2019-10-22 北京航空航天大学 软件多故障的定位方法、装置、电子设备以及存储介质
CN111563044A (zh) * 2020-05-11 2020-08-21 西安邮电大学 一种基于程序变异的程序谱错误定位方法
CN112685327A (zh) * 2021-01-28 2021-04-20 重庆大学 一种模型域的失败测试用例生成方法
CN113064824A (zh) * 2021-03-31 2021-07-02 重庆紫光华山智安科技有限公司 结果分析方法和装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270840A1 (en) * 2007-04-25 2008-10-30 Samsung Electronics Co., Ltd. Device and method for testing embedded software using emulator
CN101872325A (zh) * 2010-06-25 2010-10-27 北京航空航天大学 一种基于谓词执行序列的软件动态缺陷定位方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080270840A1 (en) * 2007-04-25 2008-10-30 Samsung Electronics Co., Ltd. Device and method for testing embedded software using emulator
CN101872325A (zh) * 2010-06-25 2010-10-27 北京航空航天大学 一种基于谓词执行序列的软件动态缺陷定位方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHENYU ZHANG等: "Non-parametric statsitical fault localization", 《THE JOURNAL OF SYSTEMS AND SOFTWARE》 *
虞凯等: "自动化软件错误定位技术研究进展", 《计算机学报》 *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105468521A (zh) * 2015-11-18 2016-04-06 北京航空航天大学 一种基于子图搜索的指针相关语义错误定位方法
CN105468521B (zh) * 2015-11-18 2018-01-19 北京航空航天大学 一种基于子图搜索的指针相关语义错误定位方法
CN110362484A (zh) * 2019-07-03 2019-10-22 北京航空航天大学 软件多故障的定位方法、装置、电子设备以及存储介质
CN110362484B (zh) * 2019-07-03 2022-03-01 北京航空航天大学 软件多故障的定位方法、装置、电子设备以及存储介质
CN111563044A (zh) * 2020-05-11 2020-08-21 西安邮电大学 一种基于程序变异的程序谱错误定位方法
CN111563044B (zh) * 2020-05-11 2022-10-25 西安邮电大学 一种基于程序变异的程序谱错误定位方法
CN112685327A (zh) * 2021-01-28 2021-04-20 重庆大学 一种模型域的失败测试用例生成方法
CN112685327B (zh) * 2021-01-28 2023-06-27 重庆大学 一种模型域的失败测试用例生成方法
CN113064824A (zh) * 2021-03-31 2021-07-02 重庆紫光华山智安科技有限公司 结果分析方法和装置、电子设备及存储介质
CN113064824B (zh) * 2021-03-31 2022-12-02 重庆紫光华山智安科技有限公司 结果分析方法和装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN103019943B (zh) 2015-06-17

Similar Documents

Publication Publication Date Title
Beyer Software verification: 10th comparative evaluation (SV-COMP 2021)
Johnson et al. Causal testing: understanding defects' root causes
McCall et al. Meaningful categorisation of novice programmer errors
Daka et al. Generating unit tests with descriptive names or: Would you name your children thing1 and thing2?
Zhang et al. Localizing failure-inducing program edits based on spectrum information
CN103019943B (zh) 一种面向失败测试用例稀少情况的软件错误定位方法
Dakhel et al. Effective test generation using pre-trained large language models and mutation testing
Pradel et al. Detecting anomalies in the order of equally-typed method arguments
CN103995780B (zh) 一种基于语句频度统计的程序错误定位方法
CN111831556A (zh) 软件多故障解耦及并行定位方法及装置
Amar et al. Using finite-state models for log differencing
Zhang et al. Fault localization through evaluation sequences
Fry et al. Clustering static analysis defect reports to reduce maintenance costs
Lee et al. POWER: Program option-aware fuzzer for high bug detection ability
Kim et al. A new hybrid algorithm for software fault localization
Huo et al. Interpreting coverage information using direct and indirect coverage
Wen et al. Enchanting program specification synthesis by large language models using static analysis and program verification
CN104503908A (zh) 基于谓词频率统计的软件故障定位方法
Jain et al. Contextual Predictive Mutation Testing
Landsberg et al. Optimising Spectrum Based Fault Localisation for Single Fault Programs Using Specifications.
Patel et al. An information theoretic notion of software testability
Guo et al. Exoneration-based fault localization for SQL predicates
Falah et al. RSM: Reducing mutation testing cost using random selective mutation technique
Laurent et al. Re-visiting the coupling between mutants and real faults with Defects4J 2.0
Yan et al. An effective fault localization approach based on PageRank and mutation analysis

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Zheng Zheng

Inventor after: Hao Peng

Inventor after: Cai Kaiyuan

Inventor before: Zheng Zheng

Inventor before: Hao Peng

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHENG ZHENG HAO PENG TO: ZHENG ZHENG HAO PENG CAI KAIYUAN

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant