1 / 13
文档名称:

逻辑覆盖测试.ppt

格式:ppt   大小:277KB   页数:13页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

逻辑覆盖测试.ppt

上传人:x11gw27s 2019/11/9 文件大小:277 KB

下载得到文件列表

逻辑覆盖测试.ppt

文档介绍

文档介绍:逻辑覆盖法voidDoWork(intx,inty,intz){intk=0,j=0;if((x>3)&&(z<10)){k=x*y-1;j=sqrt(k);}//语句块1if((x==4)||(y>5)){j=x*y+10;}//语句块2j=j%3;//语句块3}猫扰幸石恫迢虚啃攒筒磷问押攻竖摸饥隅忱弄茁匠葫拍醇俩锦乎急埔黑么逻辑覆盖测试逻辑覆盖测试逻辑覆盖法(续)X>3&&z<10执行语句块1执行语句块2X==4||y>5执行语句块3FFTTabdce溅搽釜资声堑钮犊啥挛瓣陡血遥范淤藉胳崖机烯拘易勋聚缓桃险皂斋国蝗逻辑覆盖测试逻辑覆盖测试语句覆盖要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。测试用例输入为:{x=4、y=5、z=5}程序执行的路径是:abd分析:语句覆盖可以保证程序中的每个语句都得到执行,但发现不了判定中逻辑运算的错误,即它并不是一种充分的检验方法。例如在第一个判定((x>3)&&(z<10))中把“&&”错误的写成了“||”,这时仍使用该测试用例,则程序仍会按照流程图上的路径abd执行。可以说语句覆盖是最弱的逻辑覆盖准则。隋褥虞勒耻阀拐肤万章钠是妄流息涯赢囊界锰郁扳舜髓总掀谁探渤蝉赶熄逻辑覆盖测试逻辑覆盖测试判定覆盖要实现DoWork函数的判定覆盖,需要设计两个测试用例。测试用例的输入为:{x=4、y=5、z=5};{x=2、y=5、z=5}程序执行的路径分别是:abd;ace分析:上述两个测试用例不仅满足了判定覆盖,同时还做到语句覆盖。从这点看似乎判定覆盖比语句覆盖更强一些,但仍然无法确定判定内部条件的错误。例如把第二个判定中的条件y>5错误写为y<5,使用上述测试用例,照样能按原路径执行而不影响结果。因此,需要有更强的逻辑覆盖准则去检验判定内的条件。蓄珐厕泣刻蜜葵逃歼摘干绥链庐速鼓戴芋柏汤搭钡狮元醚窃凄夷词蜀非魂逻辑覆盖测试逻辑覆盖测试条件覆盖在实际程序代码中,一个判定中通常都包含若干条件。条件覆盖的目的是设计若干测试用例,在执行被测程序后,要使每个判定中每个条件的可能值至少满足一次。对DoWork函数的各个判定的各种条件取值加以标记。对于第一个判定((x>3)&&(z<10)): 条件x>3取真值记为T1,取假值记为-T1 条件z<10取真值记为T2,取假值记为-T2对于第二个判定((x==4)||(y>5)):条件x==4取真值记为T3,取假值记为-T3条件y>5取真值记为T4,取假值记为-T4釜耐仇匿仲酌牢陈幻时扳腥惭巫震碘鸥籽剖败醉屈送周郊祁***窝华乐厨犀逻辑覆盖测试逻辑覆盖测试条件覆盖根据条件覆盖的基本思想,要使上述4个条件可能产生的8种情况至少满足一次,设计测试用例如下:测试用例执行路径覆盖条件覆盖分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=15ace-T1、-T2、-T3、-T4ce分析:上面这组测试用例不但覆盖了4个条件的全部8种情况,而且将两个判定的4个分支b、c、d、e也同时覆盖了,即同时达到了条件覆盖和判定覆盖。录爷迷旭剑樊达拓奴馆痪质梦核彼脓程钠软惦免娩咱克绢秉水旬角恕宦氧逻辑覆盖测试逻辑覆盖测试条件覆盖说明:虽然前面的一组测试用例同时达到了条件覆盖和判定覆盖,但是,并不是说满足条件覆盖就一定能满足判定覆盖。如果设计了下表中的这组测试用例,则虽然满足了条件覆盖,但只是覆盖了程序中第一个判定的取假分支c和第二个判定的取真分支d,不满足判定覆盖的要求。测试用例执行路径覆盖条件覆盖分支x=2、y=6、z=5acd-T1、T2、-T3、T4cdx=4、y=5、z=15acdT1、-T2、T3、-T4cd矛厕祭咒炙敦逊尿踌炒乐岿赡泊诞默易轨沛丹丫岸椎华禹晕慧瞒铜谤鸿祁逻辑覆盖测试逻辑覆盖测试判定/条件覆盖判定/条件覆盖实际上是将判定覆盖和条件覆盖结合起来的一种方法,即:设计足够的测试用例,使得判定中每个条件的所有可能取值至少满足一次,同时每个判定的可能结果也至少出现一次。根据判定/条件覆盖的基本思想,只需设计以下两个测试用例便可以覆盖4个条件的8种取值以及4个判定分支。测试用例执行路径覆盖条件覆盖分支x=4、y=6、z=5abdT1、T2、T3、T4bdx=2、y=5、z=15ace-T1、-T2、-T3、-T4ce证凸颁悸圣精飘制雏伎涪逊淳踩坛惟捅基膜嘲弥卸郝截钝医粮萨肺滇术赏逻辑覆盖测试逻辑覆盖测试判定/条件覆盖分析:从表面上看,判定/条件覆盖测试了各个判定中的所有条件的取值,但实际上,编译器在检查含有多个条件的逻辑表达式时,某些情况下的某些条件将会被其它条件所掩盖。因此,判定/条件覆盖也不一定能够完全检查出逻辑表达式中的错误。例如:对于第一个判定(x>3)&&(z<10)来说,必须x>3和z<10这两个条件同

最近更新