白盒测试用例练习.docx
《白盒测试用例练习.docx》由会员分享,可在线阅读,更多相关《白盒测试用例练习.docx(22页珍藏版)》请在冰豆网上搜索。
白盒测试用例练习
白盒测试用例练习
白盒测试用例练习
1.为以下所示的程序段设计一组测试用例,要求分别满足语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖,并画出相应的程序流程图。
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
}
a
Yc
N
b
e
Y
N
d
由这个流程图可以看出,该程序模块有4条不同的路径:
P1:
(a-c-e)P2:
(a-c-d)
P3:
(a-b-e)P4:
(a-b-d)
将里面的判定条件和过程记录如下:
判定条件M={x>3andz<10}
判定条件N={x=4ory>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的取值
覆盖路径
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<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
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=14j=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=6
k=0,j=1
T1,F2,T3,T4
2,5
P3(a-b-e)
x=2,z=11,y=5
k=0,j=0
F1,F2,F3,F4
4,8
P4(a-b-d)
题目二:
三角形问题
在三角形计算中,要求输入三角型的三个边长:
A、B和C。
当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。
若是等腰三角形打印“等腰三角形”,若是等边三角形,则提示“等边三角形”。
画出程序流程图、控制流程图、计算圈复杂度V(g),找出基本测试路径。
一、核心程序代码
/**判断三角形的类*/
publicclassTriangleTestMethod{
/**判断三角形的种类。
参数a,b,c分别为三角形的三边,
*返回的参数值为0,表示非三角形;
*为1,表示普通三角形;
*为2,表示等腰三角形;
*为3,表示等边三角形。
*/
publicstaticintcomfirm(inta,intb,intc){
if((a+b>c)&&(b+c>a)&&(a+c>b)){//判断为三角形
if((a==b)&&(b==c))//判断为等边三角形
return3;
if((a==b)||(b==c)||(a==c))//判断为等腰三角形
return2;
else//判断为普通三角形
return1;
}
else{//为非三角形
return0;
}
}
}
二、程序流程图
三、测试用例
1.语句覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case1
a=1,b=2,c=3
0
1,⑤
0
Case2
a=3,b=4,c=5
1
1,②,④,⑥
2
1
Case3
a=3,b=3,c=4
2
1,②,④,⑦
2
2
Case4
a=3,b=4,c=5
3
1,②,③
2
3
2.判定覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case11
a=1,b=2,c=3
0
2,⑤
0
Case12
a=3,b=4,c=5
1
3,②,④,⑥
4
1
Case13
a=3,b=3,c=4
2
3,②,④,⑦
4
2
Case14
a=3,b=4,c=5
3
3,②,③
4
3
3.条件覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case5
a=1,b=6,c=7
0
F1,T2,T3
0
Case6
a=7,b=1,c=6
0
T1,F2,T3
0
Case7
a=1,b=7,c=6
0
T1,T2,F3
0
Case8
a=3,b=3,c=4
2
T1,T2,T3,T4,F5,T6,F7,F8
2
Case9
a=3,b=4,c=3
2
T1,T2,T3,F4,F5,F6,F7,T8
2
Case10
a=4,b=3,c=3
2
T1,T2,T3,F4,T5,F6,T7,F8
2
4.条件-判定覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case15
a=1,b=6,c=7
0
F1,T2,T3
0
Case16
a=7,b=1,c=6
0
T1,F2,T3
0
Case17
a=1,b=7,c=6
0
T1,T2,F3
0
Case18
a=3,b=3,c=4
2
T1,T2,T3,T4,F5,T6,F7,F8
2
Case19
a=3,b=4,c=3
2
T1,T2,T3,F4,F5,F6,F7,T8
2
Case20
a=4,b=3,c=3
2
T1,T2,T3,F4,T5,F6,T7,F8
2
Case21
a=3,b=3,c=3
3
F1,T2,T3
(3,②,③)
3
Case22
a=3,b=4,c=5
1
T1,F2,T3
(①,②,④,⑥)
1
5.条件组合覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case23
a=1,b=6,c=7
0
F1,T2,T3
0
Case24
a=7,b=1,c=6
0
T1,F2,T3
0
Case25
a=1,b=7,c=6
0
T1,T2,F3
0
Case26
a=3,b=3,c=4
2
T1,T2,T3,T4,F5,T6,F7,F8
2
Case27
a=3,b=4,c=3
2
T1,T2,T3,F4,F5,F6,F7,T8
2
Case28
a=4,b=3,c=3
2
T1,T2,T3,F4,T5,F6,T7,F8
2
Case29
a=3,b=4,c=5
1
T1,T2,T3,
F4,F5,
F6,F7,F8
1
Case30
a=3,b=4,c=3
2
T1,T2,T3,
F4,F5,
F6,F7,T8
2
备注
其他条件组合,无法到达结束
四、程序控制流图
基本路径覆盖测试用例
输入
期望输出
覆盖对象
测试结果
Case31
a=1,b=6,c=7
0
A->D
0
Case32
a=7,b=6,c=1
0
A->B->D
0
Case33
a=1,b=7,c=6
0
A->B->C->D
0
Case34
a=3,b=3,c=3
3
A->B->C->E->G->H
3
Case35
a=3,b=3,c=4
2
A->B->C->E->G->I
2
Case36
a=4,b=3,c=3
2
A->B->C->E->F->H
2
Case37
a=3,b=4,c=3
2
A->B->C->E->F->J->H
2