CN103713999B - 基于定量度量的蜕变关系测试优先级排序方法 - Google Patents
基于定量度量的蜕变关系测试优先级排序方法 Download PDFInfo
- Publication number
- CN103713999B CN103713999B CN201310611663.2A CN201310611663A CN103713999B CN 103713999 B CN103713999 B CN 103713999B CN 201310611663 A CN201310611663 A CN 201310611663A CN 103713999 B CN103713999 B CN 103713999B
- Authority
- CN
- China
- Prior art keywords
- relation
- input
- test
- metamorphic
- output
- 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
Links
- 238000012360 testing method Methods 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims abstract description 21
- 238000005259 measurement Methods 0.000 title claims abstract description 14
- 230000009466 transformation Effects 0.000 title claims description 32
- 238000012913 prioritisation Methods 0.000 title claims description 5
- 238000011062 flow through chromatography Methods 0.000 claims description 7
- 150000001875 compounds Chemical class 0.000 claims description 3
- 238000000354 decomposition reaction Methods 0.000 claims description 3
- 238000013442 quality metrics Methods 0.000 claims 1
- 238000013461 design Methods 0.000 abstract description 2
- 101100042630 Caenorhabditis elegans sin-3 gene Proteins 0.000 description 13
- NCGICGYLBXGBGN-UHFFFAOYSA-N 3-morpholin-4-yl-1-oxa-3-azonia-2-azanidacyclopent-3-en-5-imine;hydrochloride Chemical compound Cl.[N-]1OC(=N)C=[N+]1N1CCOCC1 NCGICGYLBXGBGN-UHFFFAOYSA-N 0.000 description 12
- 101150109831 SIN4 gene Proteins 0.000 description 10
- 230000029052 metamorphosis Effects 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 238000011156 evaluation Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013522 software testing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000013100 final test Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004445 quantitative analysis Methods 0.000 description 1
Landscapes
- Complex Calculations (AREA)
Abstract
本发明公开了一种基于定量度量的蜕变关系测试优先级排序方法,首先基于测试覆盖,从蜕变关系输入关系的入度进行度量,然后从输出关系的复杂性进行度量,最后从输入关系中相关测试输入之间的距离进行度量。最终,得到蜕变关系的三个有效性度量元。当三者之间的结果不一致时,按照PIR(InD(IR))>PIR(AC(OR))>PIR(Dis(IR))顺序进行排序。通过这三个度量元,无须先验测试执行,就可以实现对蜕变关系测试优先级的快速排序。本发明提供的蜕变关系测试优先级排序的方法,为蜕变关系有效性度量提供了定量依据,并且为测试优先级的设定提供了可行的手段。通过定量度量,相对于传统的经验结论更加简单明了、精确、可行,保证了优先级设计的适用范围,为蜕变关系的选择和排序提供了精确、有效的方法。
Description
技术领域
本发明涉及一种基于定量度量的蜕变关系测试优先级排序方法,涉及到蜕变关系的形式化描述与分解方法,属于软件蜕变测试技术领域。
背景技术
在软件测试中,通常假设测试判定存在,这也称为测试判定假设。然而实际中这种假设往往难以成立。因为在许多情况下,验证一个测试用例执行结果正确性的成本非常高,甚至在现有条件下不可能验证。这也就是通常意义上的“测试判定难题”。另外,在其它一些条件下,即便可以得到测试判定,但是这种获得测试判定的方法并不能自动化实现,也需要人工活动的参与。这时,人为活动参与的手动验证测试输出的正确性就容易出错,并且耗时长。
蜕变测试方法通过验证被测软件多次输出之间是否满足一定的关系,从而为构造测试判定提供了一种可行的方法。这种关系我们称之为蜕变关系。通常对于被测软件,测试用例的构造可以采用随机测试策略等技术。而作为蜕变测试关键因素的蜕变关系,其有效性对于蜕变测试的有效性具有至关重要的作用。对于被测软件,通常需要测试人员具有被测软件领域的知识,才能构造更加有效的蜕变关系。
为了提高对被测软件的测试充分性和测试质量,单个蜕变关系肯定不能满足测试需求。因此,在已有的蜕变测试实验研究和实例分析中,研究人员通常都会构造多个蜕变关系,从而形成蜕变关系集合。例如,对于实现[sin(x)]的程序,容易得到以下蜕变关系:
这时,如果所有的蜕变关系在故障检测方面具有相同的作用,则我们只需要执行所有蜕变关系就能够提高被测软件的质量。但是,实际上对于相同的被测软件,其蜕变关系检测故障的能力并不相同。在实际的软件测试项目中,由于受测试周期和成本的限制,通常需要对蜕变关系设立优先顺序,即选择发现软件故障的概率更高的蜕变关系优先进行测试。这样就可以在有限的时间内,尽可能多的发现影响软件质量的故障和失效,从而更快的提高软件质量。因此,如何选择检测故障能力更高的蜕变关系就尤为关键。
为了解决蜕变关系的选择问题,研究人员总结出了多个选择和评价准则。如“涉及被测程序核心功能的蜕变关系更加有效”,“能够使得多次执行覆盖不同软件结构的蜕变关系检测故障的能力更强”,“测试用例之间的差异更大的蜕变关系检测故障的能力更强”。虽然这些结论是通过实验获得的,但是这种自然语言描述的度量准则的意义并不明确。如怎样判定蜕变关系涉及被测程序的核心功能,如何度量测试用例之间的差异等等,这些评价指标的获得缺少定量方法的支持。这也影响了这些度量和评价准则的有效性。
发明内容
发明目的:为了克服现有的蜕变关系有效性评价中存在的不足,本发明提供了一种基于定量度量的蜕变关系测试优先级排序方法,分别从蜕变关系输入关系的入度、蜕变关系输出关系的代数复杂度以及蜕变关系相关测试输入之间的距离三个方面获取蜕变关系有效性度量元,然后基于定量度量结果对蜕变关系测试优先级进行排序。
技术方案:一种基于定量度量的蜕变关系测试优先级排序方法,主要包括如下步骤:
(1)针对目标蜕变关系,获取其输入关系和输出关系。
对于蜕变关系(MR:MetamorphicRelation),定量度量必须建立在精确描述的基础上。因此,在步骤(1)中,首先需要对目标蜕变关系进行形式化描述和分解。这种形式化描述和分解可以采用已有的符号逻辑描述方法。最终,对于目标蜕变关系,可以得到如下描述形式:
其中[P]表示程序P的程序函数,[P](x)和P(x)分别表示对于输入为x时相应的程序函数的输出和相应的程序输出,T表示测试输入域。
输入关系(IR:InputRelation)可以表示为:IR={<x1,x2,…,xn>|x1,x2,…,xn∈T,r(x1,x2,…,xn)};相应的输出关系(OR:OutputRelation)可以表示为: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:SelfRelation),可以表示为
(2)计算输入关系的入度(InD(IR):In-Degree(IR));
在相同的条件下,对于同一被测软件,测试覆盖度更高的蜕变关系通常具有更高的测试有效性。而与测试覆盖度直接相关的就是测试输入的个数。基于此,我们提出从蜕变关系的输入关系的测试输入出发,构造定量度量元。
对于输入关系IR,其输入参数集合为<OTCs,FTCs>=<x1,x2,…,xn>。其中OTCs表示原始测试用例集合,FTCs表示附加测试用例集合。这两种测试用例共同构成了输入关系的输入。
引用代数中入度的定义,关系的入度可以通过输入参数集合的大小进行度量。因此,对于输入关系IR,InD(IR)=[OTCs]+[FTCs]=n,即原始测试用例集合与附加测试用例集合的大小之和。这时,输入关系的入度并不同于被测程序输入参数的个数。
通常,在其它因素相同的条件下,输入关系的入度越大,蜕变关系的测试优先级越高。
(3)计算输出关系的代数复杂度(AC(OR):AlgebraComplexityofOR);
现有的研究中,通过实验发现,蜕变关系越复杂,其发现故障的概率更高,因此测试优先级越高。实际中,蜕变关系的复杂性又涉及到输入关系的复杂性、输出关系的复杂性以及子关系的复杂性。而现有的蜕变关系有效性评价中并没有确定这三种复杂性与蜕变关系复杂性之间的关系。
蜕变关系复杂度的度量,其目的是按照蜕变关系发现故障的能力进行排序。而影响蜕变关系发现故障能力的关键在于输出关系,输入关系和子关系对其影响并不显著。基于此,需要计算输出关系的复杂度。
根据对已有的蜕变关系分析,发现输出关系本身并不会非常复杂,否则的话,输出关系正确性的验证则也会存在测试判定问题。因此,可以假设输出关系可以化简为初步的代数关系,其中包含四种计算操作(“+”.“-”,“*”,“/”),两种连接操作(“∧”,“∨”),以及五种代数判断操作(“<”,“>”,“≤”,“≥”,“=”)。这时计算输出关系复杂性的问题就可以转化为计算代数关系的复杂性问题。
对于步骤(1)中所给的输出关系rf(y1,y2,…,yn),其计算操作中的加减操作个数为m,乘除操作个数为k,代数判断操作数量为g。
当rf(y1,y2,…,yn)中存在连接操作时,则意味着该蜕变关系为复合蜕变关系,需要对蜕变关系进行分解。
(3-1)当rf中存在“∧”操作时,意味着输入关系r能够同时确保两种输出关系成立。这时,蜕变关系可以表示为:
则该MR就可以分解为两个独立的蜕变关系MR1和MR2。
(3-2)当rf中存在“∨”操作时,则可以需要对输入关系进行分解。这时,蜕变关系可以表示为:
则输入关系r(x1,x2,…,xn)可以分解为r1(x1,x2,…,xn)和r2(x1,x2,…,xn),而MR也可以分解为两个独立的蜕变关系MR3和MR4。
(3-3)计算输出关系代数复杂度;
通过步骤(3-2),可以将输出关系中的连接操作消除,因此通常输出关系中只有计算操作和代数判断操作。当输出关系中存在复杂的计算符时,则需要通过已有的运算方法化简为规定的计算操作和代数操作。如果不能化简为规定的操作类型,则该度量就不能适用。
而对于β*x(β∈R)的复杂性,由于其只涉及到单个变量x的加权,因此,认为其复杂性与单个x的复杂性相同。由于并没有先验知识验证不同操作所耗费的计算成本,可以通过这些代数运算的数量度量输出关系的复杂度。因此,AC(OR)=m+k+g。
对于目标蜕变关系,在相同的条件下,当AC(OR)越大,则该蜕变关系的测试优先级越高,反之,则测试优先级越低。
(4)计算输入关系测试输入之间的距离(Dis(IR):DistancebetweentestinputsofIR);
蜕变测试中通常都是基于随机策略产生原始测试用例(OTCs)。这时,对于目标蜕变关系,当然不希望后续产生的附加测试用例(FTCs)与原始测试用例都属于同一等价域。通常这两种测试用例之间的差异越大,则发现故障的概率更高,蜕变关系的测试优先级越高。
通过步骤(1)中的形式化描述,蜕变关系中的测试用例可以形式化表示为输入空间中的点。因此,可以通过计算输入之间的距离来度量测试输入之间的差异。
基于此,当测试输入为X={x1,x2,…,xn}和Y={y1,y2,…,yn}时,采用欧几里得距离度量,可以得到两者之间的距离为:
当存在两个以上测试输入时,其平均距离为:
则
对于目标蜕变关系,在相同的条件下,当测试输入之间的距离越大,蜕变关系发现故障的概率越大,则越需要优先测试。
通过这三项初步的定量度量,可以实现对蜕变关系测试优先级的快速排序。这里,假设被测软件中存在的故障是无区别的,所有并不考虑故障类型对蜕变关系测试优先级的影响。
(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)为复合蜕变关系。
IR(MRsin1)={<x1,x2>|x1,x2∈T,(x2-3*x1=0)},
OR(MRsin1)={<y1,y2>|y2-3*y1+4*y1 2=0}
IR(MRsin2)={<x1,x2>|x1,x2∈T,(x2+x1=0)},
OR(MRsin2)={<y1,y2>|y2+y1=0}
IR(MRsin3)={<x1,x2>|x1,x2∈T,(x2-x1=π)},
OR(MRsin3)={<y1,y2>|y2+y1=0}
IR(MRsin4)={<x1,x2>|x1,x2∈T,(x2-x1=2k*π)},k∈R,
OR(MRsin4)={<y1,y2>|y2-y1=0}
IR(MRsin5)={<x1,x2>|x1,x2∈T,(x2+x1=π)},
OR(MRsin5)={<y1,y2>|y2-y1=0}
IR(MRsin6)={<x1,x2>|x1,x2∈T,(x2+x1=π/2)},
OR(MRsin6)={<y1,y2>|y1 2+y2 2=1}
IR(MRsin7)={<x1,x2>|x1,x2∈T,(x2-x1=2π)},
OR(MRsin7)={<y1,y2>|y1+y2=0}
OR(MRsin8)={<y1,y2,y3,y4,y5,y6,y7>|4*y7*y6*y5+y4-y3-y2-y1=0}
IR(MRsin9)={<x1,x2,x3,x4>|x1,x2,x3,x4∈T,(x3-x2-x1=0)∨(x4+x2-x1=0)},
OR(MRsin9)={<y1,y2,y3,y4>|(y4*y3+y2 2-y2 1=0}
IR(MRsin10)={<x1,x2,x3>|x1,x2,x3∈T,(x3-5*x1=0)∨(x2-3*x1=0)},
OR(MRsin10)={<y1,y2,y3,y4>|y3-5*y2-16*y5 1+10*y1=0}
IR(MRsin11)={<x1,x2>|x1,x2∈T,(x2-3*x1=-2*π-3*π/2)},
OR(MRsin11)={<y1,y2>|y2 2-16*y1 6-4*y1 4+9*y1 2=1}.
IR(MRsin12)={<x1,x2>|x1,x2∈T,(x2-3*x1=-9*π/2)},
OR(MRsin12)={<y1,y2>|y2 2+16*y1 5-16*y1 4-24*y1 3+24*y1 2+9*y1=9}
IR(MRsin13)={<x1,x2>|x1,x2∈T,(x2-3*x1=7*π/2)},
OR(MRsin13)={<y1,y2>|y2 2+16*y1 6-40*y1 4+33*y1 2-9=0}.
k∈R,IR(MRsin14)={<x1,x2>|x1,x2∈T,(x2-3*x1=6kπ+3*π/2)},
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
Claims (1)
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));
对于输入关系IR,其输入参数集合为<OTCs,FTCs>=<x1,x2,…,xn>;其中OTCs表示原始测试用例集合,FTCs表示附加测试用例集合;这两种测试用例共同构成了输入关系的输入;
对于输入关系IR,InD(IR)=[OTCs]+[FTCs]=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)};而程序函数本身称为子关系表示为
对于输出关系rf(y1,y2,…,yn),其计算操作中的加减操作个数为m1,乘除操作个数为k,代数判断操作数量为g;
当rf(y1,y2,…,yn)中存在连接操作时,则表示该蜕变关系为复合蜕变关系,需要对蜕变关系进行分解;
(3-1)当rf中存在“∧”操作时,表示输入关系r能够同时确保两种输出关系成立;这时,蜕变关系表示为:
则该MR就分解为两个独立的蜕变关系MR1和MR2;
(3-2)当rf中存在“∨”操作时,则根据需要对输入关系进行分解;这时,蜕变关系表示为:
则输入关系r(x1,x2,…,xn)分解为r1(x1,x2,…,xn)和r2(x1,x2,…,xn),而MR分解为两个独立的蜕变关系MR3和MR4;
(3-3)计算输出关系代数复杂度;
通过步骤(3-2),将输出关系中的连接操作消除,因此输出关系中只有计算操作和代数判断操作;当输出关系中存在复杂的计算符时,则需要通过已有的运算方法化简为规定的计算操作和代数操作;如果不能化简为规定的操作类型,则该度量就不能适用;
而对于β*x的复杂性,β∈R,由于其只涉及到单个变量x的加权,因此,认为其复杂性与单个x的复杂性相同,通过代数运算的数量度量输出关系的复杂度,AC(OR)=m1+k+g;
当测试输入为X={x1,x2,…,xn}和Y={y1,y2,…,yn}时,采用欧几里得距离度量,得到两者之间的距离为:
当存在两个以上测试输入时,其平均距离为:
则
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 CN103713999A (zh) | 2014-04-09 |
CN103713999B true 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 (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032931A (zh) * | 2018-07-06 | 2018-12-18 | 中国人民解放军陆军工程大学 | 带时间、资源、输入输出约束的工作流系统建模方法 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104572462B (zh) * | 2014-12-31 | 2017-10-03 | 中国人民解放军理工大学 | 一种基于自适应随机策略的蜕变测试用例生成方法 |
CN104915680B (zh) * | 2015-06-04 | 2018-06-19 | 河海大学 | 基于改进型rbf神经网络的多标签蜕变关系预测方法 |
CN105528289B (zh) * | 2015-12-04 | 2017-12-08 | 中国矿业大学 | 一种基于分支覆盖与相似性的回归测试用例优先排序方法 |
CN116126698B (zh) * | 2022-12-29 | 2023-08-01 | 中国人民解放军国防科技大学 | 一种基于蜕变测试的运行时配置更新缺陷检测方法 |
CN117056203B (zh) * | 2023-07-11 | 2024-04-09 | 南华大学 | 一种基于复杂性的数值表达式型蜕变关系选择方法 |
-
2013
- 2013-11-27 CN CN201310611663.2A patent/CN103713999B/zh active Active
Non-Patent Citations (4)
Title |
---|
A Case Study of Software Security Test Based On Defects Threat Tree Modeling;Song Huang等;《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》;20101106;全文 * |
An Empirical Study on the Selection of Good Metamorphic Relations;Johannes Mayer,Ralph Guderlei;《Proceedings of the 30th Annual International computer software and applications conference》;20060921;全文 * |
Improving similarity measures of histograms using smoothing projections;Joni-Kristian Kamarainen等;《Pattern Recognition Letters》;20031231;第12卷(第12期);全文 * |
蜕变关系形式化描述与分解技术研究;惠战伟,黄松;《第十一届全国博士生学术年会——信息技术与安全专题论文集》;20131020;全文 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109032931A (zh) * | 2018-07-06 | 2018-12-18 | 中国人民解放军陆军工程大学 | 带时间、资源、输入输出约束的工作流系统建模方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103713999A (zh) | 2014-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103713999B (zh) | 基于定量度量的蜕变关系测试优先级排序方法 | |
CN103559122B (zh) | 基于程序行为切片的测试案例约减方法 | |
Jiang et al. | Software testing model selection research based on Yin-Yang testing theory | |
Abbas et al. | Robustness-guided temporal logic testing and verification for stochastic cyber-physical systems | |
CN102508767B (zh) | 一种基于形式概念分析的软件维护方法 | |
CN103995780B (zh) | 一种基于语句频度统计的程序错误定位方法 | |
CN102831056A (zh) | 一种基于修改影响分析的回归测试用例生成方法 | |
CN104794059A (zh) | 一种基于函数调用记录的缺陷定位方法及装置 | |
CN102750223B (zh) | 一种基于面向对象程序切片谱的错误定位方法 | |
CN102945204A (zh) | 一种基于接口模型的操作系统标准符合性测试的充分性评估方法 | |
CN108304317A (zh) | 一种基于路径执行频率的单过程程序静态切片方法及系统 | |
CN104598381B (zh) | 一种蜕变测试中失效测试用例的定位方法 | |
Biçer et al. | Defect prediction for cascading style sheets | |
Zhonglin et al. | An improved method of acquiring basis path for software testing | |
CN103914386A (zh) | 基于输入参数特征谱的软件缺陷定位方法 | |
CN103713997B (zh) | 一种蜕变关系形式化描述与分解方法 | |
CN112817842B (zh) | 不完美排错srgm决策方法、系统、介质、设备及应用 | |
CN104268724A (zh) | 一种业务流程测试方法及装置 | |
CN106095672B (zh) | 基于函数调用路径准则的测试充分性获取方法 | |
CN108345214B (zh) | 一种基于替代数据法的工业过程非线性检测方法 | |
CN104572470A (zh) | 一种基于蜕变关系的整数溢出故障检测方法 | |
CN104503913B (zh) | 一种基于迁移路径和改进马氏链的构件软件可靠性评估方法 | |
Hui | Fault Localization Method Generated by Regression Test Cases on the Basis of Genetic Immune Algorithm | |
CN115564410A (zh) | 一种继电保护设备的状态监测方法及装置 | |
Tripathi et al. | Optimizing testing efforts based on change proneness through machine learning techniques |
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 |