软件测试-白盒测试用例练习题,DOC 下载本文

内容发布更新时间 : 2024/5/5 5:06:00星期一 下面是文章的全部内容请认真阅读。

白盒测试用例练习

一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 voidDoWork(intx,inty,intz) {

intk=0,j=0;

if((x>3)&&(z<10)) {k=x*y-1;

j=sqrt(k);//语句块1 }

if((x==4)||(y>5)) {

j=x*y+10; }//语句块2 j=j%3;//语句块3 } a Y c k=0 N j=0 b e x=4 Y or

j=x*y+1y>5 N x>3 0 d and z<10 j=j%3 由这个流程图可以看出,该程序模块有4条不同的路径: k=x*y-1 j=sqrt(kP1:(a-c-e)P2:(a-c-d) ) P3:(a-b-e)P4:(a-b-d) 将里面的判定条件和过程记录如下: 判定条件M={x>3andz<10} 判定条件N={x=4ory>5} 1、 语句覆盖

测试用例输入 x=4,z=5,y=8 k=31,j=0 2、判定覆盖 仅供个人学习参考 T T P1(a-c-e) 输出 判定M的取值 判定N的取值 覆盖路径

p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。 测试用例输输出 判定M的取判定N的取值 覆盖路径 入 值 x=4,z=5,y=8 k=31,j=0 T T P1(a-c-e) x=2,z=11,y=k=0,j=0 F F P4(a-b-d) 5 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入 x=5,z=5,y=4 k=19,j=sqrt(19)%3 x=4,z=11,y=k=0,j=1 6 3、条件覆盖 对于M:x>3取真时T1,取假时F1; z<10取真时T2,取假时F2; 对于N:x=4取真时T3,取假时F3; y>5取真时T4,取假时F4。 条件:x>3,z<10,x=4,y>5 条件:x<=3,z>=10,x!=4,y<=5 根据条件覆盖的基本思路,和这8个条件取值,组合测试用例如表所示: 测试用例输输出 取值条件 具体取值条件 覆盖路径 入 x=4,z=5,y=8 k=31,j=T1,T2,T3,x>3,z<10,x=4,y>5 P1(a-c-e) 0 T4 x=3,z=11,y=k=0,j=0 F1,F2,F3,x<=3,z>=10,x!=4,P4(a-b-d) 5 F4 y<=5 4、判定/条件覆盖 测试用例输输出 取值条件 具体取值条件 覆盖路径 入 x=4,z=5,y=8 k=31,j=T1,T2,T3,x>3,z<10,x=4,y>5 P1(a-c-e) 0 T4 x=3,z=11,y=k=0,j=0 F1,F2,F3,x<=3,z>=10,x!=4,P4(a-b-d) 5 F4 y<=5 5、组合覆盖 条件组合

1)x>3,z<102)x>3,z>=10 3)x<=3,z<104)x<=3,z>=10 5)x=4,y>56)x=4,y<=5 7)x!=4,y>58)x!=4,y<=5 测试用例输入 输出 覆盖条件取值 覆盖条件组覆盖路径 仅供个人学习参考

F T P3(a-b-e) 输出 判定M的取判定N的取值 T 值 F P2(a-c-d) 覆盖路径

x=4,z=5,y=6 x=4,z=10,y=5 x=3,z=5,y=6 z=3,z=10,y=5 6、路径覆盖 测试用例输入 k=23,j=1 k=0,j=0 k=14j=1 k=0,j=2 输出 T1,T2,T3,T4 T1,F2,T3,F4 F1,T2,F3,T4 F1,F2,F3,F4 合 1,5 2,6 3,7 4,8 P1(a-c-e) P2(a-c-d) P3(a-b-e) P4(a-b-d) 覆盖路径 P1(a-c-e) P2(a-c-d) P3(a-b-e) P4(a-b-d) x=4,z=5,y=8 k=31,j=0 x=5,z=5,y=4 k=19,j=sqrt(19)%3 x=4,z=11,y=6 k=0,j=1 x=2,z=11,y=5 k=0,j=0 覆盖条件取值 覆盖条件组合 T1,T2,T3, 1,5 T4 T1,T2,F3, 1,8 F4 T1,F2,T3, 2,5 T4 F1,F2,F3, 4,8 F4 二、冒泡法排序: #include main() { inti,j,temp; inta[10]; for(i=0;i<10;i++) scanf(\for(j=0;j<=9;j++){ for(i=0;i<10-j;i++) if(a[i]>a[i+1]){ temp=a[i]; a[i]=a[i+1]; a[i+1]=temp;} } for(i=0;i<10;i++) printf(\printf(\}

2、程序流程图

仅供个人学习参考

i=0,j=0