欢迎来到天天文库
浏览记录
ID:56709340
大小:20.50 KB
页数:4页
时间:2020-07-05
《条件判定覆盖和修正条件判定覆盖.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、文章的目的在于通过比较发现条件判定覆盖(即Condition/DecisionCoverageC/DC)和修正条件判定覆盖(ModifiedCondition/DecisionCoverage即MC/DC)的差异.软件测试是一项大型的软件工程中必不可少且非常重要的一部分,软件测试使用两种测试方法:静态测试和动态测试.C/DC和MC/DC就是白盒测试方法中的逻辑覆盖方法中的两个成员.目前这两种方法在软件测试中被广泛应用,尤其是MC/DC更是被很多大型软件测试(如飞行控制软件的测试)所应用 2对C/DC和MC/DC的描述 2.1C/DC的定义C/D
2、C是Condition/DecisionCoverage的缩写,含义是条件判定覆盖.对它的定义为: Condition/DecisionCoverage——itcombinestherequirementsfordecisioncoveragewiththoseforconditioncoverage.Thatis,theremustbesuficienttestcasestotogglethedecisionoutcomebetweentrueandfalseandtotoggleeachconditionvaluebetweentrueand
3、false.ifAand(BorC)then?else?具有3个条件的真值表中选择它的测试集为{TTF,FFT}分析如下:当A,B和C的值依次分别取T,T,F时判定Aand(BorC)的值为T;当将A,B和C的值依次分别取F,F,T时,判定Aand(BorC)的值为F;在测试中,3个条件A,B,C的所有可能取值T、F,都被测试,而判定Aand(BorC)的所有可能取值T和F也都被执行了一次,由此说明此测试集满足C/DC方法的要求,是C/DC方法的其中一个测试集合. 2.2MC/DC的定义 MC/DC是ModifiedCondition/Deci
4、sionCoverage(MC/DC)的缩写,含义是修正条件判定覆盖.对它的定义为: Condition——aBooleanexpressioncontainingnoBooleanoperators: Decision——aBooleanexpressioncomposedofconditionsandzeroormoreBooleanoperators: ModifiedCondition/DecisionCoverage——everypointofentryandexitintheprogramhasbeeninvokedatleast
5、once,everyconditionintheprogramhastakenallpossibleoutcomesatleastonce,andeachconditioninadecisionhasbeenshowntoindependentlyaffectadecisionSoutcomebyvaryingjustthatconditionwhileholdingfixedallotherpossibleconditions. 由上可知:在MC/DC这种测试方法中,条件表示不含有布尔操作符号的布尔表达式;判定表示由条件和零或者很多布尔操作符号
6、所组成的一个布尔表达式;而修正条件判定覆盖方法要求在一个程序中每一种输入输出至少得出现一次,在程序中的每一个条件必须产生所有可能的输出结果至少一次,并且每一个判定中的每一个条件必须能够独立影响一个判定的输出,即在其他条件不变的前提下仅改变这个条件的值,而使判定结果改变.与上文同样的例子:ifand(BorC)then?else?这条语句,Aand(BorC)是一个判定,A,B,C均为条件,使用MC/DC方法找出分别对应此3个条件的测试集中有4组元素为:{TTF,F,TFT,FFT}.方法如下:测试元素均从表1中选取,保持A和B的值不变测试元素TFF
7、和TFT可以改变C条件的值和整个表达式的结果(F变成了T);而保持A和C的值不变测试元素TTF和TFT可以改变B条件的值和整个表达式的执行结果(T变成了F);而当保持B和C的值不变测试元素TFT和FFT可以改变A条件的值和整个表达式的执行结果(T变成了F).这个测试集完全满足MC/DC的要求即当锁定其它的条件保持不变,而改变判定中一项条件的值,必然引起整个表达式执行的变化. 3C/DC和MC/DC之间的差异 3.1选取两种方法的条件不同 当以下的需求在程序测试中遇到时,需要考虑用MC/DC方法:每一个程序模块的输入和输出点都要考虑至少出现1次
8、,每个程序的判定到所有可能的结果值要至少实现1次;程序的判定被分解为通过逻辑操作符(AND,OR,etc.)连接为BOOL
此文档下载收益归作者所有