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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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 } a Y c
N b e
Y
x>3 and x=4 or
k=x*y-1 k=0
N
d
由这个流程图可以看出,该程序模块有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 T
T
P1(a-c-e) 2、判定覆盖
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 =5
k=0,j=0
F
F
P4(a-b-d)
也可以让测试用例测试路径P2和P3。

相应的两组输入数据如下: 测试用例输
输出
判定M 的取判定N 的取
覆盖路径
j=j%3
j=x*y+1
入值值
x=5,z=5,y= 4 k=19,j=sqrt(
19)%3
T F P2(a-c-d)
x=4,z=11,y
=6
k=0,j=1 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
x>3,z<10,x=4,y>
5
P1(a-c-e)
x=3,z=11,y =5 k=0,
j=0
F1,F2,F3,
F4
x<=3,z>=10,x!=4
,y<=5
P4(a-b-d)
4、判定/条件覆盖
测试用例输

输出取值条件具体取值条件覆盖路径
x=4,z=5,y= 8 k=31,
j=0
T1,T2,T3,
T4
x>3,z<10,x=4,y>
5
P1(a-c-e)
x=3,z=11,y =5 k=0,
j=0
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 k=23, j=1 T1,T2,T3,T4 1,5 P1(a-c-e) x=4,z=10,y=
5
k=0, j=0 T1,F2,T3,F4 2,6 P2(a-c-d) x=3,z=5,y=6 k=14 j=1 F1,T2,F3,T4 3,7 P3(a-b-e) z=3,z=10,y=
5
k=0, j=2 F1,F2,F3,F4 4,8 P4(a-b-d) 6、路径覆盖
测试用例输入输出覆盖条件取

覆盖条件
组合
覆盖路径
x=4,z=5,y=8 k=31,j=0 T1,T2,T3,
T4
1,5 P1(a-c-e)
x=5,z=5,y=4 k=19,j=sqrt(
19)%3 T1,T2,F3,
F4
1,8 P2(a-c-d)
x=4,z=11,y=k=0,j=1 T1,F2,T3,2,5 P3(a-b-e)
6 T4
x=2,z=11,y= 5 k=0,j=0 F1,F2,F3,
F4
4,8 P4(a-b-d)
二、冒泡法排序:
#include<stdio.h> main()
{
int i,j,temp;
int a[10];
for(i=0;i<10;i++) scanf ("%d,",&a[i]); 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,",a[i] ); printf("\n");
}
2、程序流程图
3白盒测试:
3.1语句覆盖
测试用例 测试输入 覆盖对象 测试结果
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,5

6,7,8,9,11
3.2判定覆盖
测试用例 测试输入 覆盖对象 测试结果
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 ,
输入要排序的一组
j<9 i<10
j=j+
i=i+1 a[i]>a[N Y N
tamp=a[i] a[i]=a[i+1]
结束
Y
N Y
i=0,j=0
1 2
3 4
5
6
7
8
9
9
1
2
3
4 5 6
7
3.3条件覆盖
测试用例测试输入覆盖对象测试结果
I=0,j=0 1,4,3,2,5,7,6,8,9,11 1,2,6,7,8,9,4,5,31,2,3,4,5,
6,7,8,9,11 3.4路径覆盖
测试用例测试输入覆盖对象测试结果
I=0,j=0 1,4,3,2,5,7,6,8,9,11 1,2,6,7,8,9,4,5,31,2,3,4,5,
6,7,8,9,11。

相关文档
最新文档