某C语言子程序如下。
其中x,y是两个已定义的整型变量。表2-4给出了可供选择的4组测试数据组,则实现条件覆盖至少应采用的测试数据组是()。
表2-4 测试数据组表
A.Ⅰ和Ⅱ组
B.Ⅰ、Ⅱ和Ⅲ组
C.Ⅰ、Ⅱ和Ⅳ组
D.Ⅰ、Ⅲ和Ⅳ组
参考答案:D
解析:
[要点解析] 在白盒测试用例设计中,有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖及路径覆盖等常见的覆盖测试策略,这些策略的相关描述及发现错误的能力如表2-11所示。
条件覆盖测试策略的本质是:构造一组测试用例数据,使被测程序中每一个判定语句的每个逻辑条件的可能取值至少满足1次。本试题程序段的程序流程图如图2-14所示。
对该程序段实施条件覆盖测试,可选择测试数据组I(x=0, y=3),以同时满足判断条件(x=O)and(y>2)中x=O和y>2的取值条件;可选择测试数据组Ⅲ(x=-1,y=2),满足判断条件 (x<1)or(y=1)中x<1的取值条件;可选择测试数据组Ⅳ(x=3, y=1),满足判断条件(x<1)or(y=1)中y=1的取值条件。因此本试题的正确答案是选项D。 对本试题程序段实施语句覆盖至少应采用的测试数据组是Ⅰ和Ⅱ组(即选项A);实现路径覆盖至少应采用的测试数据组是“Ⅰ、Ⅱ和Ⅲ组(即选项B)”或“Ⅰ、Ⅱ和Ⅳ组(选项C)”。