白盒测试练习及答案.doc
- 文档编号:1424423
- 上传时间:2022-10-22
- 格式:DOC
- 页数:8
- 大小:751.75KB
白盒测试练习及答案.doc
《白盒测试练习及答案.doc》由会员分享,可在线阅读,更多相关《白盒测试练习及答案.doc(8页珍藏版)》请在冰豆网上搜索。
1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中( A )是最强的覆盖准则。
为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。
若x,y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是( B )或( C );实现条件覆盖至少应采取的测试用例组是( D );实现路径覆盖至少应采取的测试用例组是( E )或( F )。
供选择的答案
A:
①语句覆盖 ②条件覆盖 ③判定覆盖 ④路径覆盖
B~F:
①Ⅰ和Ⅱ组 ②Ⅱ和Ⅲ组 ③Ⅲ和Ⅳ组 ④Ⅰ和Ⅳ组
⑤Ⅰ、Ⅱ、Ⅲ组 ⑥Ⅱ、Ⅲ、Ⅳ组 ⑦Ⅰ、Ⅲ、Ⅳ组
⑧Ⅰ、Ⅱ、Ⅳ组
解答:
A.④B.⑤C.⑧D.④E.⑤F.⑧
2.阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于(a,b,c)的输入值可以达到条件覆盖。
(B)
intfunc(inta,b,c)
{ intk=1;
if((a>0)||(b<0)||(a+c>0))k=k+a;
elsek=k+b;
if(c>0)k=k+c;
returnk;
}
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)
intfunc(inta,b,c)
{ intk=1;
if((a>0)&&(b<0)&&(a+c>0))k=k+a;
elsek=k+b;
if(c>0)k=k+c;
returnk;
}
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)
intfunc(inta,b,c)
{ intk=1;
if((a>0)||(b<0)||(a+c>0))k=k+a;
elsek=k+b;
if(c>0)k=k+c;
returnk;
}
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的长度。
intGetMax(intn,intdatalist[])
{
intk=0;
for(intj=1;j if(datalist[j]>datalist[k])k=j; returnk; } (1)画出该程序的控制流图,并计算其McCabe环路复杂性。 (2)用基本路径覆盖法给出测试路径。 (3)为各测试路径设计测试用例。 答: 1intk=0; 2intj=1; 3while(j 4{ 5if(datalist[j]>datalist[k]) 6k=j; 7j++; 8} 9returnk; 控制流图如上,McCabe环路复杂性为3。 2.测试路径: Path1: 2→3→9 Path2: 2→3→5→6→7→8→3→9 Path3: 2→3→5→7→8→3→9 3.测试用例: Path1: 取n=1,datalist[0]=1, 预期结果: k=0 Path2: 取n=2,datalist[0]=1,datalist[1]=0, 预期结果: k=0 Path3: 取n=2,datalist[0]=0,datalist[1]=1, 预期结果: k=1 6、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员: 一是元素类型为Element的数组V,另一个是数组大小n。 算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap(): voidSelectSort(datalist&list){ //对表list.V[0]到list.V[n-1]进行排序, n是表当前长度。 for(inti=0;i intk=i; //在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象 for(intj=i+1;j if(list.V[j].getKey() //当前具最小关键码的对象 if(k! =i)Swap(list.V[i],list.V[k]);//交换 } } (1)试计算此程序段的McCabe复杂性; (2)用基本路径覆盖法给出测试路径; (3)为各测试路径设计测试用例。 解答: (1) 1inti=0; 2while(i 3{intk=i; 4intj=i+1; 5while(j 6{if(list.V[j].getKey() 7k=j; 8j++; 9} 10if(k! =i) 11Swap(list.V[i],list.V[k]); 12i++; 13} 14 1 214 3 5 6 7 8 9 10 11 12 13 McCabe环路复杂性=5 (2)独立路径有5条: Path1: 1→2→14 Path2: 1→2→3→5→10→11→12→13→2→14 Path3: 1→2→3→5→10→12→13→2→14 Path4: 1→2→3→5→6→7→8→9→5→10→11→12→13→2→14 Path5: 1→2→3→5→6→8→9→5→10→11→12→13→2→14 ①③ ①②⑤⑧…… ①②⑤⑨…… ①②④⑥…… ①②④⑦…… (3)为各测试路径设计测试用例: Path1: 取n=1 路径①②⑤⑧……: 取n=2, 预期结果: 路径⑤⑧③不可达 路径①②⑤⑨……: 取n=2, 预期结果: 路径⑤⑨③不可达 路径①②④⑥⑤⑧③: 取n=2,V[0]=2,V[1]=1,预期结果: k=1,V[0]=1,V[1]=2 路径①②④⑥⑤⑨③: 取n=2,V[0]=2,V[1]=1,预期结果: k=1,路径⑨③不可达 路径①②④⑦⑤⑧③: 取n=2,V[0]=1,V[1]=2,预期结果: k=0,路径⑧③不可达 路径①②④⑦⑤⑨③: 取n=2,V[0]=1,V[1]=2,预期结果: k=0,V[0]=1,V[1]=2 7、下面是快速排序算法中的一趟划分算法,其中datalist是数据表,它有两个数据成员: 一是元素类型为Element的数组V,另一个是数组大小n。 算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey(),一是交换两数组元素内容的操作Swap(): intPartition(datalist&list,intlow,inthigh){ //在区间[low,high]以第一个对象为基准进行一次划分,k返回基准对象回放位置。 int k=low; Elementpivot=list.V[low];//基准对象 for(inti=low+1;i<=high;i++)//检测整个序列,进行划分 if(list.V[i].getKey() =i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 练习 答案