实验2-1 答案 联系客服

发布时间 : 星期二 文章实验2-1 答案更新完毕开始阅读8dfa4831964bcf84b9d57be4

白盒测试用例练习

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

int k=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 }

k=0

j=0 a Y c x>3 and z<10

k=x*y-1

j=sqrt(k) N b

x=4 e or Y y>5

j=x*y+10 N d j=j%3

由这个流程图可以看出,该程序模块有4条不同的路径: P1:(a-c-e) P2:(a-c-d) P3:(a-b-e) P4:(a-b-d)

将里面的判定条件和过程记录如下: 判定条件M={x>3 and z<10} 判定条件N={x=4 or y>5} 1、 语句覆盖

测试用例输入 x=4,z=5,y=8

2、判定覆盖

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的取值 判定N的取值 T F T F 覆盖路径 P1(a-c-e) P4(a-b-d) 输出 k=31,j=0 判定M的取值 判定N的取值 T T 覆盖路径 P1(a-c-e) 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下: 测试用例输入 x=5,z=5,y=4 x=4,z=11,y=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 x=3,z=11,y=5 输出 k=31, j=0 k=0, j=0 取值条件 具体取值条件 覆盖路径 P1(a-c-e) T1,T2,T3,T4 x>3,z<10,x=4,y>5 输出 k=19,j=sqrt(19)%3 k=0,j=1 判定M的取值 判定N的取值 T F F T 覆盖路径 P2(a-c-d) P3(a-b-e) F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d) 4、判定/条件覆盖 测试用例输入 x=4,z=5,y=8 x=3,z=11,y=5 输出 k=31, j=0 k=0, j=0 取值条件 具体取值条件 覆盖路径 P1(a-c-e) T1,T2,T3,T4 x>3,z<10,x=4,y>5 F1,F2,F3,F4 x<=3,z>=10,x!=4,y<=5 P4(a-b-d) 5、组合覆盖

条件组合

1)x>3,z<10 2)x>3,z>=10 3) x<=3,z<10 4)x<=3,z>=10 5)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)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=0,j=1 k=0,j=0 覆盖条件取值 覆盖条件组合 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=14 j=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) T1,T2,T3,T4 T1,F2,T3,T4 F1,F2,F3,F4 k=19,j=sqrt(19)%3 T1,T2,F3,F4