一、实验目的
掌握黑盒测试用例设计方法
二、实验要求
(1)对被测程序进行黑盒测试用例设计
(2)运用等价类、边界值、决策表、状态图法等进行测试用例设计。
(3)对手机上任意一款音乐软件进行黑盒测试实践。(作业若雷同,后上传者判定0分)
三、实验内容
1、对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结。
要求写出测试用例表、执行情况和测试小结。
2、对手机上任意一款音乐软件进行黑盒测试。
要求:1)使用思维导图
2)根据场景法、状态图法 设计测试用例。
3)附加题:如有可能尝试用正交实验法、组合测试对测试用例进行简化。
写出测试用例表、执行情况,测试小结。
四、实验步骤
1.对被测程序进行黑盒测试用例设计
1)等价类划分:
输入 |
有效等价类 |
无效等价类 |
年份 |
1912~2050(1) |
小于1912(7) 大于2050(8) |
月份 |
1~12(2) |
小于1(9) 大于12(10) |
日期 |
(1、3、5、7、8、10、12)月 范围为:1~31(3) (4、5、9、11)月 范围为:1~30(4) 闰年2月:1~29(5) 平年2月:1~28(6) |
(1、3、5、7、8、10、12)月:小于1或大于31(11) (4、5、9、11)月:小于1或大于30(12) 闰年2月:小于1或大于29(13) 平年2月:小于1或大于28(14) |
测试用例:
用例号 |
覆盖用例 |
输入 |
期望输出 |
实际输出 |
结果 |
时间 |
||
年 |
月 |
日 |
||||||
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) (4、5、9、11)月 范围为:1~30(4) 闰年2月:1~29(5) 平年2月:1~28(6) |
(1、3、5、7、8、10、12)月:0、1、31、32 (4、5、9、11)月:0、1、30 31 闰年2月:0、1、29、30 平年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 |
五.测试小结
对被测程序进行和音乐软件的黑盒测试中,测试用例均通过,本次对音乐软件中的主要功能——播放音乐功能进行测试,通过场景法与状态图法进行了测试,画出了播放音乐页面的思维导图,对场景法和状态图法有很大的帮助,使得测试思路更加清晰,并且不容易漏测,虽然本次没有将音乐软件的功能都测完,但利用思维导图,也能够比较完善地一步步测试下来。