白盒测试练习及答案.doc_第1页
白盒测试练习及答案.doc_第2页
白盒测试练习及答案.doc_第3页
白盒测试练习及答案.doc_第4页
白盒测试练习及答案.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。若x, y是两个变量,可供选择的测试用例组共有、四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B )或( C );实现条件覆盖至少应采取的测试用例组是( D );实现路径覆盖至少应采取的测试用例组是( E )或( F )。供选择的答案A: 语句覆盖 条件覆盖 判定覆盖 路径覆盖BF: 和组 和组 和组 和组 、组 、组 、组 、组解答:A. B. C. D. E. F. 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)的输入值可以达到判定覆盖。( D )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)4. 阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(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)5、下面是一段求最大值的程序,其中datalist是数据表,n是datalist的长度。 int GetMax(int n, int datalist ) int k=0; for ( int j=1; j datalistk ) k=j; return k; (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,datalist1 = 0, 预期结果:k=0 Path3: 取n=2,datalist0 = 0,datalist1 = 1, 预期结果:k=16、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素Vi的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):void SelectSort ( datalist & list ) /对表list.V0到list.Vn-1进行排序, n是表当前长度。for ( int i = 0; i list.n-1; i+ ) int k = i; /在list.Vi.key到list.Vn-1.key中找具有最小关键码的对象for ( int j = i+1; j list.n; j+)if ( list.Vj.getKey ( ) list.Vk.getKey ( ) ) k = j;/当前具最小关键码的对象if ( k != i ) Swap ( list.Vi, list.Vk );/交换(1) 试计算此程序段的McCabe复杂性;(2) 用基本路径覆盖法给出测试路径;(3) 为各测试路径设计测试用例。解答:(1) 1 int i = 0; 2 while ( i list.n-1 ) 3 int k = i; 4 int j = i+1; 5 while ( j list.n ) 6 if ( list.Vj.getKey ( ) list.Vk.getKey ( ) ) 7 k = j; 8 j+; 9 10 if ( k != i ) 11 Swap ( list.Vi, list.Vk ); 12 i+; 13 14 1 2 14 3 5 6 7 8 9 10 11 12 13 McCabe环路复杂性 = 5(2) 独立路径有5条: Path1: 1214Path2: 123510111213214Path3: 1235101213214 Path4:12356789510111213214 Path5: 1235689510111213214 (3) 为各测试路径设计测试用例: Path1: 取n = 1 路径:取n = 2, 预期结果:路径不可达 路径:取n = 2, 预期结果:路径不可达 路径: 取n = 2, V0 = 2, V1 = 1, 预期结果:k = 1, V0 = 1, V1 = 2 路径: 取n = 2, V0 = 2, V1 = 1, 预期结果:k = 1, 路径不可达 路径: 取n = 2, V0 = 1, V1 = 2, 预期结果:k = 0, 路径不可达 路径: 取n = 2, V0 = 1, V1 = 2, 预期结果:k = 0, V0 = 1, V1 = 27、 下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素Vi的关键码操作getKey ( ),一是交换两数组元素内容的操作Swap( ):int Partition ( datalist &list, int low, int high ) /在区间 low, high 以第一个对象为基准进行一次划分,k返回基准对象回放位置。int k = low; Element pivot = list.Vlow; /基准对象for ( int i = low+1; i = high; i+ )

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论