软件测试实验2
实验项目名称:实验二
一、 实验目的
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) 基本路径法绘制出控制流图,逻辑覆盖法绘制出流程图
- 输入日期显示星期几
2.饮料自动售货机
3.找零钱最佳组合
1.开始
2.输入货品价格R和付款P]
3.R≤100且P≤100?}
4.报错: 输入无效
5.P≥R?
6.报错: 付款不足
7.计算找零: 优先大面额
8.输出找零组合
9.结束
4.航空服务查询问题:根据航线,仓位,飞行时间查询航空服务
1.开始
2.输入航线/仓位/飞行时间]
3.航线类型?
4.食物=有, 电影=有
5.仓位类型
6.|商务| 食物=有, 电影=有
7.|经济| 食物=有, 电影=无
8.国内 仓位类型
9.商务 食物=有, 电影=无
10.经 飞行时间>2h?
11.是 食物=有, 电影=无
12.否 食物=无, 电影=无
13.结束
(2) 设计测试用列表
- 输入日期显示星期几
逻辑覆盖测试用例
覆盖方法 |
测试用例 |
覆盖目标 |
预测结果 |
语句覆盖 |
2023-10-15 |
执行所有计算逻辑 |
输出星期日 |
判定覆盖 |
21000-10-15 |
年份无效(判定为假) |
报错 |
|
2023-01-32 |
日无效(判定为假) |
报错 |
条件覆盖 |
2023-00-15 |
M<1(条件为真) |
报错 |
- 饮料自动售货机
逻辑覆盖测试用例
覆盖方法 |
测试用例 |
覆盖目标 |
预测结果 |
判定覆盖 |
投入5角,按橙汁 |
判定分支(5角路径) |
出橙汁 |
|
投入1元,按啤酒 |
判定分支(1元路径) |
出啤酒并退5角 |
条件组合 |
投5角,不按按钮 |
覆盖未按按钮场景 |
无法输出 |
- 找零钱最佳组合
基本路径测试用例
路径编号 |
测试用例(R,P) |
覆盖路劲 |
预测结果 |
1 |
45,50 |
1,2,3,4,6,8,9 |
5:1张 |
2 |
101,100 |
1,2,3,5,9 |
报错 |
3 |
50,49 |
1,2,3,4,7,9 |
报错 |
- 航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。
路径编号 |
测试用例 |
覆盖路径 |
预测结果 |
1 |
欧美,经济 ,1 |
1,2,3,4,13 |
食物:有,电影:有 |
2 |
非欧美,商务,1 |
1,2,3,5,7,13 |
食物:有,电影:有 |
3 |
非欧美,经济,1 |
1,2,3,5,8,13 |
食物:有,电影:无 |
4 |
国内,商务,1 |
1,2,3,6,9,13 |
食物:有,电影:无 |
5 |
国内,经济,3 |
1,2,3,6,10,11,13 |
食物:有,电影:无 |
6 |
国内,经济,3 |
1,2,3,6,10,12,13 |
食物:无,电影:无 |
5.
判定覆盖
编号 |
部门名称 |
职员信息 |
预测结果 |
覆盖的判定 |
1 |
Sailes |
Alice,Employee,14000 |
增加200元 |
部门存在,职员存在 |
2 |
Sailes |
Charlie,Employee,15000 |
不增加 |
职员工资达到15000 |
3 |
Sailes |
无 |
错误1 |
部门存在,无职员 |
4 |
Empty |
无 |
错误2 |
无部门数据 |
5 |
HR |
Bob,Manager,14900 |
不增加 |
部门不存在,职员不存在 |
条件覆盖
编号 |
部门名称 |
职员信息 |
预测结果 |
覆盖的判定 |
1 |
Sailes |
Alice,Employee,14000 |
增加200元 |
部门为最大销售,工资<1500,非经理 |
2 |
Sailes |
Bob,Manager,14900 |
增加200元 |
部门为最大销售,工资<1500,经理 |
3 |
Sailes |
Charlie,Employee,15000 |
不增加 |
部门为最大销售,工资=1500 |
4 |
Sailes |
David,Employee,16000 |
不增加 |
部门为最大销售,工资>1500 |
5 |
HR |
Evo,Employee,13000 |
不增加 |
部门非最大销售 |
四、 个人体会
通过本次实验,本人深入理解了白盒测试的理论知识与实践方法。通过实际设计测试用例,我体会到:白盒测试不仅关注程序的输入和输出,还要关注程序内部的逻辑结构和状态变化。
测试用例设计需要全面考虑边界条件和各种可能的输入情况,确保覆盖所有判断逻辑。
逻辑覆盖、基本路径法是确保程序质量的重要手段,提高了软件的鲁棒性和可靠性。
遇到了哪些问题 :路径覆盖时遗漏了某些复杂分支。问题如何解决的:通过绘制控制流图明确所有路径。收获:深入理解了白盒测试的逻辑覆盖方法