开发人员代码:http://www.cnblogs.com/linpanhuang/p/6790891.html
一、实验目的
掌握黑盒测试用例设计方法
二、实验要求
(1)对被测程序进行黑盒测试用例设计
(2)运用等价类、边界值、决策表、状态图法等进行测试用例设计。
(3)对手机上任意一款音乐软件进行黑盒测试实践。(作业若雷同,后上传者判定0分)
三、实验内容
1、对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结。
要求写出测试用例表、执行情况和测试小结。
2、对手机上任意一款音乐软件进行黑盒测试。
要求:1)使用思维导图
2)根据场景法、状态图法 设计测试用例。
3)附加题:如有可能尝试用正交实验法、组合测试对测试用例进行简化。
写出测试用例表、执行情况,测试小结。
1)被测项目界面。
2)测试用例设计表
等价类
输入条件 |
有效等价类 |
编号 |
无效等价类 |
编号 |
年 |
1912≤year≤2050 |
① |
year<1912 |
② |
Year>2050 |
③ |
|||
非数字 |
||||
月 |
Month= 1,3,5,7,8,10,12 |
④ |
Month<1 |
⑤ |
Month= 4,6,9,11 |
month>12 |
⑥ |
||
Month= 2 |
非数字 |
|||
日 |
1≤ day ≤31 |
⑦ |
day<1 |
⑧ |
Day>311 |
⑨ |
|||
非数字 |
测试用例表
测试用例编号 |
输入数据 |
预期输出 |
实际结果 |
通过与否 |
||||||
Year |
Month |
Day |
这天是星期 |
上一天是 |
下一天是 |
这天是星期 |
上一天是 |
下一天是 |
||
1 |
2000 |
12 |
6 |
三 |
2000年12月5日 |
2000年12月7日 |
三 |
2000年12月5日 |
2000年12月7日 |
通过 |
2 |
2000 |
6 |
30 |
五 |
2000年6月29日 |
2000年7月1日 |
五 |
2000年6月29日 |
2000年7月1日 |
通过 |
3 |
2000 |
2 |
28 |
一 |
2000年2月27日 |
2000年2月29日 |
一 |
2000年2月27日 |
2000年2月29日 |
通过 |
4 |
2055 |
12 |
1 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
通过 |
||
5 |
2000 |
13 |
1 |
月份超出范围 |
月份超出范围 |
月份超出范围 |
月份超出范围 |
通过 |
||
6 |
2000 |
12 |
32 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
||
7 |
1900 |
12 |
1 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
通过 |
||
8 |
2000 |
0 |
1 |
月份超出范围 |
月份超出范围 |
月份超出范围 |
月份超出范围 |
通过 |
||
9 |
1999 |
2 |
30 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
||
10 |
a |
2 |
12 |
年份超出范围 |
年份超出范围 |
程序出现异常 |
不通过 |
|||
11 |
2000 |
2s |
10 |
月份超出范围 |
月份超出范围 |
程序出现异常 |
不通过 |
|||
12 |
2000 |
2 |
Jk |
日期超出范围 |
日期超出范围 |
程序出现异常 |
不通过 |
边界值分析法
边界值: 1992≤year≤2050 1≤Month≤12,1≤ day ≤31
测试用例编号 |
输入数据 |
预期输出 |
实际结果 |
通过与否 |
||||||
Year |
Month |
Day |
这天是星期 |
上一天是 |
下一天是 |
这天是星期 |
上一天是 |
下一天是 |
||
1 |
1911 |
12 |
6 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
通过 |
||
2 |
1912-1992 |
12 |
6 |
五 |
1912-1992年12月5日 |
1912-1992年12月7日 |
年份超出范围 |
年份超出范围 |
不通过 |
|
3 |
2049 |
12 |
7 |
二 |
2049年12月6日 |
2049年12月8日 |
二 |
2049年12月6日 |
2049年12月8日 |
通过 |
4 |
2050 |
12 |
7 |
三 |
2050年12月6日 |
2050年12月8日 |
三 |
2050年12月6日 |
2050年12月8日 |
通过 |
5 |
2051 |
12 |
7 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
年份超出范围 |
通过 |
||
6 |
2000 |
11 |
7 |
二 |
2000年11月6日 |
2000年11月8日 |
二 |
2000年11月6日 |
2000年11月8日 |
通过 |
7 |
2000 |
12 |
7 |
四 |
2000年12月6日 |
2000年12月8日 |
四 |
2000年12月6日 |
2000年12月8日 |
通过 |
8 |
2000 |
13 |
7 |
月份超出范围 |
月份超出范围 |
月份超出范围 |
月份超出范围 |
通过 |
||
9 |
2000 |
2 |
28 |
一 |
2000年2月27日 |
2000年2月29日 |
一 |
2000年2月27日 |
2000年2月29日 |
通过 |
10 |
2000 |
2 |
29 |
二 |
2000年2月28日 |
2000年3月1日 |
一 |
2000年2月28日 |
2000年3月1日 |
不通过 |
11 |
2000 |
2 |
30 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
||
12 |
2000 |
12 |
30 |
六 |
2000年12月29日 |
2000年12月31日 |
六 |
2000年12月29日 |
2000年12月31日 |
通过 |
13 |
2000 |
12 |
31 |
日 |
2000年12月30日 |
2001年1月1日 |
日 |
2000年12月30日 |
2001年1月1日 |
通过 |
14 |
2000 |
12 |
32 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
||
15 |
2000 |
4 |
29 |
六 |
2000年4月28 |
2000年4月28 |
六 |
2000年4月28 |
2000年4月28 |
通过 |
16 |
2000 |
4 |
30 |
日 |
2000年4月29日 |
2000年4月29日 |
日 |
2000年4月29日 |
2000年4月29日 |
通过 |
17 |
2000 |
4 |
31 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
决策表
M1:{month:month有30天}
M2:{month:month有31天,12月除外}
M3:{month:month有12月}
M4:{month:month有2月}
D1:{day:1≤day≤27}
D2:{day:day=28}
D3:{day:day=29}
D4:{day:day=30}
D5:{day:day=31}
Y1:{year:year是润年}
Y2:{year:year不是润年}
规则1-5处理30天的月份z
规则6-10和规则11-15处理有31天的月份,其中规则6-10处理12月之外的月份
规则11-15处理12月,不肯能规则也列出。
规则16-22关注闰年和2月问题
规则 |
1-3 |
4 |
5 |
6-9 |
10 |
11-14 |
15 |
16 |
17 |
18 |
19 |
20 |
21-22 |
||
C1:month在 |
M1 |
M1 |
M1 |
M2 |
M2 |
M3 |
M3 |
M4 |
M4 |
M4 |
M4 |
M4 |
M4 |
||
C2:day在 |
D1-D3 |
D4 |
D5 |
D1-D4 |
D5 |
D1-D4 |
D5 |
D1 |
D2 |
D2 |
D3 |
D3 |
D4-D5 |
||
C3:yer在 |
- |
- |
- |
- |
- |
- |
- |
- |
Y1 |
Y2 |
Y1 |
Y2 |
- |
||
动作 |
|||||||||||||||
a1:不可能 |
成立 |
成立 |
成立 |
||||||||||||
a2:day加1 |
成立 |
成立 |
成立 |
成立 |
成立 |
||||||||||
a3:day复位 |
成立 |
成立 |
成立 |
成立 |
成立 |
||||||||||
a4:month加1 |
成立 |
成立 |
成立 |
成立 |
|||||||||||
a5:month复位 |
成立 |
||||||||||||||
a6:year加1 |
成立 |
测试用例
测试用例编号 |
输入数据 |
预期输出 |
实际结果 |
通过与否 |
||||||
Year |
Month |
Day |
这天是星期 |
上一天是 |
下一天是 |
这天是星期 |
上一天是 |
下一天是 |
||
1-3 |
2001 |
8 |
16 |
四 |
2001年8月15日 |
2001年8月17日 |
四 |
2001年8月15日 |
2001年8月17日 |
通过 |
4 |
2004 |
8 |
30 |
一 |
2004年8月29日 |
2004年8月31日 |
一 |
2004年8月29日 |
2004年8月31日 |
通过 |
5 |
2001 |
9 |
31 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
||
6-9 |
2004 |
1 |
16 |
五 |
2004年1月15日 |
2004年1月17日 |
五 |
2004年1月15日 |
2004年1月17日 |
通过 |
10 |
2001 |
1 |
31 |
三 |
2001年1月30日 |
2002年2月1 |
三 |
2001年1月30日 |
2001年2月1 |
不通过 |
11-14 |
2004 |
12 |
16 |
四 |
2004年12月15日 |
2004年12月17日 |
四 |
2004年12月15日 |
2004年12月17日 |
通过 |
15 |
2001 |
12 |
31 |
一 |
2001年12月30日 |
2002年1月1日 |
一 |
2001年12月30日 |
2002年1月1日 |
通过 |
16 |
2004 |
2 |
16 |
一 |
2004年2月15日 |
2004年2月17日 |
一 |
2004年2月15日 |
2004年2月17日 |
通过 |
17 |
2004 |
2 |
28 |
六 |
2004年2月27日 |
2004年2月29日 |
六 |
2004年2月27日 |
2004年2月29日 |
通过 |
18 |
2001 |
2 |
28 |
三 |
2001年2月27日 |
2001年3月1日 |
三 |
2001年2月27日 |
2001年3月1日 |
通过 |
19 |
2004 |
2 |
29 |
日 |
2004年2月28日 |
2004年3月1日 |
三 |
2004年2月28日 |
2004年3月1日 |
不通过 |
20 |
2001 |
2 |
29 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
||
21-22 |
2004 |
2 |
30 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
日期超出范围 |
通过 |
状态图法
测试用例:
用例1 |
用例2 |
用例3 |
用例4 |
用例5 |
用例6 |
用例7 |
用例8 |
用例9 |
|
空闲 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
未输入年/月/日 |
|||||||||
年/月/日未输入或超出范围 |
3 |
3 |
3 |
4 |
4 |
4 |
5 |
||
已输入年 |
2 |
2 |
2 |
2 |
2 |
||||
已输入月 |
2 |
3 |
3 |
2 |
3 |
||||
已输入日 |
2 |
4 |
3 |
3 |
4 |
||||
已输入正确规格的年月日 |
5 |
||||||||
显示输出数据 |
6 |
||||||||
退出 |
2 |
7 |
测试结论
在等价类测试中,通过寻找等价关系可大大减少工作量,同时可以测试有效类与无效类对测序进行测试正确与否。在边界类测试中,最容易找出程序的缺陷所在,对边界值的确认得到进一步的保证。在决策表中表的规模较大,可将问题进行分解使条件的分配组合更为合理。在对状态图法的分析中,需要多加注意各情况之间的关系,否则就容易出错,由于自身水平还有待提高,所以在上述用例中还有部分需加强及完善。
2、对手机上任意一款音乐软件进行黑盒测试。
1)使用思维导图
2)根据场景法、状态图法 设计测试用例。
场景法
1.酷狗登陆
1.账号登陆
基本流:输入正确的用户名/密码
备选流1:用户名不能为空
备选流2:密码为空
备选流3:密码输入错误,请重新输入
备选流4:用户名不存在
用例编号 |
场景 |
基本流/备选流 |
预期结果 |
实际结果 |
通过与否 |
1 |
输入正确的用户名/密码 |
基本流 |
登陆成功 |
登陆成功 |
通过 |
2 |
没有输入用户名 |
备选流1 |
用户名不能为空 |
用户名不能为空 |
通过 |
3 |
没有输入密码 |
备选流2 |
密码为空 |
密码为空 |
通过 |
4 |
账号密码输入错误 |
备选流3 |
密码输入错误,请重新输入 |
密码输入错误,请重新输入 |
通过 |
5 |
用户名随便输入 |
备选流4 |
用户名不存在 |
用户名不存在 |
通过 |
状态图
2.短息登陆
基本流:输入正确的手机号/验证码
备选流1:请输入有效手机号
备选流2:验证码不能为空
备选流3:验证码失效
用例编号 |
场景 |
基本流/备选流 |
预期结果 |
实际结果 |
通过与否 |
1 |
输入正确的手机号/验证码 |
基本流 |
登陆成功 |
登陆成功 |
通过 |
2 |
输入错误或格式错误的手机号 |
备选流1 |
请输入有效手机号 |
请输入有效手机号 |
通过 |
3 |
不输入验证码 |
备选流2 |
验证码不能为空 |
验证码不能为空 |
通过 |
4 |
输入错误验证码或随便输入 |
备选流3 |
验证码失效 |
验证码失效 |
通过 |
状态图:
2.音乐播放
基本流:音乐正常播放
备选流1:播放上一首
备选流2:播放下一首
备选流3:点击播放
备选流4:点击暂停
备选流5:播放模式
备选流5.1:随机播放
备选流5.2:顺序播放
备选流5.3:单曲播放
备选流6:蝰蛇音效
备选流6.1:3D丽音
备选流6.2:超重低音
用例编号 |
场景 |
基本流/备选流 |
预期结果 |
实际结果 |
通过与否 |
1 |
音乐正常播放 |
基本流 |
播放正常 |
播放正常 |
通过 |
2 |
播放上一首 |
备选流1 |
音乐跳到上一首进行播放 |
音乐跳到上一首进行播放 |
通过 |
3 |
播放下一首 |
备选流2 |
音乐跳到下一首进行播放 |
音乐跳到下一首进行播放 |
通过 |
4 |
点击播放 |
备选流3 |
音乐响起 |
音乐响起 |
通过 |
5 |
点击暂停 |
备选流4 |
音乐停止 |
音乐停止 |
通过 |
6 |
随机播放 |
备选流5.1 |
点击下一首时音乐随机跳选 |
点击下一首时音乐随机跳选 |
通过 |
7 |
顺序播放 |
备选流5.2 |
点击下一首时音乐播放下一条 |
点击下一首时音乐播放下一条 |
通过 |
8 |
单曲播放 |
备选流5.3 |
歌曲结束后再次播放仍为选定曲目 |
歌曲结束后再次播放仍为选定曲目 |
通过 |
9 |
3D丽音 |
备选流6.1 |
音效改变 |
音效改变 |
通过 |
10 |
超重低音 |
备选流6.2 |
音效改变 |
音效改变 |
通过 |
状态图:
3.播放列表
基本流:播放列表正常显示
备选流1:歌曲信息查看
备选流2:添加到喜爱
备选流3:转发
备选流3.1:转发到微信
备选流3.2:转发到QQ
备选流4:MV
用例编号 |
场景 |
基本流/备选流 |
预期结果 |
实际结果 |
通过与否 |
1 |
播放列表正常显示 |
基本流 |
点击列表正常显示 |
点击列表正常显示 |
通过 |
2 |
歌曲信息查看 |
备选流1 |
信息完整,图片正常 |
信息完整,图片正常 |
通过 |
3 |
添加到喜爱 |
备选流2 |
喜爱的列表存有选定的曲目 |
喜爱的列表存有选定的曲目 |
通过 |
4 |
转发到微信 |
备选流3.1 |
微信上能看到转发的曲目 |
微信上能看到转发的曲目 |
通过 |
5 |
转发到QQ |
备选流3.2 |
QQ上能看到转发的曲目 |
QQ上能看到转发的曲目 |
通过 |
6 |
MV |
备选流4 |
跳到MV播放页面,并自动播放 |
跳到MV播放页面,并自动播放 |
通过 |
状态图:
4.音乐搜索
基本流:正常进入搜索页面
备选流1:歌手分类
备选流1.1:华语男/女/组合
备选流1.2:韩国男/女/组合
备选流1.3:欧美男/女/组合
备选流2:热门搜索
备选流3:内容搜索
备选流3.1:歌词搜索
备选流3.2:歌手搜索
备选流3.3:歌名搜索
用例编号 |
场景 |
基本流/备选流 |
预期结果 |
实际结果 |
通过与否 |
1 |
正常进入搜索页面 |
基本流 |
页面显示正常和推荐曲目正常显示 |
页面显示正常和推荐曲目正常显示 |
通过 |
2 |
华语男/女/组合 |
备选流1.1 |
列出要求的歌手及组合列表 |
列出要求的歌手及组合列表 |
通过 |
3 |
韩国男/女/组合 |
备选流1.2 |
列出要求的歌手及组合列表 |
列出要求的歌手及组合列表 |
通过 |
4 |
欧美男/女/组合 |
备选流1.3 |
列出要求的歌手及组合列表 |
列出要求的歌手及组合列表 |
通过 |
5 |
热门搜索 |
备选流2 |
页面自动推荐曲目和歌手 |
页面自动推荐曲目和歌手 |
通过 |
6 |
歌词搜索 |
备选流3.1 |
输入部分歌词找出歌手及曲目 |
部分歌词找出歌手及曲目 |
通过 |
7 |
歌手搜索 |
备选流3.2 |
输入歌手名字列出歌手的所有作品 |
输入歌手名字列出歌手的所有作品 |
通过 |
8 |
歌名搜索 |
备选流3.3 |
输入歌曲名字显示歌曲的作者及曲名 |
输入歌曲名字显示歌曲的作者及曲名 |
通过 |
状态图:
3)附加题:如有可能尝试用正交实验法、组合测试对测试用例进行简化。
3)测试结论
在对手机的酷狗音乐的测试中可以发现,在网络正常的情况下,对多种情况的测试酷狗音乐都能作出正确的反应,这说明一个软件的正确性有保证,同时也使我学习到应用场景法对具体问题具体分析的测试,使得测试具有较强的目的性,最后也发现自己有待于提高的部分,