在用白箱法设计测试用例时,常用的5种覆盖标准是:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、多重条件组合覆盖。
假设A和B是两种覆盖标准,我们用AB表示A包含B,用AB表示B包含A,用A≡B表示A与B相同,用A≠B表示A和B互不包含。于是上述5种覆盖标准之间的某些关系可表示为:
语句覆盖 (88) 判定覆盖;
语句覆盖 (89) 条件覆盖;
判定覆盖 (90) 条件覆盖;
判定覆盖 (91) 判定/条件覆盖:
判定/条件覆盖 (92) 多重条件组合覆盖。
92()
A.A
B.B
C.C
D.D
参考答案:B
解析:
本题考查设计白盒测试用例的几种方法,下面分别进行介绍。
(1)语句覆盖:语句覆盖是指选择足够多的测试用例,使得运行这些测试用例时,被测程序的每个语句至少执行一次。很显然,语句覆盖是一种很弱的覆盖标准。
(2)判定覆盖:判定覆盖又称分支覆盖,它的含义是,选取足够的测试用例,使得不仅每个语句至少执行一次,而且每个判定的每种可能的结果(分支)都至少执行一次。判定覆盖比语句覆盖强,但对程序逻辑的覆盖程度仍然不高。
(3)条件覆盖:选取足够的测试用例,使得不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖。
(4)判定/条件覆盖:同时满足判定覆盖和条件覆盖的逻辑覆盖称为判定/条件覆盖。它的含义是:选取足够的测试用例,使得判定表达式中每个条件的所有可能结果至少出现一次,而且每个判定本身的所有可能结果也至少出现一次。
(5)多重条件组合覆盖:选取足够的测试用例,使得每个判定表达式中条件结果的所有可能组合至少出现一次。显然,满足条件组合覆盖的测试用例,也一定满足判定/条件覆盖。因此,条件组合覆盖是上述5种覆盖标准中最强的一种。然而,条件组合覆盖还不能保证程序中所有可能的路径都至少经过一次。
(6)路径覆盖:选取足够的测试用例,使得程序的每一条可能的路径都至少经过一次。
根据以上分析可知:语句覆盖最弱,路径覆盖最强。语句覆盖包含于判定覆盖;语句覆盖包含于条件覆盖;条件覆盖不一定包含判定覆盖,判定覆盖也不一定包含条件覆盖;判定覆盖包含于判定/条件覆盖;判定/条件覆盖包含于多重条件组合覆盖。