1、惠战伟、黄松SAT20152015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 2软件测试模型 Jeff Offutt2software artifactmodel / structuretest requirementsrefined requirements / test specsinput valuestest casestest scriptstest resultspass / fail测试实施阶段测试设计阶段Test DesignTest Validation最后的焦点:测试判定工业界所谓的自动化测试学术界焦点:测试用例自动生成2015年11月13日星期五 蜕变测
2、试关键技术研究 SAT 2015 3蜕变测试的研究背景l GIS中距离量算程序n Distance(X1, X2)n Distance(X1, X3)n Distance(X1, X26)X26X1X2X3X4X5X6X7X8X9X10X11X12X13X14X15 X16X17X18X19X20X21 X22X23X24X25n不惜代价,确保程序正确,需要多少个测试用例T?n Distance(X1, X2)=236?可靠测试用例集问题测试判定问题!如:等价类划分测试方法;因果图测试方法;路径测试方法;2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 4测试判定难题现有解
3、决方法面临挑战l显著的失效n 程序崩溃、死机、程序重启等。l人工计算n 基于开发方提供的计算模型,手工计算程序预期的输出。l特殊值测试n 开发方提供已知的测试数据。l比对测试n 选择功能相同的其它软件,验证相同测试用例执行结果是否相同。数量较少l 易错;l 程序本身可能就是解决困难问题。适用于少数输入l 两种软件精度不同;l 正确性依赖。2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 5蜕变测试Chen et al., 1998,2002l 关系rf (f(t(x),f(x)满足:这两个测试并不一定正确;l 关系rf (f(t(x),f(x)不满足:f(x)或者f(t(x
4、)或者两个都存在失效!x f f(x)原始测试用例t(x) f f(t(x)附加测试用例t rf约束关系程序输出f(x)是否正确?-测试判定难题其它测试技术生成的测试用例2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 6蜕变测试实例l GIS中距离量算程序n Distance(X1, X2)=236是否正确?Distance(X1, X2)= Distance(X1, X24)+ Distance(X24, X19)+ Distance(X19, X2)?n 原始测试用例OTC: (X1, X2);n 附加测试用例FTC: (X1, X24), (X24, X19), (
5、X19, X2);X1X2X19X24l 蜕变关系满足:n 程序存在故障:测试用例(X1, X2), (X1, X24), (X24, X19), (X19, X2)没有覆盖到故障,蜕变关系满足;已经覆盖到故障,但是(X1, X2), (X1, X24), (X24, X19), (X19, X2)发生相同故障,导致蜕变关系还是满足;n 程序不存在故障l 蜕变关系不满足:n 测试用例(X1, X2), (X1, X24), (X24, X19), (X19, X2)中一定存在至少一个失效测试用例;n 程序一定存在故障;需要多个蜕变关系2015年11月13日星期五 蜕变测试关键技术研究 SAT
6、2015 7蜕变测试基本过程及其特征l蜕变测试特征n 一种缓解测试判定难题的方法;n 蜕变测试是一种基于必要属性的测试技术;n 蜕变关系通常不会非常复杂;n 现有的蜕变测试依赖于其它测试技术。(X1, X2 )(X1, X24) (X24, X19) (X2, X19)2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 8蜕变测试的关键问题被测软件其它测试用例生成技术蜕变关系MR原始测试用例附加测试用例附加测试用例附加测试用例是否满足?输出输出输出不满足选择下一个MR满足6、具体哪个测试用例失效呢?1、怎样构造MR?2、怎样精确、无二义性描述MR?3、选择的依据?4、怎样生成
7、性能更好的蜕变测试用例?5、蜕变测试一定依赖于其它测试技术吗?一组存在失效的测试用例蜕变测试过程Zhan-weiHui, Song Huang, Metamorphic Testing for Alleviating Oracle Problem: Achievements and Challenges, ACM Computing Surveys 20152015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 9蜕变测试中的问题(一)怎样构造蜕变关系MR?需要解决的问题:l 蜕变关系的描述l 蜕变关系的生成是否满足?otcftc1Metamorphic Relation MRf
8、tc2ftcnO0O1On满足不满足O2其它测试用例生成技术2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 10一、蜕变关系的精确描述和自动生成l现有的蜕变关系描述方法n 面向被测程序不同领域的蜕变关系:MRsin193:sin2(x1)+sin2(x2)=1, where x2=p/2-x1MRdet1136 : det(A)=det(AT) “MR-048 : it does not change the order in the k nearest neighbors and will still give the same prediction”;MRs1: T
9、is an ordered list containing integers ascending order, “x1T: f(x1, T)=(y1, y2) where y1 is the starting position of x1 and y2 is the ending posit of x1 or y1=-1 if x1T, “x2= x1+1T: f(x2, T)=(y3, y4) where y3 is the starting position of x2 and y4 is the ending position of x2 or y3=-1 if x2T, then (y
10、1=-1) (y3=-1) (y2+1)=y3)1MR:()()()+=cbbPacafxdxfxdxfxdx1MR:(,).(,).=ShortestPathGablengthShortestPathGbalength惠战伟,黄松等,一种蜕变关系形式化描述与分解模型,专利申请号:201310556853.9Zhan-weiHui, Song Huang, A Formal Model for Metamorphic Relation Decomposition, World Congress on Software Engineering 2013 1、MR描述形式各异;2、MR与被测程序形
11、式相关l 蜕变关系形式化模型FMRii12 f12nxT, P(x)=P(x)MR: , i=1,2,.,nr(x,x,.,x)r(P(x),P(x),.,P(x)2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 11一、蜕变关系的精确描述和自动生成l 现有的蜕变关系生成方法:n 领域蜕变关系(Domain Metamorphic Relation)适用范围广阔;数值分析程序领域蜕变关系123分类算法程序领域蜕变关系48决策支持程序领域蜕变关系55n 不足:依赖于人工经验;缺少自动化构造方法l 组合蜕变关系CBMRl 复合蜕变关系CMRii12n12ni112n212nP(
12、x)=P(x)f112nf212nCBMR:(x,x,.,x, P(x), P(x),.,P(x) | xT,r(x,x,.,x)r(x,x,.,x)r(P(x), P(x),.,P(x) r(P(x), P(x),.,P(x)i=1,2,.,1i2T, i=1,2,.,n-qftcp=n-q;2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 12蜕变测试中的问题(二)怎样确定先测试哪个蜕变关系呢?-测试顺序需要解决的问题:1、降低蜕变关系的复杂度2、评价蜕变关系的优先级2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 13二、蜕变关系的定量评价l 现有
13、MR评价方法存在的三个问题:n 缺少定量度量基础陈宗岳等112提出测试执行之间的差异可以用于评价蜕变关系的优先级;董国伟等132认为“对于给定的被测件,表达式更为复杂的蜕变关系更加有效”n 评价指标的模糊性导致它们之间的不一致性Mayer等认为“能够覆盖被测软件不同行为的蜕变关系应该具有较高的失效检测能力136”;Asrafi等149通过实验发现,确实大多数具有更广覆盖的蜕变关系具有更好的失效检测能力,但是也存在例外情况。n 蜕变关系表达式复杂,难以定量度量蜕变关系本身包含的变量多多个输入变量、多个输出变量等蜕变关系本身包含的关系多输入变量约束关系、程序函数关系、输出变量约束关系等蜕变关系计算
14、类型复杂与被测程序函数相关,如积分、矩阵计算等Zhan-weiHui, Song Huang, Metamorphic Testing for Alleviating Oracle Problem: Achievements and Challenges,ACM Computing Surveys 20152015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 14二、蜕变关系的定量评价l基于蜕变关系分解模型的定量度量:n 蜕变关系分解模型X1,X24,X19,X2在一条直线上Y=Distance(X1, X2)D (X1, X2)= D (X1, X24)+ D (X24, X
15、19)+ D (X19, X2)iiii12nf12nP(x)=P(x)f12nf12nP(x)=P(x)MR: i=1,2,.,nr(x,x,x)r(P(x), P(x),.,P(x)(r, P, r)|r(x,x,x)r(P(x), P(x),.,P(x)c惠战伟,黄松等,一种蜕变关系形式化描述与分解模型,专利申请号:201310556853.9Zhan-weiHui, Song Huang, A Formal Model for Metamorphic Relation Decomposition, World Congress on Software Engineering 2013
16、2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 15二、蜕变关系的定量评价l基于蜕变关系分解模型的定量度量:n 三个度量元输入关系入度:InD(IR)输入关系测试输入之间的距离:Dis(IR)输出关系的代数复杂度:AC(OR)惠战伟,黄松等,基于定量度量的蜕变关系测试优先级排序方法,专利申请号:201310611663.2Zhan-weiHui, Song Huang, Measurable Metrics for Qualitative Guidelines of Metamorphic Relation, COMPSAC 20152015年11月13日星期五 蜕变测试
17、关键技术研究 SAT 2015 16二、蜕变关系的定量评价l蜕变关系度量元与故障检测率、测试覆盖率的Pearson相关系数n Pearson相关系数接近+1或者-1:两个变量高度相关;n Pearson相关系数在(-1, -0.75)或者(0.75, 1)区间内:两个变量强相关。0.756aa故障检测率0.878-a代码行覆盖率Trisquare0.9660.9070.911故障检测率0.954-0.823代码行覆盖率Sin0.877a0.492故障检测率0.844-0.662代码行覆盖率Grade0.9290.402a故障检测率0.941-a代码行覆盖率TcasDis(IR)AC(OR)In
18、D(IR)“a”:这种数据就不适用于相关性分析;“-”:相应的两个变量不需要进行相关性分析。惠战伟,黄松等,基于定量度量的蜕变关系测试优先级排序方法,专利申请号:201310611663.2Zhan-weiHui, Song Huang, Measurable Metrics for Qualitative Guidelines of Metamorphic Relation, COMPSAC 20152015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 17蜕变测试中的问题(三)怎样提高蜕变测试用例生成效率呢?-测试性能需要解决的问题:依据MR指导测试用例生成是否满足?otc
19、ftc1ftc2ftcnO0O1On满足不满足O22015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 18三、生成更加有效的蜕变测试用例l启发:n Dis(IR)通常为非常数,而与每次测试输入有关;n Dis(IR)越大,则MR发现失效的概率越高;12222grade(X,X)1 21122 1323221 211222Dis(IR)=(x-x)+(x-x)+(x-x)(x-x)+(x-x)=利用测试用例的Dis(IR)度量改进ART算法,可以生成更有效的测试用例2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 19三、生成更加有效的蜕变测试用例l MT-
20、RTn 随机生成原始测试用例;l MT-ART:n 只考虑原始测试用例OTC与已选择测试用例之间的距离;l MD-ART:n d1 :OTC与已执行测试用例之间的距离;n d2 :OTC与FTC之间的距离;n d3 :FTC与已执行测试用例之间的距离。惠战伟,黄松等,一种基于自适应随机策略的蜕变测试用例生成方法,专利申请号:201410851718.12015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 20三、生成更加有效的蜕变测试用例l测试有效性评价:变异检测率l测试效率评价:F-度量l测试覆盖度评价:分支覆盖Zhan-weiHui, Song Huang, Metamor
21、phic Relations Could Not Only Provide Test Oracle but Also Improve the Testing Performance,已投TSE 00.10.20.30.40.50.6Sin Bessjy Trisqure TCAS平均变异检测率MT-RTMT-ARTMD-ART024681012Sin Bessjy Trisqure TCAS平均F-度量值MT-RTMT-ARTMD-ART00.10.20.30.40.50.60.70.80.911 3 5 7 9 11 13 15 17 19 21 23 25 27 29Strategy 1/
22、MaxDisStrategy 1/AvgDisStrategy 1/MinDisMT-RTMT-ART2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 21蜕变测试中的问题(四)l传统蜕变测试模型MTM两个不确定性问题:依赖于其它的软件测试技术生成原始测试用例MR生成依赖于人工先验知识2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 22四、建立适用范围更广的蜕变测试模型l基于蜕变关系的测试模型MRTMn 两种测试模型之间的区别1、MT-ART2、MD-ART其它测试技术原始测试用例生成方法1、生成蜕变测试用例2、提供测试判定提供测试判定蜕变关系的用途一
23、般软件测试1、已存在原始测试用例2、缺少测试判定适用场合提供测试判定已知的测试用例为原始测试用例提供测试判定目的MRTMMTM可以一定程度上自动生成蜕变关系不需要借助其它测试用例生成技术2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 23蜕变测试中的问题(五)l蜕变测试失效测试用例定位方法FTCL-MT 惠战伟,黄松等,一种蜕变测试失效测试用例定位方法,专利申请号:2015100398899MR1t1 1 1 1 11 0 0 0.Suspiciousness=?MR2 MRmt2t3 0 0 1 0tn.MR30 0 0 0Suspiciousness=?Suspici
24、ousness=?.tn-1 0 0 0 0 Suspiciousness=?.失效测试用例定位问题2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 24蜕变测试中的问题(五)l FTCL-MT 实验结果n 存在失效测试用例假设第一可疑测试用例定位100%0.00%10.00%20.00%30.00%40.00%50.00%60.00%70.00%80.00%90.00%100.00%sinTrisquareP NBCBinSearch TCAS AreaGrade第一可疑的TC 第二可疑的TC80.00%82.00%84.00%86.00%88.00%90.00%92.0
25、0%94.00%96.00%98.00%100.00%sinTrisquare P NBCBinSearch TCAS Area Grade第一可疑的TC 第二可疑的TCn 多失效测试用例假设第二可疑测试用例定位准确率也非常高:92%以上2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 25蜕变测试的应用(六)l 基于蜕变关系的整数溢出故障实时检测方法MR-IOD n 静态审查:误报高,漏报少n 动态检测:测试判定难题l 实验结果n 故障检测率:与静态测试相近n 避免误报:蜕变关系的性质决定惠战伟,黄松等,一种基于蜕变关系的整数溢出故障检测方法,专利申请号:20151003
26、9364.5惠战伟,黄松等,基于程序特征谱证书溢出错误定位技术研究,计算机学报,Vol.35, No.10, Oct, 2012, p.2204-2214.Zhan-weiHui, Song Huang et al. Metamorphic Testing Integer Overflow Faults of Mission Critical Program: A Case Study, Mathematical Problems in Engineering, Volume 2013, Article ID 381389, 2013.0.50.60.70.80.911.1tcasschedu
27、leschedule2tot_infoprint_tokensprint_tokens2replace Space平均故障检测率Splint&K8 BRICK MR-IOD00.10.20.30.40.50.60.70.80.91tcasscheduleschedule2tot_infoprint_tokensprint_tokens2replace Space平均误报率Splint&K8 BRICK MR-IOD2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 26蜕变测试的应用(六)l基于蜕变关系的GIS软件测试n GIS地形量算领域蜕变关系距离量算程序领域蜕变关系面积
28、量算程序领域蜕变关系体积量算程序领域蜕变关系梯度量算程序领域蜕变关系通视性量算程序领域蜕变关系最短路径程序领域蜕变关系n 基于GIS的半自动化蜕变测试方法Zhan-weiHui, Song Huang, Semi-automated Metamorphic Testing Approach of Geographic InformationSystems: An Empirical Study, 已投TSE2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 27总结测试判定难题理论发展技术改进蜕变关系(MRs) 测试用例(OTC, FTC)MR形式化模型MR生成方法 MR分解模型 MR度量元 MT-ART MD-ART应用探索失效定位整数溢出故障实时检测方法距离量算程序蜕变关系GIS软件测试通视分析程序蜕变关系梯度量算程序蜕变关系失效测试用例定位传统蜕变测试模型基于蜕变关系的测试模型面积量算程序蜕变关系2015年11月13日星期五 蜕变测试关键技术研究 SAT 2015 28