CN102289408B - 一种基于错误传播网络的回归测试用例排序方法 - Google Patents

一种基于错误传播网络的回归测试用例排序方法 Download PDF

Info

Publication number
CN102289408B
CN102289408B CN 201110264546 CN201110264546A CN102289408B CN 102289408 B CN102289408 B CN 102289408B CN 201110264546 CN201110264546 CN 201110264546 CN 201110264546 A CN201110264546 A CN 201110264546A CN 102289408 B CN102289408 B CN 102289408B
Authority
CN
China
Prior art keywords
node
test case
class
limit
importance
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.)
Active
Application number
CN 201110264546
Other languages
English (en)
Other versions
CN102289408A (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.)
Wuhan University WHU
Original Assignee
Wuhan University WHU
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 Wuhan University WHU filed Critical Wuhan University WHU
Priority to CN 201110264546 priority Critical patent/CN102289408B/zh
Publication of CN102289408A publication Critical patent/CN102289408A/zh
Application granted granted Critical
Publication of CN102289408B publication Critical patent/CN102289408B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种回归测试用例排序方法,尤其是涉及一种基于错误传播网络的回归测试用例排序方法。本发明提出一种基于软件网络的回归测试用例排序方法。该方法首先将软件的结构(软件元素及元素间的)在类粒度用加权网络模型抽象;然后基于该网络模型分析类对于测试的重要性;最后根据测试用例覆盖的类的重要性总和对其进行排序,并按照排序后的顺序执行测试用例。因此,本发明具有如下优点:可以有效提高错误检出率,减少测试时间,提高测试效率。

Description

