CN102750223B - 一种基于面向对象程序切片谱的错误定位方法 - Google Patents

一种基于面向对象程序切片谱的错误定位方法 Download PDF

Info

Publication number
CN102750223B
CN102750223B CN201210184233.2A CN201210184233A CN102750223B CN 102750223 B CN102750223 B CN 102750223B CN 201210184233 A CN201210184233 A CN 201210184233A CN 102750223 B CN102750223 B CN 102750223B
Authority
CN
China
Prior art keywords
mrow
msub
slice
error
oriented program
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.)
Expired - Fee Related
Application number
CN201210184233.2A
Other languages
English (en)
Other versions
CN102750223A (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.)
Southeast University
Original Assignee
Southeast 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 Southeast University filed Critical Southeast University
Priority to CN201210184233.2A priority Critical patent/CN102750223B/zh
Publication of CN102750223A publication Critical patent/CN102750223A/zh
Application granted granted Critical
Publication of CN102750223B publication Critical patent/CN102750223B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

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

Abstract

本发明公布了一种基于面向对象程序切片谱的错误定位方法,首先我们根据源程序构造面向对象程序依赖图,然后结合测试历史中提取的失效测试信息提取错误相关切片,根据错误相关切片和测试历史信息中提取的测试覆盖信息构造面向对象程序切片谱矩阵,最后基于面向对象程序切片谱矩阵度量错误相关切片中每个元素的可疑度,并根据可疑度大小顺序定位到错误位置。本发明的基于面向对象程序切片谱的错误定位方法效率更高。

Description

