一、实验目的
掌握黑盒测试用例设计方法
二、实验要求
(1)对被测程序进行黑盒测试用例设计
(2)运用等价类、边界值、决策表、状态图法等进行测试用例设计。
(3)对手机上任意一款音乐软件进行黑盒测试实践。(作业若雷同,后上传者判定0分)
三、实验内容
1、对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结。
要求写出测试用例表、执行情况和测试小结。
2、对手机上任意一款音乐软件进行黑盒测试。
要求:1)使用思维导图
2)根据场景法、状态图法 设计测试用例。
3)附加题:如有可能尝试用正交实验法、组合测试对测试用例进行简化。
写出测试用例表、执行情况,测试小结。
实验(1):对被测程序运用不同的测试技巧进行测试用例设计,并执行测试,撰写测试小结。
1)被测项目界面
2)测试用例设计表
等价类测试:
输入等价类 | 有效等价类 | 无效等价类 |
年份长度及类型 | 4位数字(1) | 有非数字的字符(12) |
年份范围 | 1912~2050(2) | 小于1912(15) |
月份长度及类型 | 1位数字(3) 2位数字(4) | 有非数字的字符(17) |
月份范围 | 1~12(5) | 小于1(19) |
日的长度及类型 | 1位数字(6) 2位数字(7) | 有非数字的字符(21) |
日的范围 | 月份为:1、3、5、7、8、10、12时:1~31(8) | 月份为:1、3、5、7、8、10、12:小于1(23) |
测试用例:
用例编号 | 测试数据 | 期望结果 | 实际结果 | 覆盖范围 | 是否通过 |
YJ1-001 | 1933-3-6 | 星期一 上一天:1933-3-5 下一天:1933-3-7 | 与预期结果相同 | 1、2、3、5、6、8 | 通过 |
YJ1-002 | 1999-11-16 | 星期二 上一天:1999-11-15 下一天:1999-11-17 | 与预期结果相同 | 1、2、4、5、7、9 | 通过 |
YJ1-003 | 2008-2-29 | 星期五 上一天:2008-2-28 下一天:2008-3-1 | 与预期结果相同 | 1、2、3、5、7、10 | 通过 |
YJ1-004 | 2013-2-28 | 星期四 上一天:2013-2-27 下一天:2013-3-1 | 与预期结果相同 | 1、2、3、5、7、11 | 通过 |
YJ1-005 | 1L66-9-13 | 提示输入数字 | 与预期结果相同 | 12 | 通过 |
YJ1-006 | 19936-6-15 | 提示年份超出范围 | 没有提示 | 13 | 否 |
YJ1-007 | 206-6-3 | 提示年份超出范围 | 没有提示 | 14 | 否 |
YJ1-008 | 1910-9-16 | 提示年份超出范围 | 没有提示 | 15 | 否 |
YJ1-009 | 2060-3-26 | 提示年份超出范围 | 没有提示 | 16 | 否 |
YJ1-010 | 1976-X-16 | 提示输入数字 | 与预期结果相同 | 17 | 通过 |
YJ1-011 | 1936-52-23 | 提示月份超出范围 | 没有提示 | 18 | 否 |
YJ1-012 | 1963-0-25 | 提示月份超出范围 | 没有提示 | 19 | 否 |
YJ1-013 | 1983-13-9 | 提示月份超出范围 | 没有提示 | 20 | 否 |
YJ1-014 | 1966-5-1D | 提示输入数字 | 与预期结果相同 | 21 | 通过 |
YJ1-015 | 1988-6-123 | 提示日期超出范围 | 没有提示 | 22 | 否 |
YJ1-016 | 1982-3-0 | 提示日期超出范围 | 没有提示 | 23 | 否 |
YJ1-017 | 1986-5-32 | 提示日期超出范围 | 没有提示 | 24 | 否 |
YJ1-018 | 1963-9-0 | 提示日期超出范围 | 没有提示 | 25 | 否 |
YJ1-019 | 1963-11-31 | 提示日期超出范围 | 没有提示 | 26 | 否 |
YJ1-020 | 2012-2-0 | 提示日期超出范围 | 没有提示 | 27 | 否 |
YJ1-021 | 2020-2-30 | 提示日期超出范围 | 没有提示 | 28 | 否 |
YJ1-022 | 2017-2-0 | 提示日期超出范围 | 没有提示 | 29 | 否 |
YJ1-023 | 2015-2-29 | 提示日期超出范围 | 没有提示 | 30 | 否 |
边界值法测试:
1912<=年份<=2050
1<=月份<=12
1<=日期(月份:4、6、9、11)<=30
1<=日期(月份为:1、3、5、7、8、10、12)<=31
1<=日期(月份:2 年份:闰年)<=29
1<=日期(月份:2 年份:平年)<=28
测试用例:
用例编号 | 测试数据 | 期望结果 | 实际结果 | 是否通过 |
YJ2-001 | 1911-3-6 | 提示年份超出范围 | 没有提示 | 否 |
YJ2-002 | 1912-6-16 | 星期日 上一天:1912-6-15 下一天:1912-6-17 | 与预期结果相同 | 通过 |
YJ2-003 | 1913-9-16 | 星期二 上一天:1913-9-15 下一天:1913-9-17 | 与预期结果相同 | 通过 |
YJ2-004 | 2049-6-3 | 星期四 上一天:2049-6-2 下一天:2049-6-4 | 与预期结果相同 | 通过 |
YJ2-005 | 2050-10-6 | 星期四 上一天:2050-10-5 下一天:2050-10-7 | 与预期结果相同 | 通过 |
YJ2-006 | 2051-3-19 | 提示年份超出范围 | 没有提示 | 否 |
YJ2-007 | 1963-0-3 | 提示月份超出范围 | 没有提示 | 否 |
YJ2-008 | 1999-1-20 | 星期三 上一天:1999-1-19 下一天:1999-1-21 | 与预期结果相同 | 通过 |
YJ2-009 | 1996-2-6 | 星期二 上一天:1996-2-5 下一天:1996-2-7 | 与预期结果相同 | 通过 |
YJ2-010 | 2016-11-16 | 星期三 上一天:2016-11-15 下一天:2016-11-17 | 与预期结果相同 | 通过 |
YJ2-011 | 2019-12-6 | 星期五 上一天:2019-12-5 下一天:2019-12-7 | 与预期结果相同 | 通过 |
YJ2-012 | 2000-13-9 | 提示月份超出范围 | 没有提示 | 否 |
YJ2-013 | 1963-6-0 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-014 | 2016-9-1 | 星期四 上一天:2016-8-31 下一天:2016-9-2 | 与预期结果相同 | 通过 |
YJ2-015 | 2019-11-2 | 星期六 上一天:2019-11-1 下一天:2019-11-3 | 与预期结果相同 | 通过 |
YJ2-016 | 2000-4-29 | 星期六 上一天:2000-4-28 下一天:2000-4-30 | 与预期结果相同 | 通过 |
YJ2-017 | 1999-6-30 | 星期三 上一天:1999-6-29 下一天:1999-7-1 | 与预期结果相同 | 通过 |
YJ2-018 | 2018-9-31 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-019 | 1936-1-0 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-020 | 2030-3-1 | 星期五 上一天:2030-2-28 下一天:2030-3-2 | 与预期结果相同 | 通过 |
YJ2-021 | 1968-5-2 | 星期四 上一天:1968-5-1 下一天:1968-5-3 | 与预期结果相同 | 通过 |
YJ2-022 | 1972-7-30 | 星期日 上一天:1972-7-29 下一天:1972-7-31 | 与预期结果相同 | 通过 |
YJ2-023 | 1987-8-31 | 星期一 上一天:1987-8-30 下一天:1987-9-1 | 与预期结果相同 | 通过 |
YJ2-024 | 2036-10-32 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-025 | 1968-2-0 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-026 | 1976-2-1 | 星期日 上一天:1976-1-31 下一天:1976-2-2 | 与预期结果相同 | 通过 |
YJ2-027 | 2008-2-2 | 星期六 上一天:2008-2-1 下一天:2008-2-3 | 与预期结果相同 | 通过 |
YJ2-028 | 2012-2-28 | 星期二 上一天:2012-2-27 下一天:2012-2-29 | 与预期结果相同 | 通过 |
YJ2-029 | 2016-2-29 | 星期一 上一天:2012-2-28 下一天:2012-3-1 | 与预期结果相同 | 通过 |
YJ2-030 | 2036-2-30 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-031 | 1983-2-0 | 提示日期超出范围 | 没有提示 | 否 |
YJ2-032 | 1965-2-1 | 星期一 上一天:1965-1-31 下一天:1965-2-2 | 与预期结果相同 | 通过 |
YJ2-033 | 1987-2-2 | 星期一 上一天:1987-2-1 下一天:1987-2-3 | 与预期结果相同 | 通过 |
YJ2-034 | 2013-2-27 | 星期三 上一天:2013-2-26 下一天:2013-2-28 | 与预期结果相同 | 通过 |
YJ2-035 | 2017-2-28 | 星期二 上一天:2017-2-27 下一天:2017-3-1 | 与预期结果相同 | 通过 |
YJ2-036 | 2033-2-29 | 提示日期超出范围 | 没有提示 | 否 |
决策表法测试:
Y1={年:是闰年};
Y2={年:不是闰年};
M1={月:每月有30天};
M2={月:每月有31天,除12月以外};
M3={月:此月是12月};
M4={月:此月是2月}
D1={日:1<=日<=27};
D2={日:日=28};
D3={日:日=29};
D4={日:日=30};
D5={日:日=31};
决策表:
选项
规则 | 1 2 3 | 4 | 5 | 6 7 8 9 | 10 | 11 12 13 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21,22 | |
条件 | C1:month在 | M1 | M1 | M1 | M2 | M2 | M3 | M3 | M3 | M4 | M4 | M4 | M4 | M4 |
C2:day在 | D1 D2 D3 | D4 | D5 | D1 D2 D3 D4 | D5 | D1 D2 D3 D4 | D5 | D1 | D2 | D2 | D3 | D3 | D4 D5 | |
C3:year在 | - | - | - | - | - | - | - | - | Y1 | Y2 | Y1 | Y2 | - | |
动作 | A1:不可能 |
|
| √ |
|
|
|
|
|
|
|
| √ | √ |
A2:day加1 | √ |
|
| √ |
| √ |
| √ | √ |
|
|
|
| |
A3:day复位 |
| √ |
|
| √ |
| √ |
|
| √ | √ |
|
| |
A4:month加1 |
| √ |
|
| √ |
|
|
|
| √ | √ |
|
| |
A5:month加复位 |
|
|
|
|
|
| √ |
|
|
|
|
|
| |
A6:year加1 |
|
|
|
|
|
| √ |
|
|
|
|
|
|
测试用例:
用例编号 | 测试数据 | 期望结果 | 实际结果 | 是否通过 |
YJ3-001 | 1999-6-2 | 星期三 上一天:1999-6-1 下一天:1999-6-3 | 与预期的结果一样 | 通过 |
YJ3-002 | 2018-1-31 | 星期三 上一天:2018-1-30 下一天:2018-2-1 | 与预期的结果一样 | 通过 |
YJ3-003 | 1963-9-31 | 提示日期超出范围 | 没有提示 | 否 |
YJ3-004 | 1966-5-6 | 星期五 上一天:1966-5-5 下一天:1966-5-7 | 与预期的结果一样 | 通过 |
YJ3-005 | 1976-7-31 | 星期六 上一天:1976-7-30 下一天:1976-8-1 | 与预期的结果一样 | 通过 |
YJ3-006 | 1996-12-29 | 星期日 上一天:1996-12-28 下一天:1996-12-30 | 与预期的结果一样 | 通过 |
YJ3-007 | 1982-12-31 | 星期五 上一天:1982-12-30 下一天:1983-1-1 | 与预期的结果一样 | 通过 |
YJ3-008 | 1997-12-13 | 星期六 上一天:1997-12-12 下一天:1997-12-14 | 与预期的结果一样 | 通过 |
YJ3-009 | 2016-2-28 | 星期日 上一天:2016-2-27 下一天:2016-2-29 | 与预期的结果一样 | 通过 |
YJ3-010 | 2017-2-28 | 星期二 上一天:2017-2-27 下一天:2017-3-1 | 与预期的结果一样 | 通过 |
YJ3-011 | 2020-2-29 | 星期六 上一天:2020-2-28 下一天:2020-3-1 | 与预期的结果一样 | 通过 |
YJ3-012 | 2021-2-29 | 提示日期超出范围 | 没有提示 | 否 |
YJ3-013 | 2028-2-30 | 提示日期超出范围 | 没有提示 | 否 |
3)测试结论
在用户输入错误的年、错误的月份和错误的日期时没有给用户相应的详细提示。
实验(2):对手机上任意一款音乐软件进行黑盒测试
部分思维导图(详细见实验报告图片附件):
实例:使用手机号登录APP,选择未缓存的歌单中的歌曲进行评论。
使用网易云音乐评论歌曲的整个过程描述:用户打开网易云音乐APP,在拥有网络状态下,用户进行登录,选择歌曲,点击歌曲进行播放,选择评论,输入评论内容,输入评论内容时需要用户登录,如果已经登录过了则可以输入评论内容,点击发送。
场景法:
基本流(场景1) | 用户打开网易云音乐,登录网易云,选择歌单,点击歌曲进行播放,点击评论,输入评论内容,点击发送。 |
备选流1(场景2) | 登陆时无网络 |
备选流2(场景3) | 手机号未注册 |
备选流3(场景4) | 手机号不正确 |
备选流4(场景5) | 密码错误 |
备选流5(场景6) | 手机号为空 |
备选流6(场景7) | 密码为空 |
备选流7(场景8) | 选择歌单时无网络 |
备选流8(场景9) | 播放歌曲时无网络 |
备选流9(场景10) | 输入评论时用户未登录 |
备选流10(场景11) | 输入空的评论内容 |
备选流11(场景12) | 输入超过字数限制的评论内容 |
备选流12(场景13) | 发送时无网络 |
测试用例设计(V表示有效输入,I表示无效输入,n/a表示不适用):
用例编号 | 场景/条件 | 网络状态 | 帐号 | 密码 | 选择歌单 | 播放歌曲 | 评论内容 | 发送 | 预期结果 | 实际结果 | 是否通过 |
YJ001 | 场景1:评论成功 | V | V | V | V | V | V | V | 评论成功 | 发表成功 | Y |
YJ002 | 场景2: 登录时无网络 | I | V | V | n/a | n/a | n/a | n/a | 提示无网络 | 提示当前网络不可用,请检查网络 | Y |
YJ003 | 场景3:手机号未注册 | V | I | I | n/a | n/a | n/a | n/a | 提示该手机号未注册 | 提示用户名或密码错误 | N |
YJ004 | 场景4:手机号不正确 | V | I | I | n/a | n/a | n/a | n/a | 提示手机号不正确 | 提示请输入11位手机号 | Y |
YJ005 | 场景5:密码错误 | V | V | I | n/a | n/a | n/a | n/a | 提示密码错误 | 提用户名或密码错误 | Y |
YJ006 | 场景6:手机号为空 | V | n/a | n/a | n/a | n/a | n/a | n/a | 提示输入手机号 | 提示请输入手机号 | Y |
YJ007 | 场景7: 密码为空 | V | V | n/a | n/a | n/a | n/a | n/a | 提示输入密码 | 提示请输入密码 | Y |
YJ008 | 场景8:选择歌单时无网络 | I(登陆成功后) | V | V | V | n/a | n/a | n/a | 提示无网络 | 提示当前网络不可用 | Y |
YJ009 | 场景9:播放歌曲时无网络 | I(登陆成功并已经进入歌单界面后) | V | V | V | V | n/a | n/a | 提示无网络 | 提示当前网络不可用 | Y |
YJ010 | 场景10:输入评论时,用户未登录 | V | n/a | n/a | V | V | n/a | n/a | 弹出登陆界面让用户登录 | 弹出登陆界面 | Y |
YJ011 | 场景11:评论内容为空 | V | V | V | V | V | I | n/a | 无法发送评论 | 发送按键无法操作 | Y |
YJ012 | 场景12:输入超过字数限制的评论内容 | V | V | V | V | V | I | n/a | 提示超过字数限制 | 提示字数超过限制 | Y |
YJ013 | 场景13:发送评论时无网络 | I(用户已登录,已写好评论内容后) | V | V | V | V | V | V | 提示无网络 | 提示当前网络不可用 | Y |
用户使用手机登录或游客试用的方式进入网易云音乐的状态图:
IP1:提供网络
IP2:切断网络
IP3:点击手机号登录
IP4:输入手机号
IP5:输入密码
IP6:点击登录
IP7:点击游客试用
状态法实例:
状态 | 启动网易云音乐 | 有网络状态的登录界面 | 无网络状态的登录界面 | 手机号登录页面 | 密码已输入 | 手机号已输入 | 手机号密码已输入 | 网易云音乐主页 |
1 | 1 | 2 |
|
|
|
|
| 3 |
2 | 1 | 4 | 23 |
|
|
|
| 5 |
3 | 1 |
| 2 |
|
|
|
| 3 |
4 | 1 | 2 |
| 34 |
| 56 | 7 | 8 |
5 | 1 | 2 |
| 3 | 45 |
| 6 | 7 |
6 | 1 | 2 |
| 3 |
| 45 | 6 | 7 |
7 | 1 | 2 |
| 3 |
| 4 | 5 | 6 |
8 | 1 | 2 |
| 3 | 4 |
| 5 | 6 |
9 | 1 | 3 | 2 |
|
|
|
| 4 |
测试小结:
使用思维导图能够清晰知道软件的逻辑顺序,使用不一样的标记可以标记哪个部分已经测试过了,哪个部分还没测试过,同时可以将发现的BUG描述在相应的位置上,BUG位置清晰明了。
状态图的使用和状态图实例不是很理解。
网易云音乐APP的部分页面的跳转出现重复叠加,部分页面关闭时没有关闭资源,网易云音乐提供的资源与用户所需要的资源部分不符,详细的BUG描述见实验报告图片附件。