|
8#
楼主 |
发表于 2004-12-20 16:14:52
|
只看该作者
条件覆盖与分支覆盖有啥区别
我们首先来看一下这几些测试覆盖的定义:
定义一、 语句覆盖:它要求被测程序的每一可执行语句在测试中尽可能都检验过;
定义二、分支覆盖:要求程序中所有判定的分支尽可能得到检验;
定义三、条件覆盖:当判定式中含有多个条件时,要求每个条件的取值均得到检验;
从这些定义我们可以很容易理解到语句覆盖是把程序中的所有的语句都给覆盖到;分支覆盖是把程序中每个分支都给覆盖到;条件覆盖是把判断条件中所有的条件都给覆盖到。
下面我们通过一个简单的例子来描述一下
0:
1:if ((a<150)||(b<200)){
2: for (i=a;i<100;i++)
7:}
分支覆盖:
1)在0处设置a=120,b 任意
将执行1,2,5
2)在0处设置a=200,b=400
将执行1,5,6,7
这里所有的分支都走到,也就是说要达到分支覆盖率100%,要设计2组测试用例
a b
120 任意
200 400
语句覆盖:
1)在0处设置a=40,b 任意
将执行1,2,3,4,5
2)在0处设置a=200,b=400
将执行1,5,6,7
这里所有的语句都走到了,也就是说要达到语句覆盖率100%,要设计2组测试用例
a b
40 任意
200 400
而在分支覆盖中语句3,4没有走到
条件覆盖:
由于第一个条件是if ((a<150)||(b<200)) 所以需要设计测试用例
a b 备注
40 50 全都满足
160 150 a 不满足,b满足
40 250 a满足,b不满足
150 250 a,b都不满足
条件覆盖只要求把所有的条件都覆盖就可以了。
这样理解对吗 |
|