白盒测试用例练习一、为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、 条件覆盖、判定 / 条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。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}aY cNbeY Ndx>3 and z<10x=4ory>5j=j%3j=x*y+10k=x*y-1j=sqrt(k)k=0j=0由这个流程图可以看出,该程序模块有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、 语句覆盖测试用例输入输出判定 M的取值判定 N的取值覆盖路径x=4,z=5,y=8k=31,j=0TTP1(a-c-e)2、判定覆盖p1 和 p4 可以作为测试用例,其中p1 作为取真的路径,p4 作为取反的路径。测试用例输入输出判定 M的取值判定 N的取值覆盖路径x=4,z=5,y=8k=31,j=0TTP1(a-c-e)x=2,z=11,y=5k=0,j=0FFP4(a-b-d)也可以让测试用例测试路径P2和 P3。相应的两组输入数据如下:测试用例输入输出判定 M的取值判定 N的取值覆盖路径x=5,z=5,y=4k=19,j=sqrt(19)%3TFP2(a-c-d)x=4,z=11,y=6k=0,j=1FTP3(a-b-e)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=8k=31, j=0T1,T2,T3,T4x>3,z<10,x=4,y>5P1(a-c-e)x=3,z=11,y=5k=0, j=0F1,F2,F3,F4x<=3,z>=10,x!=4,y<=5P4(a-b-d)4、判定 / 条件覆盖测试用例输入输出取值条件具体取值条件覆盖路径x=4,z=5,y=8k=31, j=0T1,T2,T3,T4x>3,z<10,x=4,y>5P1(a-c-e)x=3,z=11,y=5k=0, j=0F1,F2,F3,F4x<=3,z>=10,x!=4,y<=5P4(a-b-d)5、组合覆盖条件组合1)x>3,z<10 2)x>3,z>=103) x<=3,z<10 4)x<=3,z>=105)x=4,y>5 6)x=4,y<=5 7)x!=4,y>5 8)x!=4,y<=5测试用例输入输出覆盖条件取值覆盖条件组合覆盖路径x=4,z=5,y=6k=23, j=1T1,T2,T3,T41,5P1(a-c-e)x=4,z=10,y=5k=0, j=0T1,F2,T3,F42,6P2(a-c-d)x=3,z=5,y=6k=14 j=1F1,T2,F3,T43,7P3(a-b-e)z=3,z=10...