一种基于错误传播网络的回归测试用例排序方法
技术领域
本发明涉及一种回归测试用例排序方法,尤其是涉及一种基于错误传播网络的回归测试用例排序方法。
背景技术
软件测试是软件开发的重要过程之一,目的是尽可能多的发现软件中的错误,是保证软件质量的重要手段。软件测试工作量大,成本高,因此如何提高测试效率、保证软件质量已经成为软件工程领域当前研究的热点与难点,并产生了一些有意义的方法。
回归测试是软件测试的重要过程,用于检测代码修改是否引入了新的错误。为了提高测试效率,人们提出了测试用例排序、测试用例选择等方法。测试用例排序把优先级最高的测试用例放在最早运行以达到某种目标(如尽早提供测试反馈信息、尽早检测出错误等)。研究表明,测试用例排序可以提高测试集的错误检出率。然而,当前关于测试用例排序的研究大多是对于面向过程语言以及特定的测试用例集,而对于与面向过程语言有很大不同的面向对象语言,尚未得到足够重视。
软件内部结构对软件质量和缺陷的传播有重要的影响。但是现有的方法在结构信息的利用方面存在不足。复杂网络理论与方法是研究复杂系统的有效工具,它认为系统的结构决定其功能,强调从整体的角度认识软件及其行为。软件系统代表了一类人工复杂系统,当然也可以借鉴复杂网络的理论进行研究。用复杂网络理论对软件系统进行研究,具有两点优势:(1)为研究软件结构及其行为提供了一种全局、整体的视角;(2)可以借鉴图论和复杂系统的相关理论,具有良好的数学基础,为软件工程从经验型向计算型转变提供了手段。
发明内容
本发明主要是解决现有技术所存在的上述技术问题;提供了一种可以有效提高错误检出率,减少测试时间,提高测试效率的一种基于错误传播网络的回归测试用例排序方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:
一种基于错误传播网络的回归测试用例排序方法,其特征在于,包括以下步骤:
步骤1,构建面向对象的错误传播网络,具体步骤如下:
步骤1.1,构建在方法属性粒度的网络WFDN=(Nf,Ef):其中Nf代表系统中的特征节点,其中特征节点代表方法和属性;Ef表示特征节点之间的有向边,Ef(i,j)表示节点i和节点j存在边,方向从节点i到节点j;
步骤1.2,基于步骤1.1完成的WFDN构建在类粒度的网络WCDN=(Nc,Ec,P):其中Nc代表系统中类的节点;Ec表示类之间的有向边,Ec(i,j)表示节点i和节点j存在边,方向从节点i到节点j;P是类之间错误传播可能性的强度矩阵,P(j,i)表示错误从节点j传播到节点i的可能性强度;
步骤1.3,基于步骤1.2完成的WCDN构建错误传播网络BPN=(Nc,Eb,Pb):BPN的节点集和WCDN相同,所述边集Eb在Ec基础上做了部分修改;
步骤2,类测试重要性度量指标:定义测试用例覆盖的类的测试重要性,即数值上第j个类的测试重要性TIC(j)等于BPN中指向这个节点的边的边权和,即 TIC ( j ) = Σ i P b ( j , i ) ;
步骤3,测试用例重要性指标:测试用例的重要性由其覆盖的类的重要性定义,即若gtc(i)表示返回第i个测试用例覆盖的类集合,则第i个测试用例的重要性定义为其覆盖的所有类的重要性的总和,即 ITC ( i ) = Σ j ∈ gtc ( i ) TIC ( j ) ;
步骤4,测试用例排序,根据步骤3中得到所有测试用例的测试重要性后,对其按降序排列,然后依次执行测试用例。
本发明创造性的提出一种基于网络的回归测试用例排序方法。该方法首先将软件的结构(软件元素及元素间的)在类粒度用加权网络模型抽象;然后基于该网络模型分析类对于测试的重要性;最后根据测试用例覆盖的类的重要性总和对其进行排序,并按照排序后的顺序执行测试用例。
在上述的一种基于错误传播网络的回归测试用例排序方法,所述的步骤1.3中,Eb在Ec基础上做修改的具体方法为以下选择步骤:
步骤2.1,若在WCDN中节点i和节点j间不存在直接的依赖关系,但是若存在有向路径i→t1→t2→...tn→j,则节点i和节点j间也将存在一条有向边Eb(i,j),边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和,即
P b ( j , i ) = Σ P c ( j , t n ) P c ( t 1 , i ) Π a = 0 n - 2 P c ( t n - a , t n - a - 1 )
Pc:类节点之间的影响概率,Pb:类节点之间的错误传播影响度
Pc计算公式为:
Pc(i,j)=|ECRS(i,j)|/Feature(j)
其中,类之间可达集(Extra-Class Reachable Set,ECRS(i,j))是类Ci中所有特征到类Cj的可达集的并集。如果类Ci中的特征w可以到达类Cj,那么从w到Cj经过只由Ci或Cj的结点组成且经过每个结点一次的边。算得的类之间的影响概率Pc的值在0到1之间,值越大,表明如果类中的某些特征出现错误,则影响到其他类的概率越大,应用到本实施例中,即如在WFDN(图2)中,B到C的可达特征有两个(C.a和C.d()),因此可达集数目为2,C的特征有四个,因此B到C的影响概率为1/2,即如果B发生变化,可能通过B到C的两个特征影响到C,影响概率为0.5。
ECRS(B,C)=(B.c(),C)={C.a,C.d()}
Pc(B,C)=2/4=0.5
ECRS(C,B)=(C.a,B)+(C.d(),B)={B.d()}
Pc(C,B)=1/4=0.25
步骤2.2,若在WCDN中节点i和节点j间已存在直接的依赖关系,但是又存在有向路径i→t1→t2→...tn→j,则节点i和节点j间的边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和与这两节点间直接依赖的边权之和,即
P b ( j , i ) = P c ( j , i ) + Σ P c ( j , t n ) P c ( t 1 , i ) Π a = 0 n - 2 P c ( t n - a , t n - a - 1 )
在上述的一种基于错误传播网络的回归测试用例排序方法,所述的步骤1.2中,所述的类既包含了类,也包含了接口;节点之间的边权是通过分析WFDN中方法和属性间的交互关系获得,即两节点间错误传播的强度值是被依赖节点中影响另外一个节点的方法和属性占该类方法和属性节点总数的比例;所述边权是由两个节点直接联系得到的。
在上述的一种基于错误传播网络的回归测试用例排序方法,所述的步骤1.1中,所述特征节点代表的方法和属性具体指:软件系统中所有类中的方法和属性的集合;
因此,本发明具有如下优点:可以有效提高错误检出率,减少测试时间,提高测试效率。
附图说明
图1本发明的代码片段;
图2本发明的实施例构建的WFDN;
图3本发明的实施例构建的WCDN;
图4本发明的实施例构建的WCDN中边权计算
图5本发明的实施例构建的BPN;
具体实施方式
下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。
实施例:
一种基于错误传播网络的回归测试用例排序方法,其特征在于,包括以下步骤:
步骤1,构建面向对象的错误传播网络,具体步骤如下:
步骤1.1,构建图1代码片段在方法属性粒度的网络WFDN=(Nf,Ef)(如图2所示):节点边上的文字为其对应方法或属性的名称,边代表方法之间的调用关系和方法对属性的使用关系,边权设为1,其中Nf代表系统中的特征节点,其中特征节点代表方法和属性;Ef表示特征节点之间的有向边,Ef(i,j)表示节点i和节点j存在边,方向从节点i到节点j;所述特征节点代表的方法和属性具体指:软件系统中所有类中的方法和属性的集合。
步骤1.2,基于步骤1完成的WFDN如图2所示构建在类粒度的网络WCDN=(Nc,Ec,P):其中Nc代表系统中类的节点;Ec表示类之间的有向边,Ec(i,j)表示节点i和节点j存在边,方向从节点i到节点j;P是类之间错误传播可能性的强度矩阵,P(j,i)表示错误从节点j传播到节点i的可能性强度;所述的类既包含了类,也包含了接口;节点之间的边权是通过分析WFDN中方法和属性间的交互关系获得,即两节点间错误传播的强度值是被依赖节点中影响另外一个节点的方法和属性占该类方法和属性节点总数的比例;所述边权是由两个节点直接联系得到的。如图4中,classB与classC之间的边权计算如下:因为classB中方法和属性的个数和为4,但是其中只有B.d()的错误可能会影响到classC;所以P(classB,classC)=|{b.d()}|/|{B.a,B.c(),B.d(),B.b()}|=0.25;因为classC中方法和属性的数量为4,但是只有C.a和C.d()的错误可能会影响到classB,所以P(classC,classB)=|{C.a,C.d()}|/|{C.a,C.c(),C.d(),C.b}|=0.5。
步骤1.3,基于步骤1.2完成的WCDN构建错误传播网络BPN=(Nc,Eb,Pb):BPN的节点集同WCDN,所述边集Eb在Ec基础上做了部分修改;Eb在Ec基础上做修改的具体方法为以下选择步骤:
步骤2.1,若在WCDN中节点i和节点j间不存在直接的依赖关系,但是若存在有向路径i→t1→t2→...tn→j,则节点i和节点j间也将存在一条有向边Eb(i,j),边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和,即
P b ( j , i ) = Σ P c ( j , t n ) P c ( t 1 , i ) Π a = 0 n - 2 P c ( t n - a , t n - a - 1 ) ;
步骤2.2,若在WCDN中节点i和节点j间已存在直接的依赖关系,但是又存在有向路径i→t1→t2→...tn→j,则节点i和节点j间的边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和与这两节点间直接依赖的边权之和,即
P b ( j , i ) = P c ( j , i ) + Σ P c ( j , t n ) P c ( t 1 , i ) Π a = 0 n - 2 P c ( t n - a , t n - a - 1 ) .
应用到本实施例中,即如在WCDN中节点classC没有边指向节点classA,但是存在有向路径,则节点classC和节点classA间也将存在一条有向边Eb(classC,classA),边权等于该路径上所有边的边权乘积之和,即Pb(classC,classA)=0.25*0.33=0.08。在WCDN中又存在有向路径classC→classE→classA和classC→classB→classE→classA,则节点classC和节点classA间的边权等于所有这些有向路径边权之和与这两节点间直接依赖的边权之和,即Pb(classC,classA)=0.08+0.5*0.67+0.25*0.5*0.67=0.08+0.335+0.08375=0.5。同理可以得到其它节点对之间的边及其边权。从而得到相应的图3相应的BPN(如图5)
步骤2,类测试重要性度量指标:定义测试用例覆盖的类的测试重要性,即数值上第j个类的测试重要性TIC(j)等于BPN中指向这个节点的边的边权和,即
Figure GDA0000375981340000072
在本实施例中,在得到图1代码的BPN之后,就可以计算类的测试重要性,图3中5个类的测试重要性分别是:
TIC(classA)=Pb(classA,classB)+Pb(classA,classC)+Pb(classA,classD)+Pb(classA,classE)=0.83+0.5+0.59+0.67=2.59
同理:
TIC(classB)=0.25+0.125=0.38
TIC(classC)=0.5+0.5=1
TIC(classD)=0
TIC(classE)=0.5+0.92+0.67+0.83=2.92;
步骤3,测试用例重要性指标:测试用例的重要性由其覆盖的类的重要性定义,即若gtc(i)表示返回第i个测试用例覆盖的类集合,则第i个测试用例的重要性定义为其覆盖的所有类的重要性的总和,即
Figure GDA0000375981340000081
在本实施例中,假设存在5个测试用例,tc1,tc2,tc3,tc4,tc5,它们覆盖的类依次如下:
tc1:classA、classB、classE;
tc2:classC、classD、classE;
tc3:classA、classB、classC;
tc4:classA、classB、classD;
tc5:classA、classD、classE;
因此,各个测试用例的测试重要性分别为:
TIC(tc1)=2.59+0.38+2.92=5.89
TIC(tc2)=1+0+2.92=3.92
TIC(tc3)=2.59+0.38+1=3.97
TIC(tc4)=2.59+0.38+0=2.97
TIC(tc5)=2.59+0+2.92=5.51;
步骤4,测试用例排序,根据步骤3中得到所有测试用例的测试重要性后,对其按降序排列,然后依次执行测试用例,本实施例,即是将上述5个测试用例按其重要性从高到低排序,即
TIC(tc1)>TIC(tc5)>TIC(tc3)>TIC(tc2)>TIC(tc4),因此按顺序tc1,tc5,tc3,tc2,tc4执行测试用例。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (4)

