白盒测试练习及答案_第1页
白盒测试练习及答案_第2页
白盒测试练习及答案_第3页
白盒测试练习及答案_第4页
白盒测试练习及答案_第5页
全文预览已结束

下载本文档

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

文档简介

./1、在白盒测试用例设计中,有语句覆盖、分支覆盖、条件覆盖、路径覆盖等,其中〔

A

是最强的覆盖准则。为了对如下图所示的程序段进行覆盖测试,必须适当地选取测试用例组。若x,y是两个变量,可供选择的测试用例组共有Ⅰ、Ⅱ、Ⅲ、Ⅳ四组,如表中给出,则实现判定覆盖至少应采取的测试用例组是〔

B

或〔

C

;实现条件覆盖至少应采取的测试用例组是〔

D

;实现路径覆盖至少应采取的测试用例组是〔

E

或〔

F

。供选择的答案

A:①语句覆盖

②条件覆盖

③判定覆盖

④路径覆盖

B~F:①Ⅰ和Ⅱ组

②Ⅱ和Ⅲ组

③Ⅲ和Ⅳ组

④Ⅰ和Ⅳ组

⑤Ⅰ、Ⅱ、Ⅲ组

⑥Ⅱ、Ⅲ、Ⅳ组

⑦Ⅰ、Ⅲ、Ⅳ组

⑧Ⅰ、Ⅱ、Ⅳ组解答:A.④B.⑤C.⑧D.④E.⑤F.⑧2.阅读下面这段程序,使用逻辑覆盖法进行测试,请问哪一组关于〔a,b,c的输入值可以达到条件覆盖。〔Bintfunc<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的输入值可以达到判定覆盖。〔Dintfunc<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的输入值可以达到判定条件覆盖。〔Bintfunc<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<n;j++>if<datalist[j]>datalist[k]>k=j;returnk;}〔1画出该程序的控制流图,并计算其McCabe环路复杂性。〔2用基本路径覆盖法给出测试路径。〔3为各测试路径设计测试用例。答:1intk=0;2intj=1;3while<j<n>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=16、下面是选择排序的程序,其中datalist是数据表,它有两个数据成员:一是元素类型为Element的数组V,另一个是数组大小n。算法中用到两个操作,一是取某数组元素V[i]的关键码操作getKey<>,一是交换两数组元素容的操作Swap<>:

voidSelectSort<datalist&list>{

//对表list.V[0]到list.V[n-1]进行排序,

n是表当前长度。

for<inti=0;i<list.n-1;i++>{

intk=i;

//在list.V[i].key到list.V[n-1].key中找具有最小关键码的对象

for<intj=i+1;j<list.n;j++>

if<list.V[j].getKey<><list.V[k].getKey<>>k=j;

//当前具最小关键码的对象

if<k!=i>Swap<list.V[i],list.V[k]>;//交换

}

}

<1>试计算此程序段的McCabe复杂性;

<2>用基本路径覆盖法给出测试路径;

<3>为各测试路径设计测试用例。解答:<1>1inti=0;2while<i<list.n-1>3{intk=i;4intj=i+1;5while<j<list.n>6{if<list.V[j].getKey<><list.V[k].getKey<>>7k=j;8j++;9}10if<k!=i>11Swap<list.V[i],list.V[k]>;12i++;13}14121435678910111213McCabe环路复杂性=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→14Path4:1→2→3→5→6→7→8→9→5→10→11→12→13→2→14Path5: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下面是快速排序算法中的一趟划分算法,其中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<><pivot.getKey<>&&++k!=i>

Swap<list.V[k],list.V[i]>;//小于基准的交换到左侧去

Swap<list.V[low],list.V[k]>;//将基准对象就位

returnk;//返回基准对象位置

}

<1>试画出它的程序流程图;

<2>试利用路径覆盖方法为它设计足够的测试用例〔循环次数限定为0次,1次和2次。解答:〔1流程图如下。<2>测试用例设计

8、

温馨提示

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

评论

0/150

提交评论