1 / 13
文档名称:

逻辑覆盖测试.ppt

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

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

分享

预览

逻辑覆盖测试.ppt

上传人:dsjy2351 2020/2/14 文件大小: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这两个条件同