软件测试实验1
实验一 黑盒测试
一、实验目的
1、 掌握黑盒测试的基础知识;
2、 掌握黑盒测试的检查内容及测试目的;
3、 掌握黑盒测试的几种基本测试方法:等价类划分方法、边界值分析方法、因果图法和决策表法;
二、实验要求
1、 复习有关内容,理解黑盒测试;
2、 掌握等价类划分、边界值分析方法、因果图法和决策表法,并能设计出测试用例;
3、 对具体软件,能分别使用相应的黑盒测试方法设计测试用例,并实施测试、分析测试结果。
三、实验内容
1、设计函数实现输入日期显示星期几,并用等价类及边界值法测试
实验步骤:
① 设计程序
② 划分等价类,得到等价类表。等价类表格式如下:
输入条件 |
有效等价类 |
唯一标识 |
无效等价类 |
唯一标识 |
日期格式 |
YYYY-MM-DD |
E1 |
其他格式(如MM/DD/YY) |
I1 |
日期合法性 |
合法日期(如2025-03-20) |
E2 |
不存在的日期(如2025-04-31) |
I2 |
边界情况 |
闰年日期(如2024-02-29) |
E3 |
负数年份(如-2025-03-20) |
I3 |
③ 运用等价类划分法设计测试用例,得到测试用例表。测试用例表格式如下:
序号 |
输入数据 |
覆盖等价类 |
输出 |
1 |
2025-03-20 |
E2 |
星期四 |
2 |
2024-02-29 |
E3 |
星期五 |
3 |
2025-02-30 |
I2 |
无效日期 |
4 |
2025-13-01 |
I1 |
无效日期 |
5 |
2025-03-30 |
E1 |
星期四 |
④ 运用边界值法设计测试用例。
序号 |
输入数据 |
输出 |
1 |
2024-02-29 |
星期四 |
2 |
2024-02-28 |
星期三 |
3 |
2025-01-01 |
星期四 |
4 |
-2025-03-20 |
无效日期 |
2、找零钱最佳组合
假设商店货品价格(R) 都不大于100元(且为整数),若顾客付款(P)在100元内,现有一个程序能在每位顾客付款后给出找零钱的最佳组合(找给顾客货币张数最少)。 假定此商店的货币面值只包括:50元(N50)、10元(N10)、 5元(N5)、1元(N1) 四种。
请结合等价类划分法和边界值分析法为上述程序设计 出相应的测试用例。
实验步骤:
同上题
① 设计程序
② 划分等价类,得到等价类表。等价类表格式如下:
输入条件 |
有效等价类 |
唯一标识 |
无效等价类 |
唯一标识 |
商品价格 |
0 < R ≤ 100 |
E1 |
R ≤ 0 |
I1 |
付款金额 |
P ≥ R |
E2 |
P < R |
I2 |
③ 运用等价类划分法设计测试用例,得到测试用例表。测试用例表格式如下:
序号 |
输入数据 |
覆盖等价类 |
输出 |
1 |
(50,100) |
E1,E2 |
{50:1} |
2 |
(30,50) |
E1,E2 |
{10:2} |
3 |
{100,100} |
E1,E2 |
{} |
4 |
(50,30) |
I1,I2 |
付款金额不足 |
④ 运用边界值法设计测试用例。
序号 |
输入数据 |
输出 |
1 |
(1,1) |
{} |
2 |
(1,2) |
{1:1} |
3 |
(99,100) |
{1:1} |
4 |
(100,100) |
{} |
3、有一个饮料自动售货机(处理单价为5角钱)的控制处理软件,它的软件规格说明如下:
若投入5角钱的硬币,按下“橙汁”或“啤酒”的按钮,则相应的饮料就送出来。若投入1元钱的硬币,同样也是按“橙汁”或“啤酒”的按钮,则自动售货机在送出相应饮料的同时退回5角钱的硬币。
模拟程序如下:
用因果图法测试该程序,并撰写实验报告。
实验步骤:
①编写程序
②分析原因与结果
原因:
C1:投入5角硬币
C2:投入1元硬币
C3:按下"橙汁"按钮
C4:按下"啤酒"按钮
结果:
E1:送出橙汁饮料
E2:送出啤酒饮料
E3:退回5角硬币
E4:提示"无效选择"
E5:提示"无效金额"
③画出因果图
④转化为决策表
⑤根据决策表设计测试用例,得到测试用例表
4、航空服务查询问题:根据航线,仓位,飞行时间查询航空服务。
假设一个中国的航空公司规定:
① 中国去欧美的航线所有座位都有食物供应,每个座位都可以播放电影。
② 中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。
③ 中国国内的航班的商务仓有食物供应,但是不可以播放电影
④ 中国国内航班的经济仓只有当飞行时间大于2小时时才有食物供应,但是不可以播放电影。
请用程序实现上述功能,并用决策表法设计测试用例,再执行测试,撰写实验报告。
实验步骤:
① 编写程序
② 构造决策表
条件 |
航线 |
舱位 |
时间≤2 |
时间>2 |
食物供应 |
电影播放 |
1 |
欧美 |
任何 |
是 |
是 |
是 |
是 |
2 |
非欧美 |
商务舱 |
是 |
是 |
是 |
是 |
3 |
非欧美 |
经济舱 |
是 |
是 |
是 |
否 |
4 |
国内 |
商务舱 |
是 |
是 |
是 |
是 |
5 |
国内 |
经济舱 |
是 |
否 |
否 |
否 |
6 |
国内 |
经济舱 |
否 |
是 |
是 |
否 |
③ 根据决策表设计测试用例,得到测试用例表
测试用例 |
航线 |
舱位 |
飞行时间 |
预测结果 |
TC1 |
欧美 |
经济舱 |
1 |
食物供应:是 电影播放:是 |
TC2 |
欧美 |
商务舱 |
3 |
食物供应:是 电影播放:是 |
TC3 |
非欧美 |
商务舱 |
1 |
食物供应:是 电影播放:是 |
TC4 |
非欧美 |
经济舱 |
2 |
食物供应:是 电影播放:否 |
TC5 |
非欧美 |
经济舱 |
3 |
食物供应:是 电影播放:否 |
TC6 |
国内 |
商务舱 |
1 |
食物供应:是 电影播放:是 |
TC7 |
国内 |
经济舱 |
1 |
食物供应:是 电影播放:否 |
TC8 |
国内 |
经济舱 |
3 |
食物供应:是 电影播放:否 |
四、实验思考
① 在实际的测试中,如何设计测试用例才能达到用最少的测试用例检测出最多的缺陷;
1.优先测试边界条件和异常情况,这些地方最容易出现缺陷。
2.使用组合测试技术减少用例数量。
3.分析代码覆盖率,确保关键路径和分支都被覆盖。
4.根据历史缺陷数据,针对易错模块设计更多测试。
② 在进行用例设计时,如何考虑软件测试用例的充分性和减少软件测试用例的冗余性;
1.使用等价类划分减少重复测试相似输入。
2.采用正交数组或组合测试技术避免全排列组合。
3.建立测试用例优先级,先执行高优先级用例。
4.使用代码覆盖率工具识别未被覆盖的代码区域。
5.实施基于风险的测试,重点关注高风险功能区域
6.定期评审测试用例,删除重复或无效用例。