白盒测试又叫架构测试
语句覆盖<条件覆盖<判定覆盖<条件-判定覆盖<组合覆盖<路径覆盖
一、逻辑测试法设计测试用例
此方法主要是测试覆盖率,以内在逻辑结构为基础进行测试
1.1语句覆盖
使程序中的每个可执行语句
至少执行一次。
如图所示,覆盖的路径依次为1->2->3->4
特点:
(1)程序中每个语句至少执行一次
(2)对程序执行逻辑的覆盖率低,属于最弱的覆盖方式
1.2判定覆盖
含义:
可以设计的测试用例为:
第一个条件为真,第二个条件为假
第一个条件为假,第二个条件为真
也可以设计:
第一个条件为真,第二个条件为真
第一个条件为假,第二个条件为假
特点:
优点:不仅满足了判定覆盖还满足了语句覆盖,因此比语句覆盖稍强。
缺点:但仍然无法发现程序段中的逻辑判定错误。
1.3条件覆盖
定义:设计用例,使每个判断中的每个条件
的可能取值至少满足一次
第一个判定框: 第二个判定框:
a>1
为真 T1 a=2为真 T3
a>1
为假 -T1 a=2为假 -T3
b==0
为真 T2 x>1为真 T4
b==0
为假 -T2 x>1为假 -T4
设计:
T1,-T2,T3,-T4
-T1,T2,-T3,T4
其他满足的也可以
特点:
(1)增加了对条件判断情况的判断,增加了测试路径
(2)※条件覆盖不一定满足判断覆盖
1.4判断、条件覆盖(CDC)
定义:设计足够多的测试用例,使得判定中的每个条件
的所有可能(真/假)至少出现一次,并且判定本身
的判定结果(真/假)也至少出现一次。
设计满足的测试用例:
T1,T2,T3,T4
-T1,-T2,-T3,-T4
1.5条件组合覆盖(MCC)
定义:设计足够多的测试用例,使得每个判定中的各种可能的组合
都至少出现一次。
所有条件的组合
满足“条件组合覆盖”的测试用例是一定满足“判定覆盖”、“条件覆盖”和“判定/条件覆盖”的
测试用例:
全T写一组:
全F写一组:
T和F组合写:
TFTF
FTFT
特点:
组合覆盖一定满足判定覆盖、条件覆盖、判定/条件覆盖
二、基本路径测试法
2.1定义:
基本路径测试是在程序控制流图的基础上,通过分析控制流图的环形复杂度,导出基本可执行的独立路径的集合。
可以保证被测程序的每一条可执行语句至少执行一次。
2.2程序控制流图
只有结点和边
复合条件分解为控制流图:
环形复杂度V(G):
(1)流图中的区域数
(2)V(G) = E-N+2;(边的条数-结点数+2;)
(3)V(G) = P+1;(判定结点数目+ 1)
注意:判定结点个数=分支个数-1;