首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

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

2021-06-10 来源:画鸵萌宠网
、

白盒测试用例练习

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

N

b x>3 and x=4 or k=x*y-1

@

e Y

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

由这个流程图可以看出,该程序模块有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=8 k=31,j=0 2、判定覆盖

-

T T P1(a-c-e)

p1和p4可以作为测试用例,其中p1作为取真的路径,p4作为取反的路径。测试用例输 输出 入 x=4,z=5,y=8 k=31,j=0 判定M的取判定N的取值 :覆盖路径 值 T T P1(a-c-e) x=2,z=11,y=5 ]

k=0,j=0 F F P4(a-b-d) 也可以让测试用例测试路径P2和P3。相应的两组输入数据如下:测试用例输入 x=5,z=5,y=k=19,j=sqrt(4 19)%3 输出 判定M的取判定N的取值 .

覆盖路径 值 F P2(a-c-d) Tx=4,z=11,yk=0,j=1 =6 (

F T P3(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=8 k=31, j=0 T1,T2,T3,T4 — P1(a-c-e) x>3,z<10,x=4,y>5 x=3,z=11,y=5 k=0, j=0 F1,F2,F3,x<=3,z>=10,x!=4P4(a-b-d) F4 ,y<=5 4、判定/条件覆盖

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

k=0, j=0 F1,F2,F3,x<=3,z>=10,x!=4P4(a-b-d) F4 ,y<=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 k=23, j=1 x=4,z=10,y=5 x=3,z=5,y=6 k=14 j=1 F1,T2,F3,T4 3,7 ¥* ) 覆盖路径 覆盖条件组T1,T2,T3,T4 T1,F2,T3,F4 1,5 2,6 P1(a-c-e) P2(a-c-d) k=0, j=0 P3(a-b-e)z=3,z=10,y=k=0, j=2 5 6、路径覆盖

测试用例输入 x=4,z=5,y=8 k=31,j=0 】F1,F2,F3,F4 4,8 P4(a-b-d) 覆盖条件取值 覆盖条件组合 1,5 \\覆盖路径 输出T1,T2,T3, T4 P1(a-c-e)x=5,z=5,y=4 k=19,j=sqrt(19)%3 x=4,z=11,y=k=0,j=1 6 T1,T2,F3, F4 \"1,8 P2(a-c-d) 2,5 P3(a-b-e) T1,F2,T3,T4x=2,z=11,y=k=0,j=0 5 F1,F2,F3, F4 4,8 P4(a-b-d) #

二、冒泡法排序:

#include<> main() {

int i,j,temp; int a[10]; for(i=0;i<10;i++)

scanf (\"%d,\

(

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(\"%5d,\

printf(\"\\n\"); }

定义变量i,2、程序流程图

i=0,j=0 \\ … 5 3 N j<9 1 9 @ Y 5 4 i=i+1 2 i<10j=j+ N Y ·8 7 a[i]>a[4 N !

9 tamp=a[i] 6 a[i]=a[i+1] 3

~

3白盒测试:

语句覆盖

测试用例 I=0,j=0 测试输入 覆盖对象 测试结果 ,1,4,3,2,5,7,6,8,9,11 1,2,4,5,6,3,7 1,2,3,4,56,7,8,9,11 判定覆盖

测试用例 I=0,j=0 测试输入 覆盖对象 测试结果 1,4,3,2,5,7,6,8,9,11 1,2,6,7,8,9,4,5,3 1,2,3,4,5,6,7,8,9,11 条件覆盖

测试用例 I=0,j=0 测试输入 覆盖对象 测试结果 1,4,3,2,5,7,6,8,9,11 1,2,6,7,8,9,4,5,3 1,2,3,4,5,6,7,8,9,11 路径覆盖

测试用例 I=0,j=0 测试输入 覆盖对象 测试结果 1,4,3,2,5,7,6,8,9,11 1,2,6,7,8,9,4,5,3 1,2,3,4,5,6,7,8,9,11

因篇幅问题不能全部显示,请点此查看更多更全内容