一种基于面向对象程序切片谱的错误定位方法
技术领域
本发明提出了一种基于面向对象程序切片谱的错误定位方法,主要是利用面向对象程序切片谱来解决面向对象程序的错误定位问题,属于软件调试的技术领域。
背景技术
在软件开发和维护过程中,程序员需要不断的调试程序,而错误定位是调试活动中最困难、最耗时的任务之一。错误定位即定位引起软件失效的错误,传统的方法有两种:一是在程序中插入输出语句,根据输出结果去分析可能导致异常的错误;二是在程序中可能产生错误的地方设置断点,然后单步执行分析错误产生的位置。这两种方法主要通过手动完成,效率不高。近些年来,软件正变得越来越复杂多样,这给软件调试者带来了巨大的挑战。自动化,半自动化的软件错误定位技术因而也变成最热门的研究方向之一,主要技术有二分查找计算树模型法、Delta调试法、谓词交换法、构造辨别子图法、程序切片法和测试覆盖分析法等等。
程序切片技术通过分析数据依赖和控制依赖提取与错误相关的部分,删除与错误无关的部分,从而可缩小错误定位的搜索域。早期的程序切片技术主要有动态切片技术、静态切片技术、执行切片技术、相关切片技术和关键切片技术等。通常,通过这些技术所取得的切片相对保守,规模很大,单一的切片不太适合实际应用中的软件程序的错误定位。基于程序谱的错误定位技术通过对程序谱的分析,计算程序中各个元素可能产生错误的概率,然后根据各个元素的概率从大到小依次检查以找到错误所在位置。这种技术通常是基于程序击谱,不考虑语句覆盖的频度,而且缺乏了依赖分析,谱的规模一般很大。所以,需要一种新型的结合切片和谱的优点的技术来支持错误定位的实现。
另外,传统的切片一般通过系统依赖图提取,但在面向对象程序中,由于存在着诸多特征(如类、对象;继承性、多态性等),传统的方法很难提取面向对象程序的切片。需要一种新的依赖图构造方法来提取面向对象程序切片,以支持面向对象程序的错误定位。
发明内容
本发明的目的在于使用面向对象程序切片谱来支持面向对象程序的错误定位问题,该错误定位方法效率更高。
为实现上述目的,采用如下技术方案:一种基于面向对象程序切片谱的错误定位方法,包括如下步骤:
1).根据失效测试TF和切片准则,并结合面向对象程序系统依赖图,使用图可达性遍历算法,提取错误相关切片集合Slice;
其中,TF={T1,…,Ts}表示测试运行结果错误的测试集合;
GetSlice(Ti)为根据测试执行Ti提取的切片,则错误相关切片集合:Slice=GetSlice(T1)∪GetSlice(T2)∪…∪GetSlice(Ts);其中Ti是TF中的一个元素;
2).结合测试覆盖信息T,构建错误相关切片集合Slice的面向对象程序切片谱矩阵M[ei,Tj],矩阵M[ei,Tj]记录了测试Tj覆盖ei的次数;
其中ei是错误相关切片Slice中的一个元素;Tj表示测试覆盖信息集合T中的一个元素;错误相关切片Slice中元素个数为n;
T=TF∪TP,TP={Ts+1,…,Tm}表示测试执行结果正确的测试集合;
面向对象程序切片谱的矩阵元素M[ei,Tj]为:
3).基于矩阵M[ei,Tj],度量Slice中每个元素ei的可疑度suspiciousness(ei),根据suspiciousness(ei)的大小顺序定位出错误位置;
其中suspiciousness(ei)的计算方法为:
suspiciousness ( e i ) = failed ( e i ) % failed ( e i ) % + passed ( e i ) %
failed ( e i ) % = Σ j = 1 m ( p T j × C i , j ) Σ j = 1 m p T j , passed ( e i ) % = Σ j = 1 m [ ( 1 - p T j ) × C i , j ] Σ j = 1 m ( 1 - p T j )
其中, C i , j = M [ e i , T j ] Σ k = 1 n M [ e k , T j ] , p T j = 1 T j is failed 0 T j is passed
failed(ei)%表示元素ei的失效测试数占失效测试总数之比,passed(ei)表示元素ei的成功测试数占成功测试总数之比。
有益效果:本发明方法提出了一种基于面向对象程序切片谱的方法,通过利用切片技术在缩小错误搜索域方面的作用和程序谱在面向对象程序元素存储及处理方面的优势,来提高面向对象程序中的错误定位搜索效率问题。主要有以下一些优点:
(1)构造了面向对象程序依赖图,并根据失效测试提取了错误相关切片,删除程序中与错误无关的元素,减小了传统的程序谱的规模,提高了语句搜索的效率。传统的切片提取技术是基于系统依赖图的,由于面向对象程序本身的特性,传统的依赖图无法有效提取面向对象程序切片;另外,传统的基于谱的定位技术一般对整个程序的谱矩阵进行分析,这样错误定位的精度和效率就会受到限制;本发明首先提取了错误相关切片,这样可在一定程度上删除与错误无关的冗余部分。
(2)引入程序元素的执行频度,提出了一种新的可疑度度量方法。传统的技术在计算元素的可疑度时只考虑了其被测试执行时覆盖的信息,即只统计该元素被执行与否,不考虑该元素每次执行的次数,即频度;实际上,由于每个测试执行规模大小不一,每个元素被执行的次数也不一样,该元素对每次执行结果的贡献也是不一样的;例如,如果某次测试执行经过了1条语句,那么这条语句对执行结果的贡献度可以达到100%,而如果这次执行经过了2条语句,且一条语句执行了一次,另一条语句被执行了两次,那么我们认为这两条语句对测试结果的贡献度也是不一样的。本发明的方法为实际中的面向对象程序的错误定位提供了一个更精确的度量选择。
附图说明
图1是程序调试流程图。
图2是本发明的面向对象错误定位流程图。
图3是本发明所使用的面向对象程序系统依赖图的架构图。
图4是本发明错误相关切片生成器工具结构图。
图5.1、图5.2和图5.3是本发明的一个实施例图。
其中图5.1是实施例的测试覆盖信息,图5.2是实施例程序的面向对象程序依赖图,图5.3展示了实施例的面向对象程序切片谱,以及对错误相关切片中每个元素的可疑度度量值。
具体实施方式
一种基于面向对象程序切片谱的错误定位方法,包括如下步骤:
1).根据失效测试TF和切片准则,并结合面向对象程序系统依赖图,使用图可达性遍历算法,提取错误相关切片集合Slice;
其中,TF={T1,…,Ts}表示测试运行结果错误的测试集合;
GetSlice(Ti)为根据测试执行Ti提取的切片,则错误相关切片集合:Slice=GetSlice(T1)∪GetSlice(T2)∪…∪GetSlice(Ts);其中Ti是TF中的一个元素;
2).结合测试覆盖信息T,构建错误相关切片集合Slice的面向对象程序切片谱矩阵M[ei,Tj],矩阵M[ei,Tj]记录了测试Tj覆盖ei的次数;
其中ei是错误相关切片Slice中的一个元素;Tj表示测试覆盖信息集合T中的一个元素;错误相关切片Slice中元素个数为n;
T=TF∪TP,TP={Ts+1,…,Tm}表示测试执行结果正确的测试集合;
面向对象程序切片谱的矩阵元素M[ei,Tj]为:
3).基于矩阵M[ei,Tj],度量Slice中每个元素ei的可疑度suspiciousness(ei),根据suspiciousness(ei)的大小顺序定位出错误位置;
其中suspiciousness(ei)的计算方法为:
suspiciousness ( e i ) = failed ( e i ) % failed ( e i ) % + passed ( e i ) %
failed ( e i ) % = Σ j = 1 m ( p T j × C i , j ) Σ j = 1 m p T j , passed ( e i ) % = Σ j = 1 m [ ( 1 - p T j ) × C i , j ] Σ j = 1 m ( 1 - p T j )
其中, C i , j = M [ e i , T j ] Σ k = 1 n M [ e k , T j ] , p T j = 1 T j is failed 0 T j is passed
failed(ei)%表示元素ei的失效测试数占失效测试总数之比,passed(ei)表示元素ei的成功测试数占成功测试总数之比。
所述步骤1)中,面向对象程序系统依赖图将类之间的数据依赖关系和控制依赖关系反映在类依赖子图上;将类之间的继承关系反应在类层次子图上;将面向对象程序中的虚函数调用关系反应在虚函数调用图上;其中,过程依赖图子图的节点表示语句或谓词表达式;边包括控制依赖边和数据依赖边,控制依赖边表示语句或表达式执行时的控制依赖关系,数据依赖边表示语句或表达式之间的数据流;类依赖子图确定一个类中的控制依赖关系和数据依赖关系,类中所有方法由过程依赖子图表示;类层次子图用来描述类之间的继承关系,类之间通过入口节点连接;控制依赖子图和数据依赖子图记录的所有的控制依赖和数据依赖实现;虚函数调用图解决了面向对象程序中特有的虚函数调用关系。
所述步骤1)中所述的提取错误相关切片集合Slice包括以下步骤:
(1.1)将面向对象程序源代码转换成抽象语法树,从而便于依赖图的构造;
(1.2)基于抽象语法树提取数据依赖信息、控制依赖信息、类继承信息建立面向对象依赖图;
(1.3)根据失效测试输出及覆盖信息,提取兴趣点、兴趣变量以建立切片准则;
(1.4)在步骤(1.2)与步骤(1.3)的基础上根据切片准则在面向对象依赖图上进行两步图可达性遍历算法提取切片。
(1.5)在步骤(1.4)的基础上提取所有与错误相关的切片。
所述步骤2)与步骤3)中面向对象程序切片谱矩阵构建及可疑度度量抽象模型如下:
其中,e1,…en表示各层次错误相关切片中的元素;T1,…Tm表示m个测试,包括s个失效的测试和m-s个成功的测试;fi,j(1≤i≤n,1≤j≤m)表示测试Tj执行元素ei的频度;最后一列表示相应元素包含错误的可疑度。
下面结合附图对发明的具体实施例进行详细说明。
如图1所示,一个程序调试过程通常包括发现错误、定位错误、纠错三个过程,错误定位过程是调试中最困难最复杂的工作,发现错误为后续的错误定位过程提供了测试历史信息,错误定位为后续的纠错指明了具体位置。
图2是本发明的面向对象错误定位流程图。首先我们根据源程序构造面向对象程序依赖图,然后结合测试历史中提取的失效测试信息提取错误相关切片,根据错误相关切片和测试历史信息中提取的测试覆盖信息构造面向对象程序切片谱矩阵,最后基于面向对象程序切片谱矩阵度量错误相关切片中每个元素的可疑度,并根据可疑度大小顺序定位到错误位置。在这个过程中,涉及到四个主要部分:面向对象程序依赖图、错误相关切片、面向对象程序切片谱矩阵、错误相关切片内各个元素的可疑度度量。
一、主要构件
1、面向对象程序系统依赖图
图3显示了本实施例的面向对象程序依赖图的主要组成。通常切片是根据切片准则在程序依赖图上进行图可达性算法取得,而传统的依赖图通常只包括数据依赖和控制依赖,由于面向对象本身的特性,无法在传统的依赖图上取得精确的面向对象程序切片。相对于传统的系统图,本发明的面向对象系统依赖图将类之间的数据依赖关系和控制依赖关系反应在类依赖子图上,将类之间的继承关系反应在类层次子图上,将面向对象程序中的虚函数调用关系我们反应在虚函数调用图上。其中,过程依赖图子图的节点表示语句或谓词表达式,边包括控制依赖边和数据依赖边,控制依赖边表示语句或表达式执行时的控制依赖关系,数据依赖边表示语句或表达式之间的数据流;类依赖子图确定一个类中的控制依赖关系和数据依赖关系,类中所有方法由过程依赖子图表示;类层次子图主要用来描述类之间的继承关系,类之间通过入口节点连接;控制依赖子图和数据依赖子图记录了所有语句间的控制依赖和数据依赖关系;虚函数调用图解决了有些面向对象程序中特有的虚函数调用关系。面向对象系统依赖图着重解决传统的依赖图无法精确提取面向对象程序切片的问题。
2、错误相关切片
错误相关切片是在面向对象程序依赖图基础上提取的。图4是具体实施例一个错误相关切片生成器工具结构图,主要包括如下几个部分:
(1)源程序:工具的输入。本发明对面向对象程序进行错误定位,所以错误相关切片生成器工具是一个包含BUG的面向对象程序工程文件或者程序源代码。
(2)失效测试:工具的输入。一个程序调试过程通常包括发现错误、定位错误、纠错三个过程。在程序错误定位之前,要对程序进行测试并发现错误,错误定位以前期的测试历史为输入。错误相关切片工具根据测试历史提取了失效测试信息。
(3)代码转换器:面向程序切片通过两步图可达性算法遍历面向对象依赖图取得,依赖图的构造一般需要借助源代码的中间表示形式实现,本发明将面向对象程序源代码转换成抽象语法树这种中间表示形式以便于依赖图的构造。
(4)面向对象依赖图生成器:抽象语法树提供了丰富的信息以提取变量的定义使用关系、程序的控制依赖信息、类继承信息等等,本发明基于抽象语法树建立了过程依赖子图、类依赖子图、类层次子图、控制依赖子图、数据依赖子图和虚函数调用子图,从而最终建立了系统的面向对象依赖图。
(5)切片准则提取器:切片准则由兴趣点、兴趣变量和输入组成。失效测试输出是错误定位技术中最有价值的参考信息,本发明从失效的测试输出中提取兴趣点、兴趣变量,然后根据失效测试的输入建立切片准则。
(6)切片生成器:根据切片准则在面向对象依赖图上进行两步图可达性遍历算法提取切片,切片提取了特定输入下的兴趣点处的兴趣变量相关的数据依赖和控制依赖部分,一般情况下,根据失效测试提取的切片代码包含了错误。
(6)错误相关切片:错误相关切片是根据失效测试提取的所有切片的并集。多个失效的测试可能由一个错误引起也可能由多个错误引起,本发明首先提取所有与错误相关的切片代码部分,然后再对错误相关代码进行度量,所以本发明采用并集切片模型以更全面对后续程序语句错误进行度量。
3、程序切片谱矩阵及可疑度度量
本发明进行错误定位主要分为两步,第一步构造出错误相关切片缩小搜索域,第二步,对错误相关切片中每个元素进行度量。对错误相关的度量,主要是基于面向对象程序切片谱矩阵,本发明的面向对象程序切片谱矩阵构建及可疑度度量抽象模型如下:
其中,e1,...en表示各层次错误相关切片中的元素,T1,…Tm表示m个测试,包括s个失效的测试和m-s个成功的测试,fi,j(1≤i≤n,1≤j≤m)表示测试Tj执行元素ei的频度,最后一列表示相应元素包含错误的可疑度(suspiciousness)。
二、方法流程
本实施例定位面向对象程序中错误的位置,已知面向对象程序SP及其测试历史集合T=TF∪TP,其中TF={T1,…,Ts}表示失效测试集合,TP={Ts+1,…,Tm}表示通过的测试集合。具体的面向对象程序切片谱步骤如下:
(1)构造SP的面向对象程序依赖图;
(2)根据失效的测试T1,…,Ts提取切片准则,并结合面向对象程序依赖图提取切片GetSlice(T1),…,GetSlice(Ts);
(3)计算错误相关切片Slice=GetSlice(T1)∪GetSlice(T2)∪…∪GetSlice(Ts);
(4)结合测试覆盖信息,构建错误相关切片Slice的面向对象程序切片谱矩阵M;
(5)计算错误相关切片中每个元素的可疑度suspiciousness(ei),并根据可疑度大小确定错误位置。
实施例:
为了方便描述,我们假定一个面向对象程序SP的测试覆盖信息如图5.1所示,面向对象系统依赖图如图5.2所示,错误包含在E5中。其中图5.1内容描述的是测试Tj经过程序元素ei的次数,最后一行是测试的输出结果失效与否。根据失效测试,结合依赖图,我们采用图遍历算法取得切片
GetSlice(T3)={E1,E5},GetSlice(T4)={E1,E3,E5},错误相关切片Slice=GetSlice(T3)∪GetSlice (T4)={E1,E3,E5}。结合测试覆盖信息,面向对象程序切片谱矩阵如图5.3所示,其中5.3最后一列是根据可疑度度量值:
suspiciousness(E1)=((1/2+1/3)/2)/((1/2+1/3)/2+(1/1+1/2+1/2)/3)=0.38
suspiciousness(E3)=((0/2+1/3)/2)/((0/2+1/3)/2+(0/1+0/2+1/2)/3)=0.50
suspiciousness(E5)=((0/2+1/3)/2)/((0/2+1/3)/2+(0/1+0/2+1/2)/3)=0.71
根据度量值结果大小顺序依次搜索错误位置,本实例中第一次搜索程序元素E5,确定为错误位置,从而完成了一个错误定位过程。