1.一种基于错误传播网络的回归测试用例排序方法,其特征在于,包括以下步骤:
步骤1,构建面向对象的错误传播网络,具体步骤如下:
步骤1.1,构建在方法属性粒度的网络WFDN=(Nf,Ef):其中Nf代表系统中的特征节点,其中特征节点代表方法和属性;Ef表示特征节点之间的有向边,Ef(i,j)表示节点i和节点j存在边,方向从节点i到节点j;
步骤1.2,基于步骤1完成的WFDN构建在类粒度的网络WCDN=(Nc,Ec,P):其中Nc代表系统中类的节点;Ec表示类之间的有向边,Ec(i,j)表示节点i和节点j存在边,方向从节点i到节点j;P是类之间错误传播可能性的强度矩阵,P(j,i)表示错误从节点j传播到节点i的可能性强度;
步骤1.3,基于步骤2完成的WCDN构建错误传播网络BPN=(Nc,Eb,Pb):BPN的节点集同WCDN,边集Eb在Ec基础上做了部分修改;Pb:类节点之间的错误传播影响度;
步骤2,类测试重要性度量指标:定义测试用例覆盖的类的测试重要性,即数值上第j个类的测试重要性TIC(j)等于BPN中指向这个节点的边的边权和,即 TIC ( j ) = Σ i P b ( j , i ) ;
步骤3,测试用例重要性指标:测试用例的重要性由其覆盖的类的重要性定义,即若gtc(i)表示返回第i个测试用例覆盖的类集合,则第i个测试用例的重要性定义为其覆盖的所有类的重要性的总和,即 ITC ( i ) = Σ j ∈ gtc ( i ) TIC ( j ) ;
步骤4,测试用例排序,根据步骤3中得到所有测试用例的测试重要性后,对其按降序排列,然后依次执行测试用例。
2.根据权利要求1所述的一种基于错误传播网络的回归测试用例排序方法,其特征在于,所述的步骤1.3中,Eb在Ec基础上做修改的具体方法为以下选择步骤:
步骤2.1,若在WCDN中节点i和节点j间不存在直接的依赖关系,但是若存在有向路径i→t1→t2→...tn→j,则节点i和节点j间也将存在一条有向边Eb(i,j),边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和,即
P b ( j , i ) = Σ P c ( j , t n ) P c ( t 1 , i ) Π a = 0 n - 2 P c ( t n - a , t n - a - 1 ) ;
Pc:类节点之间的影响概率;
其中,Pc(j,i)=|ECRS(i,j)|/Feature(j);
步骤2.2,若在WCDN中节点i和节点j间已存在直接的依赖关系,但是又存在有向路径i→t1→t2→...tn→j,则节点i和节点j间的边权等于所有这些有向路径边权之和,其中单条路径的边权为该路径上所有边的边权乘积之和与这两节点间直接依赖的边权之和,即
P b ( j , i ) = P c ( j , i ) + Σ P c ( j , t n ) P c ( t 1 , i ) Π a = 0 n - 2 P c ( t n - a , t n - a - 1 ) .
3.根据权利要求1所述的一种基于错误传播网络的回归测试用例排序方法,其特征在于,步骤1.2中,所述的类既包含了类,也包含了接口;节点之间的边权是通过分析WFDN中方法和属性间的交互关系获得,即两节点间错误传播的强度值是被依赖节点中影响另外一个节点的方法和属性占被依赖的类节点方法和属性节点总数的比例;所述边权是由两个节点直接联系得到的。
4.根据权利要求1所述的一种基于错误传播网络的回归测试用例排序方法,其特征在于,步骤1.1中,所述特征节点代表的方法和属性具体指:软件系统中所有类中的方法和属性的集合。
CN 201110264546 2011-09-08 2011-09-08 一种基于错误传播网络的回归测试用例排序方法 Active CN102289408B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201110264546 CN102289408B (zh) 2011-09-08 2011-09-08 一种基于错误传播网络的回归测试用例排序方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201110264546 CN102289408B (zh) 2011-09-08 2011-09-08 一种基于错误传播网络的回归测试用例排序方法

