CN103713999A - 基于定量度量的蜕变关系测试优先级排序方法 - Google Patents

基于定量度量的蜕变关系测试优先级排序方法 Download PDF

Info

Publication number
CN103713999A
CN103713999A CN201310611663.2A CN201310611663A CN103713999A CN 103713999 A CN103713999 A CN 103713999A CN 201310611663 A CN201310611663 A CN 201310611663A CN 103713999 A CN103713999 A CN 103713999A
Authority
CN
China
Prior art keywords
relation
input
test
forall
transformation
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
CN201310611663.2A
Other languages
English (en)
Other versions
CN103713999B (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.)
PLA University of Science and Technology
Original Assignee
PLA University of Science and Technology
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 PLA University of Science and Technology filed Critical PLA University of Science and Technology
Priority to CN201310611663.2A priority Critical patent/CN103713999B/zh
Publication of CN103713999A publication Critical patent/CN103713999A/zh
Application granted granted Critical
Publication of CN103713999B publication Critical patent/CN103713999B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Complex Calculations (AREA)

Abstract

本发明公开了一种基于定量度量的蜕变关系测试优先级排序方法,首先基于测试覆盖,从蜕变关系输入关系的入度进行度量,然后从输出关系的复杂性进行度量,最后从输入关系中相关测试输入之间的距离进行度量。最终,得到蜕变关系的三个有效性度量元。当三者之间的结果不一致时,按照PIR(InD(IR))>PIR(AC(OR))>PIR(Dis(IR))顺序进行排序。通过这三个度量元,无须先验测试执行,就可以实现对蜕变关系测试优先级的快速排序。本发明提供的蜕变关系测试优先级排序的方法,为蜕变关系有效性度量提供了定量依据,并且为测试优先级的设定提供了可行的手段。通过定量度量,相对于传统的经验结论更加简单明了、精确、可行,保证了优先级设计的适用范围,为蜕变关系的选择和排序提供了精确、有效的方法。

Description