Claims (2)

1.一种基于面向对象程序切片谱的错误定位方法,其特征在于,包括如下步骤:
步骤1)根据失效测试TF和切片准则,并结合面向对象程序系统依赖图,使用图可达性遍历算法,提取错误相关切片集合Slice;其中,TF={T1,…,Ts}表示测试运行结果错误的测试集合;
GetSlice(TS)为根据测试执行TS提取的切片,则错误相关切片集合:Slice=GetSlice(T1)∪GetSlice(T2)∪…∪GetSlice(Ts);其中TS是TF中的一个元素;
步骤2)结合测试覆盖信息集合T,构建错误相关切片集合Slice的面向对象程序切片谱矩阵M,矩阵元素M[ei,Tj]记录了测试Tj覆盖ei的次数;
其中ei是错误相关切片集合Slice中的一个元素;Tj表示测试覆盖信息集合T中的一个元素;错误相关切片集合Slice中元素个数为n;
T=TF∪TP,TP={Ts+1,…,Tm}表示测试执行结果正确的测试集合;
面向对象程序切片谱的矩阵元素M[ei,Tj]为:
其中,1≤i≤n,1≤j≤m;
步骤3)基于矩阵元素M[ei,Tj],度量在错误相关切片集合Slice中每个元素ei的可疑度suspiciousness(ei),根据suspiciousness(ei)的大小顺序定位出错误位置;
其中suspiciousness(ei)的计算方法为:
suspiciousness ( e i ) = failed ( e i ) % failed ( e i ) % + passed ( e i ) %
failed ( e i ) % = Σ j = 1 m ( p T j × C i , j ) Σ j = 1 m p T j , passed ( e i ) % = Σ j = 1 m [ ( 1 - p T j ) × C i , j ] Σ j = 1 m ( 1 - p T j )
其中, C i , j = M [ e i , T j ] Σ t = 1 n M [ e t , T j ] p T j = 1 T j is failed 0 T j is passed
failed(ei)%表示元素ei的失效测试数占失效测试总数之比,passed(ei)%表示元素ei的成功测试数占成功测试总数之比;
所述步骤1)中,
面向对象程序系统依赖图将类之间的数据依赖关系和控制依赖关系反映在类依赖子图上;
将类之间的继承关系反应在类层次子图上;
将面向对象程序中的虚函数调用关系反应在虚函数调用图上;
其中,
过程依赖图子图的节点表示语句或谓词表达式;边包括控制依赖边和数据依赖边,控制依赖边表示语句或谓词表达式执行时的控制依赖关系,数据依赖边表示语句或谓词表达式之间的数据流;
类依赖子图确定一个类中的控制依赖关系和数据依赖关系,类中所有方法由过程依赖子图表示;
类层次子图用来描述类之间的继承关系,类之间通过入口节点连接;
控制依赖子图和数据依赖子图记录的所有的控制依赖和数据依赖实现;
虚函数调用图解决了面向对象程序中特有的虚函数调用关系;
步骤1)中所述的提取错误相关切片集合Slice包括以下步骤:
(1.1)将面向对象程序源代码转换成抽象语法树,从而便于依赖图的构造;
(1.2)基于抽象语法树提取数据依赖信息、控制依赖信息、类继承信息建立面向对象依赖图;
(1.3)根据失效测试输出及覆盖信息,提取兴趣点、兴趣变量以建立切片准则;
(1.4)在步骤(1.2)与步骤(1.3)的基础上根据切片准则在面向对象依赖图上进行两步图可达性遍历算法提取切片;
(1.5)在步骤(1.4)的基础上提取所有与错误相关的切片。
2.根据权利要求1所述的基于面向对象程序切片谱的错误定位方法,其特征在于,步骤2)与步骤3)中面向对象程序切片谱矩阵构建及可疑度度量抽象模型如下:
其中,e1,…en表示各层次错误相关切片中的元素;T1,…Tm表示m个测试,包括s个失效的测试和m-s个成功的测试;fi,j表示测试Tj执行元素ei的频度,其中,1≤i≤n,1≤j≤m;最后一列表示相应元素包含错误的可疑度。
CN201210184233.2A 2012-06-06 2012-06-06 一种基于面向对象程序切片谱的错误定位方法 Expired - Fee Related CN102750223B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210184233.2A CN102750223B (zh) 2012-06-06 2012-06-06 一种基于面向对象程序切片谱的错误定位方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210184233.2A CN102750223B (zh) 2012-06-06 2012-06-06 一种基于面向对象程序切片谱的错误定位方法

