3.1.2 判定覆盖
判定覆盖的作用是使真假分支 均被执行,虽然判定覆盖比语 句覆盖测试能力强,但仍然具 有和语句覆盖一样的单一性。
3.1.2 判定覆盖
以3.1.1节程序为例,设计判定覆盖测试用例。
测试用例 x y z 执行语句路径
test1
2 -1 1
acd
test2
-3 1 -1
abd
test3
3.1.1 语句覆盖
语句覆盖的目的是测试程序中的代码 是否被执行,它只测试代码中的执行 语句,这里的执行语句不包括头文件、 注释、空行等。
3.1.1 语句覆盖
语句覆盖在多分支的程序中,只能覆 盖某一条路径,使得该路径中的每一 个语句至少被执行一次,但不会考虑 各种分支组合情况。
3.1.1 语句覆盖
3.1.1 语句覆盖
语句覆盖无需详细考虑每个判断表达式, 可以直观地从源程序中有效测试执行语 句是否全部被覆盖,由于程序在设计时, 语句之间存在许多内部逻辑关系,而语 句覆盖不能发现其中存在的缺陷,因此 语句覆盖并不能满足白盒测试的测试所 有逻辑语句的基本需求。
3.1.2 判定覆盖
判定覆盖(Decision Coverage) 又称为分支覆盖,其原则是设 计足够多的测试用例,在测试 过程中保证每个判定至少有一 次为真值,有一次为假值。
3.1.3 条件覆盖
以图3.1.1节程序为例,设计条件覆盖测试用例,在该程序中,有2个判 定语句,每个判定语句有2个逻辑条件,共有4个逻辑条件,使用标识 符标识各个逻辑条件取真值与取假值的情况,如下表。
条件1 x>0 x<0 y<0 y>0
条件标记 S1 -S1 S2 -S2
条件2 x>2 x<2 z>0 z<0