基于定量度量的蜕变关系测试优先级排序方法
技术领域
本发明涉及一种基于定量度量的蜕变关系测试优先级排序方法,涉及到蜕变关系的形式化描述与分解方法,属于软件蜕变测试技术领域。
背景技术
在软件测试中,通常假设测试判定存在,这也称为测试判定假设。然而实际中这种假设往往难以成立。因为在许多情况下,验证一个测试用例执行结果正确性的成本非常高,甚至在现有条件下不可能验证。这也就是通常意义上的“测试判定难题”。另外,在其它一些条件下,即便可以得到测试判定,但是这种获得测试判定的方法并不能自动化实现,也需要人工活动的参与。这时,人为活动参与的手动验证测试输出的正确性就容易出错,并且耗时长。
蜕变测试方法通过验证被测软件多次输出之间是否满足一定的关系,从而为构造测试判定提供了一种可行的方法。这种关系我们称之为蜕变关系。通常对于被测软件,测试用例的构造可以采用随机测试策略等技术。而作为蜕变测试关键因素的蜕变关系,其有效性对于蜕变测试的有效性具有至关重要的作用。对于被测软件,通常需要测试人员具有被测软件领域的知识,才能构造更加有效的蜕变关系。
为了提高对被测软件的测试充分性和测试质量,单个蜕变关系肯定不能满足测试需求。因此,在已有的蜕变测试实验研究和实例分析中,研究人员通常都会构造多个蜕变关系,从而形成蜕变关系集合。例如,对于实现[sin(x)]的程序,容易得到以下蜕变关系:
MR sin 1 : ∀ x ∈ T , P ( x ) = sin ( x ) ∀ ( x 1 , x 2 ) ∈ T , ( x 2 - 3 * x 1 = 0 ) → ( P ( x 2 ) - 3 * P ( x 1 ) + 4 * P 2 ( x 1 ) = 0 )
MR sin 2 : ∀ x ∈ T , P ( x ) = sin ( x ) ∀ ( x 1 , x 2 ) ∈ T , ( x 2 + x 1 = 0 ) → ( P ( x 2 ) + P ( x 1 ) = 0 )
MR sin 3 : ∀ x ∈ T , P ( x ) = sin ( x ) ∀ ( x 1 , x 2 ) ∈ T , ( x 2 - x 1 = π ) → ( P ( x 2 ) + P ( x 1 ) = 0 )
MR sin 4 : ∀ x ∈ T , P ( x ) = sin ( x ) ∀ ( x 1 , x 2 ) ∈ T , ( x 2 - x 1 = 2 k * π ) → ( P ( x 2 ) - P ( x 1 ) = 0 )
MR sin 5 : ∀ x ∈ T , P ( x ) = sin ( x ) ∀ ( x 1 , x 2 ) ∈ T , ( x 2 + x 1 = π ) → ( P ( x 2 ) - P ( x 1 ) = 0 )
MR sin 6 : ∀ x ∈ T , P ( x ) = sin ( x ) ∀ ( x 1 , x 2 ) ∈ T , ( x 1 + x 2 = π / 2 ) → ( P 2 ( x 1 ) + P 2 ( x 2 ) = 1 )
这时,如果所有的蜕变关系在故障检测方面具有相同的作用,则我们只需要执行所有蜕变关系就能够提高被测软件的质量。但是,实际上对于相同的被测软件,其蜕变关系检测故障的能力并不相同。在实际的软件测试项目中,由于受测试周期和成本的限制,通常需要对蜕变关系设立优先顺序,即选择发现软件故障的概率更高的蜕变关系优先进行测试。这样就可以在有限的时间内,尽可能多的发现影响软件质量的故障和失效,从而更快的提高软件质量。因此,如何选择检测故障能力更高的蜕变关系就尤为关键。
为了解决蜕变关系的选择问题,研究人员总结出了多个选择和评价准则。如“涉及被测程序核心功能的蜕变关系更加有效”,“能够使得多次执行覆盖不同软件结构的蜕变关系检测故障的能力更强”,“测试用例之间的差异更大的蜕变关系检测故障的能力更强”。虽然这些结论是通过实验获得的,但是这种自然语言描述的度量准则的意义并不明确。如怎样判定蜕变关系涉及被测程序的核心功能,如何度量测试用例之间的差异等等,这些评价指标的获得缺少定量方法的支持。这也影响了这些度量和评价准则的有效性。
发明内容
发明目的:为了克服现有的蜕变关系有效性评价中存在的不足,本发明提供了一种基于定量度量的蜕变关系测试优先级排序方法,分别从蜕变关系输入关系的入度、蜕变关系输出关系的代数复杂度以及蜕变关系相关测试输入之间的距离三个方面获取蜕变关系有效性度量元,然后基于定量度量结果对蜕变关系测试优先级进行排序。
技术方案:一种基于定量度量的蜕变关系测试优先级排序方法,主要包括如下步骤:
(1)针对目标蜕变关系,获取其输入关系和输出关系。
对于蜕变关系(MR:Metamorphic Relation),定量度量必须建立在精确描述的基础上。因此,在步骤(1)中,首先需要对目标蜕变关系进行形式化描述和分解。这种形式化描述和分解可以采用已有的符号逻辑描述方法。最终,对于目标蜕变关系,可以得到如下描述形式:
MR : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
其中[P]表示程序P的程序函数,[P](x)和P(x)分别表示对于输入为x时相应的程序函数的输出和相应的程序输出,T表示测试输入域。
输入关系(IR:Input Relation)可以表示为:IR={<x1,x2,…,xn>|x1,x2,…,xn∈T,r(x1,x2,…,xn)};相应的输出关系(OR:Output Relation)可以表示为:OR={<P(x1),P(x2),…,P(xn)>|x1,x2,…,xn∈T,rf(P(x1),P(x2),…,P(xn))}={<y1,y2,…,yn>|rf(y1,y2,…,yn)};而程序函数本身称为子关系(SR:Self Relation),可以表示为 SR = { < x > | &ForAll; x &Element; T , [ P ] ( x ) } .
(2)计算输入关系的入度(InD(IR):In-Degree(IR));
在相同的条件下,对于同一被测软件,测试覆盖度更高的蜕变关系通常具有更高的测试有效性。而与测试覆盖度直接相关的就是测试输入的个数。基于此,我们提出从蜕变关系的输入关系的测试输入出发,构造定量度量元。
对于输入关系IR,其输入参数集合为<OTCs,FTCs>=<x1,x2,…,xn>。其中OTCs表示原始测试用例集合,FTCs表示附加测试用例集合。这两种测试用例共同构成了输入关系的输入。
引用代数中入度的定义,关系的入度可以通过输入参数集合的大小进行度量。因此,对于输入关系IR,InD(IR)=[OTCs]+[FTCs]=n,即原始测试用例集合与附加测试用例集合的大小之和。这时,输入关系的入度并不同于被测程序输入参数的个数。
通常,在其它因素相同的条件下,输入关系的入度越大,蜕变关系的测试优先级越高。
(3)计算输出关系的代数复杂度(AC(OR):Algebra Complexity of OR);
现有的研究中,通过实验发现,蜕变关系越复杂,其发现故障的概率更高,因此测试优先级越高。实际中,蜕变关系的复杂性又涉及到输入关系的复杂性、输出关系的复杂性以及子关系的复杂性。而现有的蜕变关系有效性评价中并没有确定这三种复杂性与蜕变关系复杂性之间的关系。
蜕变关系复杂度的度量,其目的是按照蜕变关系发现故障的能力进行排序。而影响蜕变关系发现故障能力的关键在于输出关系,输入关系和子关系对其影响并不显著。基于此,需要计算输出关系的复杂度。
根据对已有的蜕变关系分析,发现输出关系本身并不会非常复杂,否则的话,输出关系正确性的验证则也会存在测试判定问题。因此,可以假设输出关系可以化简为初步的代数关系,其中包含四种计算操作(“+”.“-”,“*”,“/”),两种连接操作(“∧”,“∨”),以及五种代数判断操作(“<”,“>”,“≤”,“≥”,“=”)。这时计算输出关系复杂性的问题就可以转化为计算代数关系的复杂性问题。
对于步骤(1)中所给的输出关系rf(y1,y2,…,yn),其计算操作中的加减操作个数为m,乘除操作个数为k,代数判断操作数量为g。
当rf(y1,y2,…,yn)中存在连接操作时,则意味着该蜕变关系为复合蜕变关系,需要对蜕变关系进行分解。
(3-1)当rf中存在“∧”操作时,意味着输入关系r能够同时确保两种输出关系成立。这时,蜕变关系可以表示为:
Figure BDA0000423276540000041
则该MR就可以分解为两个独立的蜕变关系MR1和MR2
M R 1 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r fl ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
M R 2 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f 2 ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
(3-2)当rf中存在“∨”操作时,则可以需要对输入关系进行分解。这时,蜕变关系可以表示为:
Figure BDA0000423276540000044
则输入关系r(x1,x2,…,xn)可以分解为r1(x1,x2,…,xn)和r2(x1,x2,…,xn),而MR也可以分解为两个独立的蜕变关系MR3和MR4
M R 3 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r 1 ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f 1 ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
M R 4 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r 2 ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f 2 ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
(3-3)计算输出关系代数复杂度;
通过步骤(3-2),可以将输出关系中的连接操作消除,因此通常输出关系中只有计算操作和代数判断操作。当输出关系中存在复杂的计算符时,则需要通过已有的运算方法化简为规定的计算操作和代数操作。如果不能化简为规定的操作类型,则该度量就不能适用。
而对于β*x(β∈R)的复杂性,由于其只涉及到单个变量x的加权,因此,认为其复杂性与单个x的复杂性相同。由于并没有先验知识验证不同操作所耗费的计算成本,可以通过这些代数运算的数量度量输出关系的复杂度。因此,AC(OR)=m+k+g。
对于目标蜕变关系,在相同的条件下,当AC(OR)越大,则该蜕变关系的测试优先级越高,反之,则测试优先级越低。
(4)计算输入关系测试输入之间的距离(Dis(IR):Distance between test inputsof IR);
蜕变测试中通常都是基于随机策略产生原始测试用例(OTCs)。这时,对于目标蜕变关系,当然不希望后续产生的附加测试用例(FTCs)与原始测试用例都属于同一等价域。通常这两种测试用例之间的差异越大,则发现故障的概率更高,蜕变关系的测试优先级越高。
通过步骤(1)中的形式化描述,蜕变关系中的测试用例可以形式化表示为输入空间中的点。因此,可以通过计算输入之间的距离来度量测试输入之间的差异。
基于此,当测试输入为X={x1,x2,…,xn}和Y={y1,y2,…,yn}时,采用欧几里得距离度量,可以得到两者之间的距离为:
d ( X , Y ) = &Sigma; i = 1 n ( x i - y i ) 2
当存在两个以上测试输入时,其平均距离为:
d ( X 1 , X 2 , . . . , X m ) &OverBar; = 1 C m 2 &Sigma; j = 1 m &Sigma; k = j m d ( X j , X k )
Dis ( IR ) = d ( X 1 , X 2 , . . . , X m ) &OverBar; .
对于目标蜕变关系,在相同的条件下,当测试输入之间的距离越大,蜕变关系发现故障的概率越大,则越需要优先测试。
通过这三项初步的定量度量,可以实现对蜕变关系测试优先级的快速排序。这里,假设被测软件中存在的故障是无区别的,所有并不考虑故障类型对蜕变关系测试优先级的影响。
(5)蜕变关系测试优先级排序。
根据步骤(2)、(3)、(4)可以分别获得蜕变关系的InD(IR)、AC(OR)和Dis(IR)。当这三种度量之间的结果不一致时,他们之间的优先级顺序为:PIR(InD(IR))>PIR(AC(OR))>PIR(Dis(IR))。
有益效果:本发明提供的基于定量度量的蜕变关系测试优先级排序方法,为蜕变关系有效性度量提供了定量依据,并且为测试优先级的设定提供了可行的手段。首先基于测试覆盖,从蜕变关系输入关系的入度进行度量,然后从输出关系的复杂性进行度量,最后从输入关系中相关测试输入之间的距离进行度量。最终,得到蜕变关系的三个有效性度量元。当三者之间的结果不一致时,按照PIR(InD(IR))>PIR(AC(OR))>PIR(Dis(IR))顺序进行排序。通过这三个度量元,无须先验测试执行,就可以实现对蜕变关系测试优先级的快速排序。本发明的方法简单明了,通过定量度量,相对于传统的经验结论更加精确、可行,保证了优先级设计的适用范围,为蜕变关系的选择和排序提供了精确、有效的方法。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
为了详细、清晰说明本发明的定量度量与排序过程,本例以一个实现[P(x)]=sin(x)函数的程序P为例进行相关说明。该程序用来计算y=sin(x)。
第一步:针对目标蜕变关系,获取其输入关系和输出关系;
(1)至(7)为二元输出蜕变关系,(8)至(10)为多输入蜕变关系,(11)至(14)为复合蜕变关系。
( 1 ) , MR sin 1 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - 3 * x 1 = 0 ) &RightArrow; ( P ( x 2 ) - 3 * P ( x 1 ) + 4 * P 2 ( x 1 ) = 0 )
IR(MRsin1)={<x1,x2>|x1,x2∈T,(x2-3*x1=0)},
SR ( MR sin 1 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin1)={<y1,y2>|y2-3*y1+4*y1 2=0}
( 2 ) , MR sin 2 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 + x 1 = 0 ) &RightArrow; ( P ( x 2 ) + P ( x 1 ) = 0 )
IR(MRsin2)={<x1,x2>|x1,x2∈T,(x2+x1=0)},
SR ( MR sin 2 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin2)={<y1,y2>|y2+y1=0}
( 3 ) , MR sin 3 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - x 1 = &pi; ) &RightArrow; ( P ( x 2 ) + P ( x 1 ) = 0 )
IR(MRsin3)={<x1,x2>|x1,x2∈T,(x2-x1=π)},
SR ( MR sin 3 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin3)={<y1,y2>|y2+y1=0}
( 4 ) , MR sin 4 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - x 1 = 2 k * &pi; ) &RightArrow; ( P ( x 2 ) - P ( x 1 ) = 0 )
IR(MRsin4)={<x1,x2>|x1,x2∈T,(x2-x1=2k*π)},k∈R,
SR ( MR sin 4 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin4)={<y1,y2>|y2-y1=0}
( 5 ) , MR sin 5 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 + x 1 = &pi; ) &RightArrow; ( P ( x 2 ) - P ( x 1 ) = 0 )
IR(MRsin5)={<x1,x2>|x1,x2∈T,(x2+x1=π)},
SR ( MR sin 5 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin5)={<y1,y2>|y2-y1=0}
( 6 ) , MR sin 6 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 1 + x 2 = &pi; / 2 ) &RightArrow; ( P 2 ( x 1 ) + P 2 ( x 2 ) = 1 )
IR(MRsin6)={<x1,x2>|x1,x2∈T,(x2+x1=π/2)},
SR ( MR sin 6 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin6)={<y1,y2>|y1 2+y2 2=1}
( 7 ) , MR sin 7 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - x 1 = 2 * &pi; ) &RightArrow; ( P ( x 1 ) + P ( x 2 ) = 0 )
IR(MRsin7)={<x1,x2>|x1,x2∈T,(x2-x1=2π)},
SR ( MR sin 7 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin7)={<y1,y2>|y1+y2=0}
( 8 )
Figure BDA0000423276540000081
Figure BDA0000423276540000082
SR ( MR sin 8 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin8)={<y1,y2,y3,y4,y5,y6,y7>|4*y7*y6*y5+y4-y3-y2-y1=0}
Figure BDA0000423276540000084
IR(MRsin9)={<x1,x2,x3,x4>|x1,x2,x3,x4∈T,(x3-x2-x1=0)∨(x4+x2-x1=0)},
SR ( MR sin 9 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin9)={<y1,y2,y3,y4>|(y4*y3+y2 2-y2 1=0}
Figure BDA0000423276540000086
IR(MRsin10)={<x1,x2,x3>|x1,x2,x3∈T,(x3-5*x1=0)∨(x2-3*x1=0)},
SR ( MR sin 10 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin10)={<y1,y2,y3,y4>|y3-5*y2-16*y5 1+10*y1=0}
( 11 ) , MR sin 11 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - 3 * x 1 = - 2 * &pi; - 3 &pi; / 2 ) &RightArrow; ( P 2 ( x 2 ) - 16 * P 6 ( x 1 ) - 4 * P 4 ( x 1 ) + 9 * P 2 ( x 1 ) = 1 )
IR(MRsin11)={<x1,x2>|x1,x2∈T,(x2-3*x1=-2*π-3*π/2)},
SR ( MR sin 11 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin11)={<y1,y2>|y2 2-16*y1 6-4*y1 4+9*y1 2=1}.
( 12 ) , MR sin 12 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - 3 * x 1 = 9 * &pi; / 2 ) &RightArrow; ( P 2 ( x 2 ) + 16 * P 5 ( x 1 ) - 16 * P 4 ( x 1 ) - 24 * P 3 ( x 1 ) + 24 * P 2 ( x 1 ) + 9 * P ( x 1 ) = 9 )
IR(MRsin12)={<x1,x2>|x1,x2∈T,(x2-3*x1=-9*π/2)},
SR ( MR sin 12 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin12)={<y1,y2>|y2 2+16*y1 5-16*y1 4-24*y1 3+24*y1 2+9*y1=9}
( 13 ) , MR sin 13 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - 3 * x 1 = 7 * &pi; / 2 ) &RightArrow; ( P 2 ( x 2 ) + 16 * P 6 ( x 1 ) - 40 * P 4 ( x 1 ) + 33 * P 2 ( x 1 ) - 9 = 0 )
IR(MRsin13)={<x1,x2>|x1,x2∈T,(x2-3*x1=7*π/2)},
SR ( MR sin 13 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin13)={<y1,y2>|y2 2+16*y1 6-40*y1 4+33*y1 2-9=0}.
( 14 ) , MR sin 14 : &ForAll; x &Element; T , P ( x ) = sin ( x ) &ForAll; ( x 1 , x 2 ) &Element; T , ( x 2 - 3 * x 1 = 6 k&pi; + 3 * &pi; / 2 ) &RightArrow; ( P 2 ( x 2 ) + 16 * P 6 ( x 1 ) - 24 * P 4 ( x 1 ) + 9 * P 2 ( x 1 ) + 1 = 0 )
k∈R,IR(MRsin14)={<x1,x2>|x1,x2∈T,(x2-3*x1=6kπ+3*π/2)},
SR ( MR sin 14 ) = { < x > | &ForAll; x &Element; T , ( [ P ] ( x ) = sin ( x ) ) } ,
OR(MRsin14)={<y1,y2>|y2 2+16*y1 6-24*y1 4+9*y1 2+1=0}.
第二步:计算输入关系的入度(InD(IR));
通过第一步,得到了目标程序的14个蜕变关系,其相应的输入关系的入度分别为:
(1)InD(IRsin1)=2;
(2)InD(IRsin2)=2;
(3)InD(IRsin3)=2;
(4)InD(IRsin4)=2;
(5)InD(IRsin5)=2;
(6)InD(IRsin6)=2;
(7)InD(IRsin7)=2;
(8)InD(IRsin8)=7;
(9)InD(IRsin9)=4;
(10)InD(IRsin10)=3;
(11)InD(IRsin11)=2;
(12)InD(IRsin12)=2;
(13)InD(IRsin13)=2;
(14)InD(IRsin14)=2;
可以看到除了蜕变关系MRsin8、MRsin9、MRsin10的入度明显大于其他蜕变关系的入度外,其他蜕变关系的入度都相同,所以可以得到14个蜕变关系的测试优先级顺序为:
PRI1(MRsin8)>PRI1(MRsin9)>PRI1(MRsin10)>PRI1(MRsin1)=PRI1(MRsin2)=PRI1(MRsin3)=PRI1(MRsin4)=PRI1(MRsin5)=PRI1(MRsin6)=PRI1(MRsin7)=PRI1(MRsin11)=PRI1(MRsin12)=PRI1(MRsin13)=PRI1(MRsin14)。
第三步:计算输出关系的代数复杂度(AC(OR));
为了进一步对蜕变关系相同的蜕变关系进行优先级排序,需要计算输出关系的代数复杂度。这一步主要以蜕变关系的输出关系为依据,分别计算输出关系中存在的各种操作的个数,14个蜕变关系相应输出关系的代数复杂度分别为:
(1)AC(ORsin1)=m+k+g=1+2+1=4;
(2)AC(ORsin2)=m+k+g=1+0+1=2;
(3)AC(ORsin3)=m+k+g=1+0+1=2;
(4)AC(ORsin4)=m+k+g=1+0+1=2;
(5)AC(ORsin5)=m+k+g=1+0+1=2;
(6)AC(ORsin6)=m+k+g=2+1+1=4;
(7)AC(ORsin7)=m+k+g=1+0+1=2;
(8)AC(ORsin8)=m+k+g=4+2+1=7;
(9)AC(ORsin9)=m+k+g=2+3+1=6;
(10)AC(ORsin10)=m+k+g=3+4+1=8;
(11)AC(ORsin11)=m+k+g=3+10+1=14;
(12)AC(ORsin12)=m+k+g=5+11+1=17;
(13)AC(ORsin13)=m+k+g=3+10+1=14;
(14)AC(ORsin14)=m+k+g=3+10+1=14;
根据最终的计算结果,根据蜕变关系的AC(OR)可以得到14个蜕变关系的测试优先级顺序为:
PRI2(MRsin12)>PRI2(MRsin13)=PRI2(MRsin11)=PRI2(MRsin14)>PRI2(MRsin10)>PRI2(MRsin8)>PRI2(MRsin9)>PRI2(MRsin1)=PRI2(MRsin6)>PRI2(MRsin2)=PRI2(MRsin3)=PRI2(MRsin4)=PRI2(MRsin5)=PRI2(MRsin7)。
由于InD(IR)度量优先于AC(OR)度量,因此综合以上两个优先级顺序,可以确定以下9个蜕变关系之间的优先级顺序:
PRI3(MRsin8)>PRI3(MRsin9)>PRI3(MRsin10)>PRI3(MRsin12)>PRI3(MRsin13)>PRI3(MRsin11)>PRI3(MRsin14)>PRI3(MRsin1)>PRI3(MRsin6),也可以表示为以下有序集合:
S1=<MRsin8,MRsin9,MRsin10,MRsin12,MRsin13,MRsin11,MRsin14,MRsin1,MRsin6>;
而其它5个蜕变关系的优先级并不能通过这两个度量进行设定,至此只能认为PRI2(MRsin2)=PRI2(MRsin3)=PRI2(MRsin4)=PRI2(MRsin5)=PRI2(MRsin7),也可以表示为以下无序集合:
S2=(MRsin2,MRsin3,MRsin4,MRsin5,MRsin7)。
第四步:计算输入关系测试输入之间的距离(Dis(IR));
通过第二步和第三步,可以初步确定9个蜕变关系之间的优先级顺序,而对于其它5个蜕变关系并不能确定,这时可以通过计算测试输入之间的距离进行度量。这五个蜕变关系的Dis(IR)度量值分别为:
(1)Dis(IRsin2)=2*|x1|;
(2)Dis(IRsin3)=π;
(3)Dis(IRsin4)=2k*π;
(4)Dis(IRsin5)=|π-2*x1|;
(5)Dis(IRsin7)=2*π;
显然,Dis(IR)度量结果并不一定是常量,通常与测试输入有关。Dis(IR)的取值之间的关系需要考虑到测试输入的范围,考虑通常蜕变关系测试优先级的设定是先于测试进行的,这时的测试人员需要一种不需要考虑测试输入的简单可行的方法确定蜕变关系的测试顺序,而根据输入域分析蜕变关系的优先级显然不适应这一步测试人员的需求。因此通常根据前两个度量元就可以初步获得需要优先测试的蜕变关系。
而通过第二、第三、第四步,可以得到14个蜕变关系的度量值如表1所示。
第五步:蜕变关系测试优先级排序。
综合以上度量结果,蜕变关系最终的测试优先级顺序为:<S1,S2>
S1=<MRsin8,MRsin9,MRsin10,MRsin12,MRsin13,MRsin11,MRsin14,MRsin1,MRsin6>;
S2=(MRsin2,MRsin3,MRsin4,MRsin5,MRsin7)
表1
Figure BDA0000423276540000111
Figure BDA0000423276540000121

