1 / 16
文档名称:

软件测试 08 逻辑覆盖.ppt

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

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

分享

预览

软件测试 08 逻辑覆盖.ppt

上传人:今晚不太方便 2017/7/7 文件大小:633 KB

下载得到文件列表

软件测试 08 逻辑覆盖.ppt

相关文档

文档介绍

文档介绍:1
软件质量保证与测试 Week 11
2
内容
(1)逻辑覆盖
语句覆盖
判定覆盖
条件覆盖
判定-条件覆盖
条件组合覆盖
路径覆盖
3
逻辑覆盖
void DoWork (int x,int y,int z)
{
int k=0,j=0;
if ( (x>3)&&(z<10) )
{ k=x*y-1;
j=sqrt(k);
} //语句块1
if ( (x==4)||(y>5) )
{ j=x*y+10; } //语句块2
j=j%3; //语句块3
}
4
逻辑覆盖
X>3 && z<10
执行语句块1
执行语句块2
X==4 || y>5
执行语句块3
F
F
T
T
a
b
d
c
e
5
逻辑覆盖
语句覆盖:选择足够多的测试用例,使得程序中的每个可执行语句至少执行一次。
要实现DoWork函数的语句覆盖,只需设计一个测试用例就可以覆盖程序中的所有可执行语句。
测试用例输入为:{ x=4、y=5、z=5 }
程序执行的路径是:abd
分析:
语句覆盖可以保证程序中的每个语句都得到执行,但发现不了判定中逻辑运算的错误,即它并不是一种充分的检验方法。例如在第一个判定((x>3)&&(z<10))中把“&&”错误的写成了“||”,或者把x>3误写成x >2,这时仍使用该测试用例,则程序仍会按照流程图上的路径abd执行。可以说语句覆盖是最弱的逻辑覆盖准则。
6
逻辑覆盖
判定覆盖:通过执行足够的测试用例,使得程序中的每个判定至少都获得一次“真”值和“假”值, 也就是使程序中的每个取“真”分支和取“假”分支至少均经历一次,也称为“分支覆盖”。
要实现DoWork函数的判定覆盖,需要设计两个测试用例。
测试用例的输入为:{x=4、y=5、z=5};{x=2、y=5、z=5}
程序执行的路径分别是:abd;ace
分析:
上述两个测试用例不仅满足了判定覆盖,同时还做到语句覆盖。从这点看似乎判定覆盖比语句覆盖更强一些,但仍然无法确定判定内部条件的错误。例如把第二个判定中的条件y>5错误写为y<5,使用上述测试用例,照样能按原路径执行而不影响结果。因此,需要有更强的逻辑覆盖准则去检验判定内的条件。
7
逻辑覆盖
条件覆盖:设计足够多的测试用例,使得程序中每个判定包含的每个条件的可能取值(真/假)都至少满足一次。
在实际程序代码中,一个判定中通常都包含若干条件。条件覆盖的目的是设计若干测试用例,在执行被测程序后,要使每个判定中每个条件的可能值至少满足一次。
对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
8
逻辑覆盖
根据条件覆盖的基本思想,要使上述4个条件可能产生的8种情况至少满足一次,设计测试用例如下:
测试用例
执行路径
覆盖条件
覆盖分支
x=4、y=6、z=5
abd
T1、T2、T3、T4
bd
x=2、y=5、 z=15
ace
-T1、-T2、
-T3、-T4
ce
分析:上面这组测试用例不但覆盖了4个条件的全部8种情况,而且将两个判定的4个分支b、c、d、e也同时覆盖了,即同时达到了条件覆盖和判定覆盖。
9
逻辑覆盖
说明:虽然前面的一组测试用例同时达到了条件覆盖和判定覆盖,但是,并不是说满足条件覆盖就一定能满足判定覆盖。如果设计了下表中的这组测试用例,则虽然满足了条件覆盖,但只是覆盖了程序中第一个判定的取假分支c 和第二个判定的取真分支d,不满足判定覆盖的要求。
测试用例
执行路径
覆盖条件
覆盖分支
x=2、y=6、z=5
ace
-T1、T2、
-T3、T4
ce
x=4、y=5、z=15
ace
T1、-T2、
T3、-T4
ce
10
逻辑覆盖
判定/条件覆盖:设计足够多的测试用例,使得程序中每个判定包含的每个条件的所有情况(真/假)至少出现一次,并且每个判定本身的判定结果(真/假)也至少出现一次
——满足判定/条件覆盖的测试用例一定同时满足判定覆盖和条件覆盖
判定/条件覆盖实际上是将判定覆盖和条件覆盖结合起来的一种方法,即:设计足够的测试用例,使得判定中每个条件的所有可能取值至少满足一次,同时每个判定的可能结果也至少出现一次。
根据判定/条件覆盖的基本思想,只需设计以下两个测试用例便可以覆盖4个条件的8种取值以及4个判定分支。
测试用例