一、实验目的
掌握黑盒测试用例设计方法
二、实验要求
(1)对被测程序进行黑盒测试用例设计
(2)运用等价类、边界值、决策表、状态图法等进行测试用例设计。
(3)对手机上任意一款音乐软件进行黑盒测试实践。(作业若雷同,后上传者判定0分)
三、实验内容
1、对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结。
要求写出测试用例表、执行情况和测试小结。
2、对手机上任意一款音乐软件进行黑盒测试。
要求:1)使用思维导图
2)根据场景法、状态图法 设计测试用例。
3)附加题:如有可能尝试用正交实验法、组合测试对测试用例进行简化。
写出测试用例表、执行情况,测试小结。
四、实验步骤
1.对被测程序进行黑盒测试用例设计
1)等价类划分:
输入 | 有效等价类 | 无效等价类 |
年份 | 1912~2050(1) | 小于1912(7) |
月份 | 1~12(2) | 小于1(9) |
日期 | (1、3、5、7、8、10、12)月 范围为:1~31(3) | (1、3、5、7、8、10、12)月:小于1或大于31(11) |
测试用例:
用例号 | 覆盖用例 | 输入 | 期望输出 | 实际输出 | 结果 | 时间 | ||
年 | 月 | 日 | ||||||
1 | 1、2 | 2017 | 4 | 8 | 6 2017年4月9日 2017年4月7日 | 6 2017年4月9日 2017年4月7日 | √ | 2017.5.26 |
2 | 3 | 2017 | 1 | 3 | 2 2017年1月4日 2017年1月2日 | 2 2017年1月4日 2017年1月2日 | √ | 2017.5.26 |
3 | 4 | 2017 | 4 | 20 | 4 2017年4月21日 2017年4月19日 | 4 2017年4月21日 2017年4月19日 | √ | 2017.5.26 |
4 | 5 | 2016 | 2 | 20 | 6 2016年2月21日 2016年2月19日 | 6 2016年2月21日 2016年2月19日 | √ | 2017.5.26 |
5 | 6 | 2017 | 2 | 19 | 7 2017年2月20日 2016年2月18日 | 7 2017年2月20日 2016年2月18日 | √ | 2017.5.26 |
6 | 7 | 1911 | 3 | 4 | 年份超出范围! | 年份超出范围! | √ | 2017.5.26 |
7 | 8 | 2052 | 1 | 4 | 年份超出范围! | 年份超出范围! | √ | 2017.5.26 |
8 | 9 | 2017 | 0 | 4 | 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.26 |
9 | 10 | 2017 | 13 | 5 | 月份超出范围! | 月份超出范围! | √ | 2017.5.26 |
10 | 11 | 2017 | 1 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
11 | 11 | 2017 | 3 | 32 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
12 | 12 | 2017 | 4 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
13 | 12 | 2017 | 4 | 33 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
14 | 13 | 2016 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
15 | 13 | 2016 | 2 | 31 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
16 | 14 | 2017 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
17 | 14 | 2017 | 2 | 31 | 日期超出范围! | 日期超出范围! | √ | 2017.5.26 |
2)边界值法:
输入 | 等价类 | 边界值 |
年份 | 1912~2050(1) | 1911、1912、2050、2051 |
月份 | 1~12(2) | 0、1、12、13 |
日期 | (1、3、5、7、8、10、12)月 范围为:1~31(3) | (1、3、5、7、8、10、12)月:0、1、31、32 (4、5、9、11)月:0、1、30 31 平年2月:0、1、28、29 |
测试用例:
用例号 | 覆盖边界值 | 输入 | 期望输出 | 实际输出 | 结果 | 时间 | ||
年 | 月 | 日 |
|
|
|
| ||
1 | 年份为1911 | 1911 | 4 | 8 | 年份超出范围! | 年份超出范围! | √ | 2017.5.27 |
2 | 年份为1912 | 1912 | 3 | 8 | 5 1912年3月9日 1912年3月7日 | 5 1912年3月9日 1912年3月7日 | √ | 2017.5.27 |
3 | 年份为2050 | 2050 | 5 | 8 | 7 2050年3月9日 2050年3月7日 | 7 2050年3月9日 2050年3月7日 | √ | 2017.5.27 |
4 | 年份为2051 | 2051 | 6 | 8 | 年份超出范围! | 年份超出范围! | √ | 2017.5.27 |
5 | 月份为0 | 2017 | 0 | 8 | 月份超出范围! | 月份超出范围! | √ | 2017.5.27 |
6 | 月份为1 | 2017 | 1 | 8 | 7 2017年1月9日 2017年1月7日 | 7 2017年1月9日 2017年1月7日 | √ | 2017.5.27 |
7 | 月份为13 | 2017 | 13 | 8 | 月份超出范围! | 月份超出范围! | √ | 2017.5.27 |
8 | 月份为12 | 2017 | 12 | 8 | 5 2017年12月9日 2017年12月7日 | 5 2017年12月9日 2017年12月7日
| √ | 2017.5.27 |
9 | (1、3、5、7、8、10、12)月日期为0 | 2017 | 1 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
10 | (1、3、5、7、8、10、12)月日期为1 | 2017 | 1 | 1 | 7 2017年1月2日 2016年12月31日 | 7 2017年1月2日 2016年12月31日 | √ | 2017.5.27 |
11 | (1、3、5、7、8、10、12)月日期为31 | 2017 | 3 | 31 | 5 2017年4月1日 2017年3月30日 | 5 2017年4月1日 2017年3月30日 | √ | 2017.5.27 |
12 | (1、3、5、7、8、10、12)月日期为32 | 2017 | 3 | 32 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
13 | (4、5、9、11)月日期为0 | 2017 | 4 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
14 | (4、5、9、11)月日期为1 | 2017 | 4 | 1 | 6 2017年4月2日 2017年3月31日 | 6 2017年4月2日 2017年3月31日 | √ | 2017.5.27 |
15 | (4、5、9、11)月日期为30 | 2017 | 6 | 30 | 5 2017年7月1日 2017年6月29日 | 5 2017年7月1日 2017年6月29日 | √ | 2017.5.27 |
16 | (4、5、9、11)月日期为31 | 2017 | 6 | 31 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
17 | 闰年2月,日期为0 | 2016 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
18 | 闰年2月,日期为1 | 2016 | 2 | 1 | 1 2016年2月2日 2016年1月31日 | 1 2016年2月2日 2016年1月31日 | √ | 2017.5.27 |
19 | 闰年2月,日期为29 | 2016 | 2 | 29 | 1 2016年3月1日 2016年2月28日 | 1 2016年3月1日 2016年2月28日 | √ | 2017.5.27 |
20 | 平年2月,日期为30 | 2016 | 2 | 30 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
21 | 平年2月,日期为0 | 2017 | 2 | 0 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
21 | 平年2月,日期为1 | 2017 | 2 | 1 | 3 2017年2月2日 2017年1月31日 | 3 2017年2月2日 2017年1月31日 | √ | 2017.5.27 |
22 | 平年2月,日期为29 | 2017 | 2 | 29 | 日期超出范围! | 日期超出范围! | √ | 2017.5.27 |
3)决策表法:
条件桩:
Y1={year:闰年};
Y2={year:平年};
M1={month:30天};
M2={month:31天,除12月以外};
M3={month:12月};
M4={month:2月}
D1={day:1<=日<=27};
D2={day:日=28};
D3={day:日=29};
D4={day:日=30};
D5={day:日=31};
决策表:
| 1~3 | 4 | 5 | 6~9 | 10 | 11~14 | 15 | 16 | 17 | 18 | 19 | 20 | 21~22 | |
条件 | month | M1 | M1 | M1 | M2 | M2 | M3 | M3 | M3 | M4 | M4 | M4 | M4 | M4 |
day | D1~ D3 | D4 | D5 | D1 ~ D4 | D5 | D1 ~ D4 | D5 | D1 | D2 | D2 | D3 | D3 | D4 D5 | |
year | - | - | - | - | - | - | - | - | Y1 | Y2 | Y1 | Y2 | - | |
动作 | 无效 |
|
| √ |
|
|
|
|
|
|
|
| √ | √ |
day加1 | √ |
|
| √ |
| √ |
| √ | √ |
|
|
|
| |
day复位 |
| √ |
|
| √ |
| √ |
|
| √ | √ |
|
| |
month加1 |
| √ |
|
| √ |
|
|
|
| √ | √ |
|
| |
month加复位 |
|
|
|
|
|
| √ |
|
|
|
|
|
| |
year加1 |
|
|
|
|
|
| √ |
|
|
|
|
|
|
测试用例:
用例号 | 输入 |
| 期望输出 | 实际输出 | 结果 | 时间 | ||
年 | 月 | 日 |
| |||||
1 | 2017 | 4 | 3 |
| 3 2017年4月4日 2017年4月2日 | 3 2017年4月4日 2017年4月2日 | √ | 2017.5.27 |
2 | 2017 | 4 | 30 |
| 3 2017年4月4日 2017年4月2日 | 3 2017年4月4日 2017年4月2日 | √ | 2017.5.27 |
3 | 2017 | 4 | 31 |
| 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.27 |
4 | 2017 | 3 | 3 |
| 5 2017年3月4日 2017年3月2日 | 5 2017年3月4日 2017年3月2日 | √ | 2017.5.27 |
5 | 2017 | 3 | 31 |
| 5 2017年4月1日 2017年3月30日 | 5 2017年4月1日 2017年3月30日 | √ | 2017.5.27 |
6 | 2017 | 3 | 31 |
| 5 2017年4月1日 2017年3月30日 | 5 2017年4月1日 2017年3月30日 | √ | 2017.5.27 |
7 | 2017 | 12 | 31 |
| 7 2018年1月1日 2017年12月30日 | 7 2018年1月1日 2017年12月30日 | √ | 2017.5.27 |
8 | 2017 | 2 | 10 |
| 5 2017年2月11日 2017年2月9日 | 5 2017年2月11日 2017年2月9日 | √ | 2017.5.27 |
9 | 2016 | 2 | 28 |
| 7 2016年2月29日 2016年2月27日 | 7 2016年2月29日 2016年2月27日 | √ | 2017.5.27 |
10 | 2017 | 2 | 28 |
| 2 2017年3月1日 2016年2月27日 | 2 2017年3月1日 2017年2月27日 | √ | 2017.5.27 |
11 | 2016 | 2 | 29 |
| 1 2016年3月1日 2016年2月28日 | 1 2016年3月1日 2016年2月28日 | √ | 2017.5.27 |
12 | 2017 | 2 | 29 |
| 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.27 |
13 | 2017 | 2 | 31 |
| 输入有误,请重新输入! | 输入有误,请重新输入! | √ | 2017.5.27 |
2、对手机上任意一款音乐软件进行黑盒测试。
1)QQ音乐播放界面思维导图
2)根据场景法、状态图法 设计测试用例。
场景法测试QQ音乐的播放音乐功能:
基本流 | 选择播放/暂停 |
备选流1 | 选择上/下一曲 |
备选流2.1 | 选择播放方式为随机播放 |
备选流2.2 | 选择播放方式为单曲循环 |
备选流2.3 | 选择播放方式为顺序播放 |
测试用例:
场景 | 基本流 | 备选流 | 预期结果 | 实际结果 | 通过 | 测试时间 |
场景1-选择播放/暂停 | 基本流 |
| 播放/暂停当前歌曲 | 播放/暂停当前歌曲 | √ | 2017.5.28 |
场景2-选择上/下一曲 | 基本流 | 备选流1 | 切换播放列表中上/下一曲 | 切换播放列表中上/下一曲 | √ | 2017.5.28 |
场景3-随机播放时选择上/下一曲 | 基本流 | 备选流1 备选流2.1 | 随机切换播放列表中的一首歌曲 | 随机切换播放列表中的一首歌曲 | √ | 2017.5.28 |
场景4-单曲循环时选择上/下一曲 | 基本流 | 备选流1 备选流2.2 | 切换到正在播放歌曲的开头 | 切换到正在播放歌曲的开头 | √ | 2017.5.28 |
场景5-顺序播放时选择上/下一曲 | 基本流 | 备选流1 备选流2.3 | 切换播放当前歌曲的上/下一首歌曲 | 切换播放当前歌曲的上/下一首歌曲 | √ | 2017.5.28 |
状态图法:
Ip1:播放/暂停歌曲
Ip2:选择上/下一曲
Ip3:选择随机播放
Ip4:选择单曲循环
Ip5:选择顺序播放
状态图:
用例 | 1 | 2 | 3 | 4 |
打开播放页面 | 1 | 1 | 1 | 1 |
播放/暂停歌曲 | 2 | 2 | 2 | 2 |
切换到列表中上/下一曲 |
| 3 |
|
|
切换到列表中的随机一首歌曲 |
|
| 3 |
|
切换到正在播放歌曲的开头 |
|
|
| 3 |
五.测试小结
对被测程序进行和音乐软件的黑盒测试中,测试用例均通过,本次对音乐软件中的主要功能——播放音乐功能进行测试,通过场景法与状态图法进行了测试,画出了播放音乐页面的思维导图,对场景法和状态图法有很大的帮助,使得测试思路更加清晰,并且不容易漏测,虽然本次没有将音乐软件的功能都测完,但利用思维导图,也能够比较完善地一步步测试下来。