Claims (5)

1.一种基于定量度量的蜕变关系测试优先级排序方法,其特征在于,主要包括如下步骤:
(1)对目标蜕变关系进行形式化描述和分解,获取其输入关系和输出关系;
(2)计算输入关系的入度;
(3)计算输出关系的代数复杂度;
假设输出关系可以化简为初步的代数关系,其中包含四种计算操作(“+”.“-”,“*”,“/”),两种连接操作(“∧”,“∨”),以及五种代数判断操作(“<”,“>”,“≤”,“≥”,“=”);将计算输出关系复杂性的问题转化为计算代数关系的复杂性问题;
(4)计算输入关系测试输入之间的距离;
通过步骤(1)中的形式化描述,蜕变关系中的测试用例可以形式化表示为输入空间中的点,通过计算输入之间的距离来度量测试输入之间的差异;
(5)蜕变关系测试优先级排序;
根据步骤(2)、(3)、(4)可以分别获得蜕变关系的InD(IR)、AC(OR)和Dis(IR),当这三种度量之间的结果不一致时,他们之间的优先级顺序为:PIR(InD(IR))>PIR(AC(OR))>PIR(Dis(IR))。
2.如权利要求1所述的基于定量度量的蜕变关系测试优先级排序方法,其特征在于,在步骤(1)中,对于目标蜕变关系,可以得到如下描述形式:
MR : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
其中[P]表示程序P的程序函数,[P](x)和P(x)分别表示对于输入为x时相应的程序函数的输出和相应的程序输出,T表示测试输入域;
输入关系可以表示为:IR={<x1,x2,…,xn>|x1,x2,…,xn∈T,r(x1,x2,…,xn)};相应的输出关系可以表示为:OR={<P(x1),P(x2),…,P(xn)>|x1,x2,…,xn∈T,rf(P(x1),P(x2),…,P(xn))}={<y1,y2,…,yn>|rf(y1,y2,…,yn)};而程序函数本身称为子关系(SR:Self Relation),可以表示为
Figure FDA0000423276530000012
3.如权利要求2所述的基于定量度量的蜕变关系测试优先级排序方法,其特征在于,对于输入关系IR,其输入参数集合为<OTCs,FTCs>=<x1,x2,…,xn>;其中OTCs表示原始测试用例集合,FTCs表示附加测试用例集合;这两种测试用例共同构成了输入关系的输入;
对于输入关系IR,InD(IR)=[OTCs]+[FTCs]=n,即原始测试用例集合与附加测试用例集合的大小之和。这时,输入关系的入度并不同于被测程序输入参数的个数。
引用代数中入度的定义,关系的入度可以通过输入参数集合的大小进行度量。因此,对于输入关系IR,入度InD(IR)=[OTCs]+[FTCs]=n,即原始测试用例集合与附加测试用例集合的大小之和;输入关系的入度并不同于被测程序输入参数的个数。
4.如权利要求3所述的基于定量度量的蜕变关系测试优先级排序方法,其特征在于,对于步骤(1)中所给的输出关系rf(y1,y2,…,yn),其计算操作中的加减操作个数为m,乘除操作个数为k,代数判断操作数量为g;
当rf(y1,y2,…,yn)中存在连接操作时,则意味着该蜕变关系为复合蜕变关系,需要对蜕变关系进行分解;
(3-1)当rf中存在“∧”操作时,意味着输入关系r能够同时确保两种输出关系成立;这时,蜕变关系可以表示为:
则该MR就可以分解为两个独立的蜕变关系MR1和MR2
M R 1 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r fl ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
M R 2 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f 2 ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
(3-2)当rf中存在“∨”操作时,则可以需要对输入关系进行分解;这时,蜕变关系可以表示为:
Figure FDA0000423276530000024
则输入关系r(x1,x2,…,xn)可以分解为r1(x1,x2,…,xn)和r2(x1,x2,…,xn),而MR也可以分解为两个独立的蜕变关系MR3和MR4
M R 3 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r 1 ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f 1 ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
M R 4 : { < ( x 1 , x 2 , . . , x n ) , ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) > | &ForAll; ( x 1 , x 2 , . . , x n ) &Element; T , r 2 ( x 1 , x 2 , . . , x n ) &RightArrow; &ForAll; x &Element; T , P ( x ) = [ P ] ( x ) r f 2 ( P ( x 1 ) , P ( x 2 ) , . . . , P ( x n ) ) }
(3-3)计算输出关系代数复杂度;
通过步骤(3-2),可以将输出关系中的连接操作消除,因此通常输出关系中只有计算操作和代数判断操作;当输出关系中存在复杂的计算符时,则需要通过已有的运算方法化简为规定的计算操作和代数操作;如果不能化简为规定的操作类型,则该度量就不能适用。
而对于β*x(β∈R)的复杂性,由于其只涉及到单个变量x的加权,因此,认为其复杂性与单个x的复杂性相同,可以通过代数运算的数量度量输出关系的复杂度,AC(OR)=m+k+g。
5.如权利要求4所述的基于定量度量的蜕变关系测试优先级排序方法,其特征在于,
当测试输入为X={x1,x2,…,xn}和Y={y1,y2,…,yn}时,采用欧几里得距离度量,可以得到两者之间的距离为:
d ( X , Y ) = &Sigma; i = 1 n ( x i - y i ) 2
当存在两个以上测试输入时,其平均距离为:
d ( X 1 , X 2 , . . . , X m ) &OverBar; = 1 C m 2 &Sigma; j = 1 m &Sigma; k = j m d ( X j , X k )
Dis ( IR ) = d ( X 1 , X 2 , . . . , X m ) &OverBar; .
CN201310611663.2A 2013-11-27 2013-11-27 基于定量度量的蜕变关系测试优先级排序方法 Active CN103713999B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310611663.2A CN103713999B (zh) 2013-11-27 2013-11-27 基于定量度量的蜕变关系测试优先级排序方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310611663.2A CN103713999B (zh) 2013-11-27 2013-11-27 基于定量度量的蜕变关系测试优先级排序方法