Publications (2)

Publication Number Publication Date
CN102289408A CN102289408A (zh) 2011-12-21
CN102289408B true CN102289408B (zh) 2013-12-18

Family

ID=45335851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201110264546 Active CN102289408B (zh) 2011-09-08 2011-09-08 一种基于错误传播网络的回归测试用例排序方法

Country Status (1)

Country Link
CN (1) CN102289408B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2631802B1 (de) 2012-02-22 2014-11-19 Siemens Aktiengesellschaft Verfahren zur Speicherung und Propagation von Fehlerinforationen in Computer-Programmen
CN103984632B (zh) * 2014-05-29 2016-08-24 东南大学 一种基于错误传播分析的sdc脆弱指令识别方法
CN105389192B (zh) * 2015-12-18 2018-07-31 浙江工商大学 一种基于加权q2指数的软件类重要性度量方法
CN106354631A (zh) * 2016-08-23 2017-01-25 北京中电华大电子设计有限责任公司 一种快速软件系统回归测试的方法及装置
CN108287785B (zh) * 2017-01-09 2021-06-22 富士通株式会社 测试例排序方法和设备
CN110990291A (zh) * 2019-12-16 2020-04-10 沈阳信安盟科技有限公司 一种基于节点重要度评估的回归测试用例优先级排序方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810364B2 (en) * 2000-02-04 2004-10-26 International Business Machines Corporation Automated testing of computer system components
CN101477490A (zh) * 2009-01-23 2009-07-08 上海第二工业大学 基于复杂网络面向对象集成测试的方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6810364B2 (en) * 2000-02-04 2004-10-26 International Business Machines Corporation Automated testing of computer system components
CN101477490A (zh) * 2009-01-23 2009-07-08 上海第二工业大学 基于复杂网络面向对象集成测试的方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《基于复杂网络的软件复杂性度量研究》;李兵等;《电子学报》;20061231;第34卷(第12A期);2371-2375 *
《基于测试用例设计信息的回归测试优先级算法》;屈波等;《计算机学报》;20080331;第31卷(第3期);431-438 *
屈波等.《基于测试用例设计信息的回归测试优先级算法》.《计算机学报》.2008,第31卷(第3期),431-438.
李兵等.《基于复杂网络的软件复杂性度量研究》.《电子学报》.2006,第34卷(第12A期),2371-2375.