Publications (2)

Publication Number Publication Date
CN102750223A CN102750223A (zh) 2012-10-24
CN102750223B true CN102750223B (zh) 2015-07-29

Family

ID=47030433

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210184233.2A Expired - Fee Related CN102750223B (zh) 2012-06-06 2012-06-06 一种基于面向对象程序切片谱的错误定位方法

Country Status (1)

Country Link
CN (1) CN102750223B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103150254B (zh) * 2013-03-26 2015-05-13 哈尔滨工业大学 基于状态依赖概率建模的软件错误定位方法
CN104699599B (zh) * 2013-12-10 2018-11-06 上海精密计量测试研究所 基于idUCf五元结构的过程间静态切片提取方法
CN104317707B (zh) * 2014-10-15 2017-09-29 中国科学院软件研究所 一种基于程序结构影响感知的软件错误定位方法
CN104598381B (zh) * 2015-01-26 2018-01-02 中国人民解放军理工大学 一种蜕变测试中失效测试用例的定位方法
CN104572474B (zh) * 2015-01-30 2017-09-29 南京邮电大学 一种基于动态切片的轻量级错误定位技术实现方法
CN106886490B (zh) * 2016-12-30 2019-09-20 浙江理工大学 一种基于失效轨迹的程序错误定位方法
CN107123068B (zh) * 2017-04-26 2021-01-01 北京航空航天大学 一种面向程序设计语言课程个性化学习效果分析系统及方法
CN109815153B (zh) * 2019-02-19 2024-01-26 北京天诚同创电气有限公司 Plc程序及电机启停控制程序的静态切片方法和装置
CN112131132A (zh) * 2020-10-12 2020-12-25 苏州浪潮智能科技有限公司 基于图与概率的问题代码协助定位方法、装置和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110051A (zh) * 2010-12-31 2011-06-29 北京邮电大学 应用程序切片技术的静态缺陷检测方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100146340A1 (en) * 2008-12-09 2010-06-10 International Business Machines Corporation Analyzing Coverage of Code Changes

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102110051A (zh) * 2010-12-31 2011-06-29 北京邮电大学 应用程序切片技术的静态缺陷检测方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Program slicing spectrum-based software fault localization;Wen Wanzhi等;《Proc of the 23rd Int Conf on Software Engineering and Knowledge Engineering》;20111231;第213-218页 *
程序切片技术及其在面向对象软件度量和软件测试中的应用;李必信;《中国博士学位论文全文数据库信息科技辑》;20051215(第8期);第23-25,32,66-67页 *