Publications (2)

Publication Number Publication Date
CN103713999A true CN103713999A (zh) 2014-04-09
CN103713999B CN103713999B (zh) 2016-07-27

Family

ID=50406996

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310611663.2A Active CN103713999B (zh) 2013-11-27 2013-11-27 基于定量度量的蜕变关系测试优先级排序方法

Country Status (1)

Country Link
CN (1) CN103713999B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572462A (zh) * 2014-12-31 2015-04-29 中国人民解放军理工大学 一种基于自适应随机策略的蜕变测试用例生成方法
CN104915680A (zh) * 2015-06-04 2015-09-16 河海大学 基于改进型rbf神经网络的多标签蜕变关系预测方法
CN105528289A (zh) * 2015-12-04 2016-04-27 中国矿业大学 一种基于分支覆盖与相似性的回归测试用例优先排序方法
CN116126698A (zh) * 2022-12-29 2023-05-16 中国人民解放军国防科技大学 一种基于蜕变测试的运行时配置更新缺陷检测方法
CN117056203A (zh) * 2023-07-11 2023-11-14 南华大学 一种基于复杂性的数值表达式型蜕变关系选择方法

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109032931A (zh) * 2018-07-06 2018-12-18 中国人民解放军陆军工程大学 带时间、资源、输入输出约束的工作流系统建模方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
JOHANNES MAYER,RALPH GUDERLEI: "An Empirical Study on the Selection of Good Metamorphic Relations", 《PROCEEDINGS OF THE 30TH ANNUAL INTERNATIONAL COMPUTER SOFTWARE AND APPLICATIONS CONFERENCE》 *
JONI-KRISTIAN KAMARAINEN等: "Improving similarity measures of histograms using smoothing projections", 《PATTERN RECOGNITION LETTERS》 *
SONG HUANG等: "A Case Study of Software Security Test Based On Defects Threat Tree Modeling", 《2010 INTERNATIONAL CONFERENCE ON MULTIMEDIA INFORMATION NETWORKING AND SECURITY 2010 INTERNATIONAL CONFERENCE ON MULTIMEDIA INFORMATION NETWORKING AND SECURITY 2010 INTERNATIONAL CONFERENCE ON MULTIMEDIA INFORMATION NETWORKING AND SECURITY》 *
惠战伟,黄松: "蜕变关系形式化描述与分解技术研究", 《第十一届全国博士生学术年会——信息技术与安全专题论文集》 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572462A (zh) * 2014-12-31 2015-04-29 中国人民解放军理工大学 一种基于自适应随机策略的蜕变测试用例生成方法
CN104572462B (zh) * 2014-12-31 2017-10-03 中国人民解放军理工大学 一种基于自适应随机策略的蜕变测试用例生成方法
CN104915680A (zh) * 2015-06-04 2015-09-16 河海大学 基于改进型rbf神经网络的多标签蜕变关系预测方法
CN104915680B (zh) * 2015-06-04 2018-06-19 河海大学 基于改进型rbf神经网络的多标签蜕变关系预测方法
CN105528289A (zh) * 2015-12-04 2016-04-27 中国矿业大学 一种基于分支覆盖与相似性的回归测试用例优先排序方法
CN105528289B (zh) * 2015-12-04 2017-12-08 中国矿业大学 一种基于分支覆盖与相似性的回归测试用例优先排序方法
CN116126698A (zh) * 2022-12-29 2023-05-16 中国人民解放军国防科技大学 一种基于蜕变测试的运行时配置更新缺陷检测方法
CN117056203A (zh) * 2023-07-11 2023-11-14 南华大学 一种基于复杂性的数值表达式型蜕变关系选择方法
CN117056203B (zh) * 2023-07-11 2024-04-09 南华大学 一种基于复杂性的数值表达式型蜕变关系选择方法

