1、白盒测试练习及答案1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。若x, y是两个变量,可供选择的测试用例组共有I、川、W四组,如表中给出,则实现 判定覆盖至少应采取的测试用例组是( B )或(C );实现条件覆盖至少应采取的测试用例组是(DE )或(F )。TB;实现路径覆盖至少应采取的测试用例组是((x=0)and(y2)F(7=11藍y側试用例爼03测朗卿II12測试用例组IU-12测试用例廻珂3:A条件覆盖判定覆盖路径覆盖BF:n和川组川和w组I和w组n、川、w组 I、
2、川、w组解答:A. B.C. D. E. F.供选择的答案2阅读下面这段程序,使用逻辑覆盖法进行测试, 入值可以达到条件覆盖。( B )int fun c(i nt 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)C. (a,b,c) = (6,8,-2)、(1,5,4)请问哪一组关于(B. (a,b,c) = (2,5,8)、 D. (a,b,c) = (4,9,-2)、a,b,c)的输(-4,-9,-5)(-4,8,3)3.阅读下面
3、这段程序,使用逻辑覆盖法进行测试,请问哪一组关于( a,b,c)的输入值可以达到判定覆盖。(D )int fun c(i nt a,b,c)k=k+a;B.(a,b,c) = (2,5,8)、(-4,-9,-5)D.(a,b,c) = (4,-9,-2)、(-4,8,3) int k=1;if ( (a0) &(b0) else k=k+b;if (c0) k=k+c;return k;A.(a,b,c) = (3,6,1)、(-4,-5,7)C.(a,b,c) = (6,8,-2)、(1,5,4)4.阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于( a,b,c)的输入值可以达到判定
4、条件覆盖。(B)int fun c(i nt 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)5、下面是一段求最大值的程序,其中 datalist 是数据表,n是datalist 的长度。int GetMax(i nt n, i nt datalist)int k
5、=0;for ( int j=1; j datalistk ) k=j; return k;(1)画出该程序的控制流图,并计算其 McCabe环路复杂性。(2)用基本路径覆盖法给出测试路径。(3)为各测试路径设计测试用例。答:1int k = 0;2int j = 1;3while ( j datalistk)6k = j;7j+;8return k;控制流图如上,McCabe环路复杂性为 32.测试路径:Path1 :2 3 t 9Path2:2乍 3 t 5t 6 t 7 t 8t 3 t 9Path3:2t 3 t 5t 7 t 8 t 3t 93.测试用例:Pathl : 取 n=1,
6、 datalistO = 1 , 预期结果:k=0Path2 :取 n=2, datalist0 = 1 , datalist1 = 0,预期结果:k=0Path3:取 n=2, datalist0 = 0, datalist1 = 1 ,预期结果:k=16、下面是选择排序的程序,其中 datalist 是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小 n。算法中用到两个操作,一是取某数组元素 Vi的关键码操作getKey (),一是交换两数组元素内容的操作 Swap():list.V0 到list.Vn-1 进行排序,n是表当前长度。-1; i+ ) / 在
7、list.Vi.key 至U list.Vn-1.key 中找具有最小关键码的对象() list.Vk.getKey ( ) ) k = j;(1)试计算此程序段的 McCabe复杂性;(2)用基本路径覆盖法给出测试路径;(3)为各测试路径设计测试用例。解答:(1)int i = 0;while ( i list, n-1 ) int k = i;int j = i+1;while ( j list.n ) if ( list.Vj.getKey ( ) R0)Rj+1 = Rj;j-;Rj+1 = R0;用路径覆盖方法为它设计足够的测试用例( while循环次数为0、1、2次)。答:画出该程序的流程图:测试用例设计:循环 次数输入数据覆盖路径kR1R2R0路径二01121121二22231二
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1