1、1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下 图所示的程序段进行覆盖 测试,必 须适当地选取测试用例组。若x, y是两个变量,可供选择的测试 用例组共有、 、 四组,如表中给出, 则实现判定覆盖至少应采取的测试用例组是( B )或( C );实现条件覆盖至少应采取的测试用例组是( D );实现路径覆盖至少应采取的测试用例组是( E )或( F )。供选择的答案A: 语句覆盖 条件覆盖 判定覆盖 路径覆盖BF: 和组 和组 和组 和组 、组 、 组 、 组 、组解答:A. B. C. D. E. F. 2. 阅读下面这段程序,使
2、用逻辑覆盖法进行测试, 请问哪一组关于(a,b,c)的输入值可以达到条件覆盖。( B )int func(int a,b,c) int k=1;if ( (a0) | (b0) ) k=k+a;else k=k+b;if (c0) k=k+c;return k;A. (a,b,c) = (3,6,1)、(-4,-5,7) B. (a,b,c) = (2,5,8)、(-4,-9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4) D. (a,b,c) = (4,9,-2)、(-4,8,3)3. 阅读下面这段程序,使用逻辑覆盖法进行测试, 请问哪一组关于(a,b,c)的输入值可以达到
3、判定覆盖。( D )int func(int a,b,c) int k=1;if ( (a0) else k=k+b;if (c0) k=k+c;return k;A. (a,b,c) = (3,6,1)、(-4,-5,7) B. (a,b,c) = (2,5,8)、(-4,-9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4) D. (a,b,c) = (4,-9,-2)、(-4,8,3)4. 阅读下面这段程序,使用逻辑覆盖法进行测试, 请问哪一组关于(a,b,c)的输入值可以达到判定条件覆盖。( B )int func(int a,b,c) int k=1;if ( (a0
4、) | (b0) ) k=k+a;else k=k+b;if (c0) k=k+c;return k;A. (a,b,c) = (3,6,1)、(-4,-5,7) B. (a,b,c) = (2,-5,8)、(-4,9,-5)C. (a,b,c) = (6,8,-2)、(1,5,4) D. (a,b,c) = (4,9,-2)、(-4,8,3)5、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。int GetMax(int n, int datalist ) int k=0; for ( int j=1; j datalistk ) k=j;return k
5、; (1) 画出该程序的控制流图,并 计算其McCabe环路复 杂性。 (2) 用基本路径覆盖法给出测试路径。 (3) 为各测试路径设计测试用例。 答:1 int k = 0;2 int j = 1;3 while ( j datalistk )6 k = j;7 j+;8 9 return k;控制流图如上,McCabe环路复杂性为3。2. 测试路径:Path1: 23 9Path2: 23567 839Path3: 2357 839 3. 测试用例: Path1: 取n=1,datalist0 = 1, 预期结果:k=0 Path2: 取n=2,datalist0 = 1,datalist
6、1 = 0, 预期结果:k=0 Path3: 取n=2,datalist0 = 0,datalist1 = 1, 预期结果:k=16、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小 n。算法中用到两个操作,一是取某数 组元素Vi的关键码操作getKey ( ),一是交换两数组元素内容的操作 Swap( ):void SelectSort ( datalist i R0) Rj+1 = Rj;j-; Rj+1 = R0;用路径覆盖方法为它设计足够的测试用例(while循环次数为0、1、 2次)。答: 画出该程序的流程图:测试用例设计:输入数据 覆 盖 路 径循环次数 k R1 R2 R0 路 径0 1 1 2 1 1 2 1 2 2 2 3 1