在测试用例设计中,有语句覆盖、条件覆盖、判定覆盖(即分支覆盖)、路径覆盖等,其中 (43) 是最强的覆盖准则。为了对如图9-2所示的程序段进行覆盖测试,必须适当地选取测试数据组。若x,y是两个变量,可供选择的测试数据组共有Ⅰ,Ⅱ,Ⅲ,Ⅳ四组(如表9-3所示),则实现判定覆盖至少应采用的测试数据组是 (44) ;实现条件覆盖至少应采用的测试数据组是 (45) ;实现路径覆盖至少应采用的测试数据组是 (46) 或 (47) 。
表9-3测试数据组
z | y | |
测试数据组Ⅰ | 0 | 3 |
测试数据组Ⅱ | 1 | 2 |
测试数据组Ⅲ | -1 | 2 |
测试数据组Ⅳ | 3 | 1 |
47()
A.Ⅰ和Ⅱ组
B.Ⅰ和Ⅲ组
C.Ⅲ和Ⅳ组
D.Ⅰ和Ⅳ组
E.Ⅰ,Ⅱ和Ⅲ组
F.Ⅱ,Ⅲ和Ⅳ组
G.Ⅰ,Ⅲ和Ⅳ组
H.Ⅱ,Ⅱ和Ⅳ组
参考答案:H
解析:
有关覆盖的标准和概念,请读者参考本节练习1的分析。
解答此类试题,需要考生具有良好的耐心,用所给定的数据组代入到流程图中,然后进行判断。
在图9-2中,共有2个判定,第1组数据(x=0,y=3)可以使第1个判定((x=0) And(y>2))取真值,使第2个判定((z<1)OR(y=1))也取真值。第Ⅱ组数据(x=1, y=2)使第1个判定和第2个判定都取假值。因此,要达到判定覆盖的标准,只要第1组数据和第Ⅱ组数据就足够了。
在2个判定中,共4个条件(x=0;y>2;x<l;y=1),要满足条件覆盖的标准,则必须使这4个条件各取一次真值和假值。我们选取数据情况如表9-3所示。
表9-3 满足条件覆盖的情况
测试数据组 | x=0 | y>2 | x<1 | y=1 |
第Ⅰ组(x=0,y=3) | 真 | 真 | 真 | 假 |
第Ⅳ组(x=3,y=1) | 假 | 假 | 假 | 真 |
因此,要达到条件覆盖的标准,只要选取第1组数据和第1V组数据就可以了。
在图9-2中,共有3条路径,分别是:
(1)第1个判定取真的路径;
(2)第1个判定取假而第2个判定取真的路径;
(3)第1个判定取假且第2个判定取假的路径。
我们选取的数据情况如表9-4和表9-5所示。
表9-4 满足路径覆盖的情况一
测试数据组 | 路径(1) | 路径(2) | 路径(3) |
第Ⅰ组(x=0,y=3) | √ | ||
第Ⅱ组(x=1,y=2) | √ | ||
第Ⅲ组(x=-1,y=2) | √ |
表9-5 满足路径覆盖的情况二
测试数据组 | 路径(1) | 路径(2) | 路径(3) |
第Ⅰ组(x=0,y=3) | √ | ||
第Ⅱ组(x=1,y=2) | √ | ||
第Ⅳ组(x=3,y=1) | √ |
因此,要达到路径覆盖的标准,可选取第Ⅰ、Ⅱ、Ⅲ组数据,或者选取第Ⅰ、Ⅱ、Ⅳ组数据。