白盒测试实验二
实验二白盒测试
一、实验目的
1、 掌握白盒测试的基础知识;
2、 掌握白盒测试的检查内容及测试目的;
3、 掌握黑盒测试的几种基本测试方法:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖。
二、实验要求
1、 复习有关内容,理解白盒测试;
2、 掌握语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖、路径覆盖,并能设计出测试用例;
3、 对具体软件,能分别使用相应的白盒测试方法设计测试用例,并实施测试、分析测试结果。
三、实验内容
l 对实验一1、3题使用逻辑覆盖法进行测试用例设计。
l 对实验一2、4题使用基本路径法进行测试用例设计。
l 5、
程序伪代码
注意: 1)参数表中EMPTAB 为职员表,DEPTTAB为部门表;
2 ) ESIZE为职员表长度,DSIZE为部门表长度;
3)ERRCODE为出错码
MAXSALERS = 0;
ERRCODE = 0;
if(ESIZE <= 0 || DSIZE <= 0)
ERRCODE = 1;
else
{
for(i = 1; i < DSIZE ; i++) //选出各部门中最大的销售额值
if(SALES[i] > MAXSALES)
MAXSALES = SALES[i];
for(j = 1; j < DSIZE; j++) //循环找出销售额最大的部门
if(SALES[j] == MAXSALES)
{
FOUND = false;
for(int k = 1; k < ESIZE ; k++) //检查销售额最大部门的所有人员
if(EMPTAB.DEPT(k) == DEPTTAB.DEPT(j))
{
FOUND = true;
if(SALARY(k) >= 15000.00 or JOB(k) = 'M') //满足条件的人员加工资
SALARY(k) = SALARY(k) + 100.00;
else
SALARY(k) = SALARY(k) + 200.00;
}
if(FOUND == false)
ERRCODE == 2;
}
}
采用判定覆盖、条件覆盖对该程序进行用例设计
四、实验结果:
(1) 基本路径法绘制出控制流图,逻辑覆盖法绘制出流程图
实验一,日期转化问题:
流程图
控制流图:
逻辑覆盖法:
语句覆盖 |
||||
输入 |
测试路径 |
测试结果 |
||
Year |
month |
day |
||
2090 |
11 |
30 |
1-2-3-4-6 |
Error!!输入无效 |
2022 |
3 |
28 |
1-2-3-4-7-8-10-12-13-15-17-18-19-20 |
^-^是星期一哦! |
判定覆盖/条件覆盖/判定条件覆盖/条件组合覆盖 |
||||
输入 |
测试路径 |
测试结果 |
||
Year |
month |
day |
||
2090 |
11 |
30 |
1-2-3-4-6-1 |
Error!!输入无效 |
2022 |
3 |
28 |
1-2-3-4-7-8-10-12-13-15-17-18-19-20 |
^-^是星期一哦! |
2001 |
1.5 |
12 |
1-2-3-4-7-8-9-1 |
Error!!输入无效 |
2001 |
0 |
28 |
1-2-3-4-7-8-10-11-1 |
Error!!输入无效 |
2005 |
4 |
29.1 |
1-2-3-4-7-8-10-12-13-14-1 |
Error!!输入无效 |
2.05 |
11 |
30 |
1-2-3-5-1 |
Error!!输入无效 |
2005 |
4 |
32 |
1-2-3-4-7-8-10-12-13-15-16-1 |
Error!!输入无效 |
2000 |
2 |
30 |
1-2-3-4-7-8-10-12-13-15-16-17-21-1 |
Error!!输入无效 |
2001 |
2 |
29 |
1-2-3-4-7-8-10-12-13-15-16-17-18-21-1 |
Error!!输入无效 |
2002 |
4 |
31 |
1-2-3-4-7-8-10-12-13-15-16-17-18-19-21-1 |
Error!!输入无效 |
路径覆盖 |
||||
输入 |
测试路径 |
测试结果 |
||
Year |
month |
day |
||
1.5 |
12 |
31 |
1-2-3-5-1 |
Error!!输入无效 |
2090 |
11 |
30 |
1-2-3-4-6-1 |
Error!!输入无效 |
2001 |
1.5 |
12 |
1-2-3-4-7-8-9-1 |
Error!!输入无效 |
2001 |
0 |
28 |
1-2-3-4-7-8-10-11-1 |
Error!!输入无效 |
2005 |
4 |
29.1 |
1-2-3-4-7-8-10-12-13-14-1 |
Error!!输入无效 |
2005 |
4 |
32 |
1-2-3-4-7-8-10-12-13-15-16-1 |
Error!!输入无效 |
2000 |
2 |
30 |
1-2-3-4-7-8-10-12-13-15-17-21-1 |
Error!!输入无效 |
2001 |
2 |
29 |
1-2-3-4-7-8-10-12-13-15-16-17-18-21-1 |
Error!!输入无效 |
2002 |
4 |
31 |
1-2-3-4-7-8-10-12-13-15-16-17-18-19-21-1 |
Error!!输入无效 |
2022 |
3 |
28 |
1-2-3-4-7-8-10-12-13-15-17-18-19-20 |
^-^是星期一哦! |
实验一 第二题找零问题基本路径法:
控制流图;
计算复杂度:
V(G)=边-节点+2=4
设计测试用列表:
基本路径法() |
|||
输入 |
测试路径 |
测试结果 |
|
商品价格 |
支付金额 |
||
-20 |
50 |
1-2-3-4-1 |
Error!!输入无效 |
20 |
30.5 |
1-2-3-5-6-7-1 |
Error!!输入无效 |
20 |
10 |
1-2-3-5-6-8-9-1 |
Error!!输入无效 |
30 |
64 |
1-2-3-5-6-8-10 |
50元:0张 10元:3张 5元:0张 1元:4张 |
实验一 第三题:售货机问题
程序流程图:
控制流程图:
测试用例:
路径覆盖 |
|||
输入 |
测试路径 |
测试结果 |
|
Button1 |
Button2 |
||
null |
null |
1-2-5-1 |
请投币 |
1元 |
null |
1-2-3-4-1 |
请选择饮料 |
5角 |
橙汁 |
1-2-3-6-10-14 |
橙汁 |
5角 |
啤酒 |
1-2-3-7-11-14 |
啤酒 |
1元 |
橙汁 |
1-2-3-8-12-14 |
橙汁;找零5角 |
1元 |
啤酒 |
1-2-3-9-13-14 |
啤酒:找零5角 |
实验一:第四题:基本路径法
控制流程图:
基本路径测试法:
基本路径测试 |
||||
输入 |
测试路径
|
输出结果 |
||
航线 |
仓位 |
飞行时间 |
||
欧美航线 |
商务/经济 |
大于2h/小于2h |
1-2-4-6-8-11-17 |
播放电影;提供食物 |
非欧美国外航线 |
商务 |
大于2h/小于2h |
1-2-4-6-9-12-17 |
播放电影;提供食物 |
非欧美国外航线 |
经济 |
大于2h/小于2h |
1-2-4-6-9-13-17 |
提供食物 |
国内航线 |
商务 |
大于2h/小于2h |
1-2-4-6-10-14-17 |
提供食物 |
国内航线 |
经济 |
大于2h |
1-2-4-6-10-15-17 |
提供食物 |
国内航线 |
经济 |
小于2h |
1-2-4-6-10-16-17 |
暂不提供服务 |
Null |
Null |
Null |
1-2-3-1 |
请输入航线,仓位,飞行时间 |
国内航线 |
Null |
Null |
1-2-4-5-1 |
请输入仓位,飞行时间 |
欧美航线 |
经济 |
Null |
1-2-4-6-7-1 |
请输入飞行时间 |
实验二第五题:
程序流程图:
加工资控制流程图:
条件覆盖/判定覆盖 |
|||||||
输入 |
测试路径 |
输出结果 |
|||||
条件一 |
条件二 |
条件三 |
条件四 |
条件五 |
条件六 |
||
T |
T |
T |
T |
T |
T |
1-2-3-4-5-6-7-8-9-10-11-12-13-14 |
ERRCOR=0 |
F |
- |
- |
- |
- |
- |
1-2-3 |
ERRCOR=1 |
T |
T |
T |
T |
T |
F |
1-2-3-4-5-6-7-8-9-10-11-12-15-14 |
ERRCOR=1 |
T |
F |
T |
T |
T |
T |
1-2-3-4-3-4-5-6-7-8-9-10-11-12-13-14 |
ERRCOR=1 |
T |
T |
F |
T |
T |
T |
1-2-3-4-5-6-7-6-7-8-9-10-11-12-13-14 |
ERRCOR=1 |
T |
T |
T |
F |
T |
T |
1-2-3-4-5-6-7-8-9-10-9-10-11-12-13-14 |
ERRCOR=1 |
T |
T |
T |
T |
F |
T |
1-2-3-4-5-6-7-8-9-16-17 |
ERRCOR=2 |
条件覆盖:
五、实验体会:
在第五个问题中,因为程序代码并不是自己写的,所以在程序流程图的设计中有些磕磕绊绊,其次是关于循环内的语句,出现if判断时下一个流程该怎样连接,除此之外对于语句if条件的判断是归属那个模块的因为程序并不是在编译器上写的,而是在文档内部所以程序代码的缩紧不是很容易看到。循环内部的if判断不知道是否能当作判定覆盖的条件。
解决的方法:对于程序我复制到编译器中,使得程序的缩进更加规范,代码结合语言描述看,理解代码,判定覆盖中算入程序循环的if判断,
本次试验更加理解了各种测试方法的设计,同时对于上课讲到的找零问题也回顾了,程序流程图的画法也更加熟练,收获很多。
-