Also Published As

Publication number Publication date
CN102750223A (zh) 2012-10-24

Similar Documents

Publication Publication Date Title
CN102750223B (zh) 一种基于面向对象程序切片谱的错误定位方法
CN109739755B (zh) 一种基于程序追踪和混合执行的模糊测试系统
Eski et al. An empirical study on object-oriented metrics and software evolution in order to reduce testing costs by predicting change-prone classes
Syaikhuddin et al. Conventional software testing using white box method
CN104503917A (zh) 基于数据流函数调用路径的变更影响域分析方法及系统
CN102831055A (zh) 基于加权属性的测试用例选择方法
CN104239219A (zh) 一种基于覆盖的软件缺陷定位技术的在线评测与实验平台及方法
CN111176995B (zh) 一种基于大数据测试用例的测试方法和测试系统
Bonn et al. A framework for automated combinatorial test generation, execution, and fault characterization
Delgado-Pérez et al. Using evolutionary mutation testing to improve the quality of test suites
Lebeuf et al. Understanding, debugging, and optimizing distributed software builds: A design study
Arora et al. Evaluation of flow graph and dependence graphs for program representation
Aho et al. Making GUI testing practical: Bridging the gaps
CN110554952B (zh) 一种基于搜索的分层回归测试数据生成方法
Saxena et al. Software Fault Localization: Techniques, Issues and Remedies.
CN113282495B (zh) 一种基于轨迹监控的Java软件故障定位方法
CN114138662A (zh) 一种基于上下文的移动应用执行序列约减方法
Zambon Using graph transformations and graph abstractions for software verification
CN110362463A (zh) 一种自动挑选测试用例进行回归测试的方法和装置
CN111967013B (zh) 一种基于补丁摘要比对的c/c++补丁存在性检测方法
CN114579431A (zh) 一种基于混合分析的除零错误检测方法
Lundsten EALRTS: A predictive regression test selection tool
CN109977019B (zh) 一种基于增量采样的编译器优化序列测试方法
JP2017224185A (ja) バグ混入確率計算プログラム及びバグ混入確率計算方法
Ibrahim et al. Finite State Machine-Model Based Testing on Website Application

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150729

Termination date: 20180606

CF01 Termination of patent right due to non-payment of annual fee