Also Published As

Publication number Publication date
CN103713999B (zh) 2016-07-27

Similar Documents

Publication Publication Date Title
CN103713999A (zh) 基于定量度量的蜕变关系测试优先级排序方法
Lin et al. Factors influencing renewable electricity consumption in China
Zha et al. Measuring regional efficiency of energy and carbon dioxide emissions in China: A chance constrained DEA approach
Yang et al. Ranking DMUs by using interval DEA cross efficiency matrix with acceptability analysis
Kuhn et al. Combinatorial coverage measurement concepts and applications
Hekker et al. Solar-like oscillations in red giants observed with Kepler: influence of increased timespan on global oscillation parameters
CN102467684A (zh) 基于改进雷达图的综合性能评估系统和方法
Shi et al. Optimal generation investment planning: Pt. 1: network equivalents
Ferrer et al. Estimating software testing complexity
Chen et al. Analysis of the environmental efficiency in China based on the DEA cross‐efficiency approach under different policy objectives
CN104679655B (zh) 基于参数相关性的软件系统状态评估方法
CN104156781A (zh) 一种火电机组锅炉成本最低混煤煤质参数获取方法
Biçer et al. Defect prediction for cascading style sheets
Wang et al. A top-k learning to rank approach to cross-project software defect prediction
Song et al. Evaluation of urban industrial ecological transformation in China
Arava et al. Analyzing the static security functions of a power system dynamic security assessment toolbox
CN110598305B (zh) 一种比较电路扫描仿真增量的灵敏度分析方法
Sullivan Hawkeye: user-guided enumeration of scenarios
Lv et al. A sufficient condition for parameters estimation in dynamic random testing
CN103713997A (zh) 一种蜕变关系形式化描述与分解方法
CN112613263B (zh) 仿真验证方法、装置、电子设备和计算机可读存储介质
Deng et al. Prediction of dissolved gas in power transformer oil based on random forests algorithm
Wen et al. Improving RETECS method using FP-Growth in continuous integration
Ugurlu Estimating demand of Turkish energy market: a multivariate regression model
Ukai et al. Reduce test cost by reusing test oracles through combinatorial join

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