软件测试白盒测试用例练习题

白盒测试用例练习

一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。 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 }

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

j=sqrt(k) 1、 语句覆盖

测试用例输入 输出 判定M的取判定N的取值 值 覆盖路径 x=4,z=5,y=8 2、判定覆盖

k=31,j=0 T T P1(a-c-e) p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。

测试用例输入 x=4,z=5,y=8 x=2,z=11,y=5 输出 k=31,j=0 k=0,j=0 判定M的取值 T F 判定N的取值 T F 覆盖路径 P1(a-c-e) P4(a-b-d) 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入 x=5,z=5,y=4 x=4,z=11,y=6 3、条件覆盖

输出 k=19,j=sqrt(19)%3 k=0,j=1 判定M的取值 判定N的取值 T F F T 覆盖路径 P2(a-c-d) P3(a-b-e) 对于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=0 x=3,z=11,y=k=0,j=0 5 4、判定/条件覆盖

T1,T2,T3,x>3,z<10,x=4,y>5 P1(a-c-e) T4 F1,F2,F3,x<=3,z>=10,x!=4,F4 y<=5 P4(a-b-d) 输出 取值条件 具体取值条件 覆盖路径 测试用例输入 输出 取值条件 具体取值条件 覆盖路径 x=4,z=5,y=8 k=31,j=0 x=3,z=11,y=k=0,j=0 5 5、组合覆盖

T1,T2,T3,x>3,z<10,x=4,y>5 P1(a-c-e) T4 F1,F2,F3,x<=3,z>=10,x!=4,F4 y<=5 P4(a-b-d) 条件组合

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 测试用例输入 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、路径覆盖 测试用例输入 x=4,z=5,y=8 x=5,z=5,y=4 x=4,z=11,y=6 x=2,z=11,y=5 输出 k=31,j=0 k=19,j=sqrt(19)%3 k=0,j=1 k=0,j=0 覆盖条件取值 T1,T2,T3,T4 T1,T2,F3,F4 T1,F2,T3,T4 F1,F2,F3,F4 覆盖条件组合 1,5 1,8 2,5 4,8 P1(a-c-e) P2(a-c-d) P3(a-b-e) P4(a-b-d) 覆盖路径 输出 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) 二、冒泡法排序:

#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++)

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4