Also Published As

Publication number Publication date
CN102289408A (zh) 2011-12-21

Similar Documents

Publication Publication Date Title
CN102289408B (zh) 一种基于错误传播网络的回归测试用例排序方法
Xu et al. Schedule risk analysis of infrastructure projects: A hybrid dynamic approach
US11481309B2 (en) Capability test method based on joint test support platform
Schwartz et al. Semantically enriched BIM life cycle assessment to enhance buildings’ environmental performance
CN102737063B (zh) 一种日志信息的处理方法及系统
CN108984830A (zh) 一种基于模糊网络分析的建筑能效评价方法及装置
CN104699614A (zh) 一种软件缺陷组件预测的方法
CN103364703B (zh) Led多应力下可靠性快速评测方法
Tan et al. A methodology for augmenting sparse pairwise comparison matrices in AHP: applications to energy systems
El Amine et al. Integration of concept maturity in decision-making for engineering design: An application to a solar collector development
Brdjanin et al. Automated synthesis of initial conceptual database model based on collaborative business process model
CN103593334A (zh) 一种用于判断文本情感程度的方法和系统
Heairet et al. Beyond life cycle analysis: Using an agent-based approach to model the emerging bio-energy industry
CN116757369A (zh) 一种基于注意力机制的碳排放分析方法及系统
CN105871630A (zh) 一种确定网络用户的上网行为类别的方法
Malik et al. F-ONTOCOM: A Fuzzified Cost Estimation Approach for Ontology Engineering
Olszewska et al. Dynamic OWL Ontology Design Using UML and BPMN.
CN111126706A (zh) 基于知识驱动的功能变更传播路径和工作量预测方法
Mabey et al. Agent-Based Product-Social-Impact-Modeling: A Systematic Literature Review and Modeling Process
Mabey et al. Exploring the Usefulness of Agent-Based Product Social Impact Modeling Through a Systematic Literature Review
Simperl et al. Cost estimation for ontology development
Hřebíček et al. Modelling and Forecasting Waste Generation–DECWASTE Information System
Rasmussen et al. From linear to circular: Circular Economy in the Danish construction industry
Prášek et al. Modelling and Forecasting Waste Generation–DECWASTE Information System
Zhou et al. Expert-assisted decision-making algorithm for agricultural waste resource utilization.

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