一、实验目的
掌握黑盒测试用例设计方法
二、实验要求
(1)对被测程序进行黑盒测试用例设计
(2)运用等价类、边界值、决策表、状态图法等进行测试用例设计。
(3)对手机上任意一款音乐软件进行黑盒测试实践。(作业若雷同,后上传者判定0分)
三、实验内容
被测代码链接:http://www.cnblogs.com/123zzj/p/6799665.html
1、对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结。
要求写出测试用例表、执行情况和测试小结。
1) 等价类表:
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 | |
年 | 1912~2050 | 1 | 非整数 | 7 | |
小于1912 | 8 | ||||
大于2050 | 9 | ||||
月 | 1~12 | 2 | 非整数 | 10 | |
小于1 | 11 | ||||
大于12 | 12 | ||||
日 | 1,3,5,7,8,10,12 | 1~31 | 3 | 非整数 | 13 |
大于31 | 14 | ||||
4,6,9,11 | 1~30 | 4 | 小于1 | 15 | |
大于30 | 16 | ||||
闰年2月 | 1~29 | 5 | 大于29 | 17 | |
非闰年2月 | 1~28 | 6 | 大于28 | 18 |
测试用例表:
编号 | 涵盖条件 | 输入 | 预期输出 | 实际输出 | 测试结果 | ||||||
年 | 月 | 日 | 这天 | 下一天 | 上一天 | 这天 | 下一天 | 上一天 | |||
1 | 1,2,3 | 2001 | 3 | 31 | 星期六 | 2001年04月01日 | 2001年03月30日 | 星期六 | 2001年04月01日 | 2001年03月30日 | 通过 |
2 | 1,2,4 | 2013 | 4 | 30 | 星期二 | 2013年05月01日 | 2013年04月29日 | 星期二 | 2013年05月01日 | 2013年04月29日 | 通过 |
3 | 1,2,5 | 2020 | 2 | 29 | 星期六 | 2020年03月01日 | 2020年02月28日 | 星期六 | 2020年03月01日 | 2020年02月28日 | 通过 |
4 | 1,2,6 | 2001 | 2 | 28 | 星期三 | 2001年03月01日 | 2001年02月27日 | 星期三 | 2001年03月01日 | 2001年02月27日 | 通过 |
5 | 7 | a | 1 | 12 | 输入有误,请重新输入 | 无反应 | 不通过 | ||||
6 | 8 | 1911 | 7 | 21 | 输入有误,请重新输入 | 年份超出范围 | 不通过 | ||||
7 | 9 | 2051 | 2 | 11 | 输入有误,请重新输入 | 年份超出范围 | 不通过 | ||||
8 | 10 | 1997 | 0.1 | 24 | 输入有误,请重新输入 | 无反应 | 不通过 | ||||
9 | 11 | 1976 | 0 | 17 | 输入有误,请重新输入 | 月份超出范围 | 不通过 | ||||
10 | 12 | 1986 | 16 | 21 | 输入有误,请重新输入 | 月份超出范围 | 不通过 | ||||
11 | 13 | 2022 | 11 | c | 输入有误,请重新输入 | 无反应 | 不通过 | ||||
12 | 14 | 1955 | 5 | -2 | 输入有误,请重新输入 | 日期超出范围 | 不通过 | ||||
13 | 15 | 1943 | 8 | 33 | 输入有误,请重新输入 | 日期超出范围 | 不通过 | ||||
14 | 16 | 1989 | 6 | 31 | 输入有误,请重新输入 | 星期六 | 1989年07月02日 | 1989年06月30日 | 不通过 | ||
15 | 17 | 1996 | 2 | 30 | 输入有误,请重新输入 | 星期五 | 1996年03月02日 | 1996年02月29日 | 不通过 | ||
16 | 18 | 2003 | 2 | 29 | 输入有误,请重新输入 | 星期六 | 2003年03月02日 | 2003年02月28日 | 不通过 |
2)边界值
边界值表:
输入条件 | 边界值 | 编号 | |
年 | 1912 | 1 | |
2050 | 2 | ||
月 | 1 | 3 | |
12 | 4 | ||
日 | 1 | 5 | |
1,3,5,7,8,10,12 | 31 | 6 | |
4,6,9,11 | 30 | 7 | |
闰年2月 | 29 | 8 | |
非闰年2月 | 28 | 9 |
测试用例表:
编号 | 覆盖条件 | 输入 | 预计输出 | 实际输出 | 测试结果 | ||
1 | 1 | 1911 | 6 | 8 | 输入有误,请重新输入 | 年份超出范围 | 不通过 |
2 | 1 | 1912 | 6 | 8 | 星期六 1912年06月09日 1912年06月07日 | 星期六 1912年06月09日 1912年06月07日 | 通过 |
3 | 2 | 2050 | 6 | 8 | 星期三 2050年06月09日 2050年06月07日 | 星期三 1912年06月09日 1912年06月07日 | 通过 |
4 | 2 | 2051 | 6 | 8 | 输入有误,请重新输入 | 年份超出范围 | 不通过 |
5 | 3 | 2000 | 0 | 8 | 输入有误,请重新输入 | 月份超出范围 | 不通过 |
6 | 3 | 2000 | 1 | 8 | 星期六 2000年01月09日 2000年01月07日 | 星期六 2000年01月09日 2000年01月07日 | 通过 |
7 | 4 | 2000 | 12 | 8 | 星期五 2000年12月09日 2000年12月07日 | 星期五 2000年12月09日 2000年12月07日 | 通过 |
8 | 4 | 2000 | 13 | 8 | 输入有误,请重新输入 | 月份超出范围 | 不通过 |
9 | 5 | 2000 | 6 | 0 | 输入有误,请重新输入 | 日期超出范围 | 不通过 |
10 | 5 | 2000 | 6 | 1 | 星期四 2000年06月02日 2000年05月31日 | 星期四 2000年06月02日 2000年05月31日 | 通过 |
11 | 6 | 2000 | 7 | 31 | 星期一 2000年08月01日 2000年07月30日 | 星期一 2000年08月01日 2000年07月30日 | 通过 |
12 | 6 | 2000 | 7 | 32 | 输入有误,请重新输入 | 日期超出范围 | 不通过 |
13 | 7 | 2000 | 6 | 30 | 星期五 2000年07月01日 2000年06月29日 | 星期五 2000年07月01日 2000年06月29日 | 通过 |
14 | 7 | 2000 | 6 | 31 | 输入有误,请重新输入 | 星期六 2000年07月02日 2000年06月30日 | 不通过 |
15 | 8 | 2000 | 2 | 29 | 星期二 2000年03月01日 2000年02月28日 | 星期二 2000年03月01日 2000年02月28日 | 通过 |
16 | 8 | 2000 | 2 | 30 | 输入有误,请重新输入 | 星期三 2000年03月02日 2000年02月29日 | 不通过 |
17 | 9 | 2001 | 2 | 28 | 星期三 2001年03月01日 2001年02月27日 | 星期三 2001年03月01日 2001年02月27日 | 通过 |
18 | 9 | 2001 | 2 | 29 | 输入有误,请重新输入 | 星期四 2001年03月02日 2001年02月28日 | 不通过 |
3)决策表
M1={month=1,3,5,7,8,10}
M2={month=4,6,9,11}
M3={month=12}
M4={month=2}
D1={1<=day<=27}
D2={day=28}
D3={day=29}
D4={day=30}
D5={day=31}
Y1={year是闰年}
Y2={year不是闰年}
决策表:
规则\选项 | 1~3 | 4 | 5 | 6~9 | 10 | 11~14 | 15 | 16 | 17 | 18 | 19 | 20 | 21,22 | ||
条
件 | C1:month在 C2:day在
C3:year在 | M1 D1 D2 D3
-- | M1 D4
-- | M1 D5
-- | M2 D1 D2 D3 D4 -- | M2 D5
-- | M3 D1 D2 D3 D4 -- | M3 D5
-- | M4 D1
-- | M4 D2
Y1 | M4 D2
Y2 | M4 D3
Y1 | M4 D3
Y2 | M4 D4 D5
-- | |
动
作 | A1:不可能 | Y | Y | Y | |||||||||||
A2:day加1 | Y | Y | Y | Y | Y | ||||||||||
A3:day复位 | Y | Y | Y | Y | Y | ||||||||||
A4:month加1 | Y | Y | Y | Y | |||||||||||
A5:month复位 | Y | ||||||||||||||
A6:year加1 | Y |
测试用例表:
编号 | 输入 | 预期输出 | 实际输出 | 测试结果 | ||||||
年 | 月 | 日 | 这天 | 下一天 | 上一天 | 这天 | 下一天 | 上一天 | ||
1~3 | 2001 | 4 | 11 | 星期三 | 2001年04月12日 | 2001年04月10日 | 星期三 | 2001年04月12日 | 2001年04月10日 | 通过 |
4 | 2013 | 4 | 30 | 星期二 | 2013年05月01日 | 2013年04月29日 | 星期二 | 2013年05月01日 | 2013年04月29日 | 通过 |
5 | 2014 | 4 | 31 | 输入有误,请重新输入 | 星期四 | 2014年05月02日 | 2014年04月30日 | 不通过 | ||
6~9 | 2001 | 3 | 28 | 星期三 | 2001年03月29日 | 2001年03月27日 | 星期三 | 2001年03月29日 | 2001年03月27日 | 通过 |
10 | 2001 | 3 | 31 | 星期六 | 2001年04月01日 | 2001年03月30日 | 星期六 | 2001年04月01日 | 2001年03月30日 | 通过 |
11~14 | 1934 | 12 | 21 | 星期五 | 1934年12月22日 | 1934年12月20日 | 星期五 | 1934年12月22日 | 1934年12月20日 | 通过 |
15 | 1934 | 12 | 31 | 星期一 | 1935年01月01日 | 1934年12月30日 | 星期一 | 1935年01月01日 | 1934年12月30日 | 通过 |
16 | 1997 | 2 | 24 | 星期一 | 1997年02月25日 | 1997年02月23日 | 星期一 | 1997年02月25日 | 1997年02月23日 | 通过 |
17 | 2000 | 2 | 28 | 星期一 | 2000年02月29日 | 2000年02月28日 | 星期一 | 2000年02月29日 | 2000年02月28日 | 通过 |
18 | 1986 | 2 | 28 | 星期五 | 1986年03月01日 | 1986年02月27日 | 星期五 | 1986年03月01日 | 1986年02月27日 | 通过 |
19 | 2020 | 2 | 29 | 星期六 | 2020年03月01日 | 2020年02月28日 | 星期六 | 2020年03月01日 | 2020年02月28日 | 通过 |
20 | 1955 | 2 | 29 | 输入有误,请重新输入 | 星期二 | 1955年03月02日 | 1955年02月28日 | 不通过 | ||
21,22 | 1943 | 2 | 30 | 输入有误,请重新输入 | 星期二 | 1943年03月03日 | 1943年03月01日 | 不通过 |
4)状态图法
“年日已输”等没有画出,类似于图中”年月已输”
ip1:输入年
ip2:输入月
ip3:输入日
ip4:按下“确定”按钮
ip5:按下“清空”按钮
ip6:错误的情况下按下“确定”按钮
编号 | 输入 | 预计输出 | 实际输出 | 测试结果 | ||
1 | 1912 | 6 | 8 | 星期六 1912年06月09日 1912年06月07日 | 星期六 1912年06月09日 1912年06月07日 | 通过 |
2 | 1916 | 6 | 输入有误,请重新输入 | 编译出错 | 不通过 | |
3 | 2050 | 8 | 输入有误,请重新输入 | 编译出错 | 不通过 | |
4 | 5 | 8 | 输入有误,请重新输入 | 编译出错 | 不通过 | |
5 | 2000 | 输入有误,请重新输入 | 编译出错 | 不通过 | ||
6 | 11 | 输入有误,请重新输入 | 编译出错 | 不通过 | ||
7 | 30 | 输入有误,请重新输入 | 编译出错 | 不通过 |
5)测试结论
用等价类表可能测不出的问题用边界和测试用例可以,三种方法互有长短,能测出不同的错误。如等价类可能取值不同会忽略的小于31在2月小月的边界值问题,在另外两种方法就一点能被测出;输入值错误而输出不符合要求这一项在决策表中无法测出只能用其他两种方法。所以就像老师说的要说测完一个程序是不可能的,所以要尽可能选择合适的方法多的用例尽可能的测出程序更多的bug,测试用例选择的恰当有事可以把另外一种方式的用例也测试完。了解各个测试方式的特性挺重要的。
2、对手机上任意一款音乐软件进行黑盒测试。
1)使用思维导图
2)根据场景法、状态图法 设计测试用例。
(1)场景法
播放音乐场景:
基本流:顺序循环播放下一首
备选流1:暂停/播放
备选流2:上一首
备选流3:下一首
备选流4:随机播放
备选流5:单曲循环
备选流6:列表选歌
备选流7:歌曲播放时间跳转
备选流8:列表选歌
备选流x:退出
(2)状态图
测试用例
编号 | 场景 | 备选流 | 预期结果 | 实际结果 | 是否通过 |
1 | 点击播放 | 基本流 | 播放音乐 | 播放音乐 | √ |
2 | 暂停音乐 | 1 | 音乐暂停 | 音乐暂停 | √ |
3 | 在音乐暂停后,继续播放音乐 | 1 | 音乐继续播放 | 音乐继续播放 | √ |
4 | 顺序循环状态下点击上一首歌曲 | 2 | 播放列表下一首歌曲 | 播放列表下一首歌曲 | √ |
5 | 随机播放状态下点击上一首歌曲 | 2、4 | 随机播放下一首歌曲 | 随机播放下一首歌曲 | √ |
6 | 单曲循环状态下点击上一首歌曲 | 2、5 | 播放列表下一首歌曲 | 播放列表下一首歌曲 | √ |
7 | 顺序循环状态下点击下一首歌曲 | 3 | 播放列表上一首歌曲 | 播放列表上一首歌曲 | √ |
8 | 随机播放状态下点击下一首歌曲 | 3、4 | 播放上一首已播放歌曲 | 播放上一首已播放歌曲 | √ |
9 | 单曲循环状态下点击下一首歌曲 | 3、5 | 播放列表上一首歌曲 | 播放列表上一首歌曲 | √ |
10 | 点击歌曲的任意时间段 | 7 | 播放该时间曲调 | 播放该时间曲调 | √ |
11 | 列表中任意点击一首歌 | 8 | 播放该首歌 | 播放该首歌 | √ |
10 | 任意状态下退出 | x | 音乐继续播放 | 音乐继续播放 | √ |
测试小结:第一次测试一个实例的app,这个i音乐是vivo手机自带的音乐app。功能没有那么全面,它不需要登录等功能。但是播放器有的基本功能也都有。就选择了功能最多的播放界面来做图测试。发现这个播放器它没有播放单曲的这个比较基本功能。其他都是比较完善的。且该界面比较简单,没有太复杂的操作,老少皆宜。通过这次测试,深刻体会到需要细心耐心。在测试时有遗漏备选流7和备选流8,在检查的时候才发现的。所以要认认真真做好测试。