一、实验目的 1、加深对黑盒测试的理解。 2、进一步掌握状态迁移图法与场景法的使用。 3、进一步掌握正交表实验法的使用。 二、实验原理 状态迁移图法: 分析需求,找到状态节点,画出状态迁移图,根据迁移图画出状态迁移树,再从状态树推导出测试路径。 场景法: 分析需求,确定出软件的基本流和各项备选流,依据基本流和各项备选流,生成不同的场景,针对生成的各场景,设计相应的测试用例。 正交表实验法: 分析需求,确定每个条件的取值情况,选择一个合适的正交表,把条件的值映射到正交表中,把每一行的各因素水平的组合做为一个测试用例。 (http://support.sas.com/techsup/technote/ts723_Designs.txt) 三、实验操作方法和步骤 1、某火车票购票系统需求如下: (1)用户登录购票系统,选择出发地、目的地、出发日期,选择某趟车次点击“预定”,且填好订票人信息,点击提交订单;当前订单状态为“未支付”; (2)用户手动取消订单,车票状态更新为“已取消”; (3)45 分钟内未支付,订单自动取消,车票状态为“已取消”; (4)用户支付车票,车票状态变为“已支付”; (5)用户到达车站通过自动取票机或售票窗口取票,车票状态为“已出票”; (6)在开车半小时前,可进行改签,改签成功,车票状态为“改签成功”; (7)已出票/已改签的车票检票登上火车后,车票状态变为“已使用”; (8)在开车半小时前,可进行退票,退票成功,车票状态为“退票成功”。 请根据需求使用状态迁移图法导出测试路径。
- ATM取款机的场景流程如下所示:
(1)用户插入银行卡:客户将银行卡插入 ATM (2)验证银行卡:ATM 验证银行卡是否有效 (3)输入密码:客户输入密码 (4)验证密码:ATM 验证用户输入的密码 (5)ATM 显示选项:显示 ATM 提供的各种选项,此事件流中客户选择“取款” (6)输入取款金额:客户输入取款金额 (7)验证金额:ATM 验证输入的金额数是否有效,包括输入金额是否超出银行规定的限额、ATM 内现金余额是否足够、输入金额是否有效,以及用户银行卡内账面余额是否足够等 (8)ATM 出钞:ATM 点钞并输出客户取款金额的现金 (9)客户提取现金 (10)ATM 显示选项:显示 ATM 机上可使用的各种选项。在此事件中用户选择“退卡” (11)返回银行卡:ATM 返回银行卡。用例结束。 在操作该系统时,用户可能会发生以下几种状况:银行卡失效、输入密码错误(还有输入机会)、输入密码错误(不再有输入机会)、卡中余额不足、机中余额不足、超过每日提款额度、输入金额非100倍数。 请使用场景法设计测试用例(前置条件:账户余额为6000,每日最高提款额度为5000)。
- 需求:某旅馆住宿系统支持房间网上预定业务。游客访问网站进行网上房间预定操作,选择合适的房间后,进行在线预定;此时,需要使用个人账号登录系统;待登录成功后,进行定金支付(定金金额为1天的房款);支付成功后,生成房间预订单,完成整个房间预定流程。采用场景法进行测试用例设计。
前置条件 | 1、房型--单人间(100元\天)、标间(150元\天) | 2、单人间已住满,其他房型有空余 | 3、已注册账号--zhangsan(123456) | 4、账号注册只能由英文字母与数字组成 |
- 有一个网络应用系统,现在需要测试用户在不同的软件环境下打开它时,能否正常允许。软件执行时的软件环境如下:
操作系统:Windows10、Linux; 浏览器:IE11、Chrome、FireFox; 语言:中文、英文、韩文。 请使用正交试验法设计测试用例。 http://support.sas.com/techsup/technote/ts723_Designs.txt 四、实验结果与分析 1、列出状态迁移图、状态迁移树与测试路径。 状态迁移图:  状态迁移树:  测试路径:
- 用户登录购票 -> 选择车次 -> 填写信息 -> 未支付 -> 已取消
- 用户登录购票 -> 选择车次 -> 填写信息 -> 未支付 -> 已支付 -> 已出票 -> 已使用
- 用户登录购票 -> 选择车次 -> 填写信息 -> 未支付 -> 已支付 -> 改签成功 -> 已出票 -> 已使用
- 用户登录购票 -> 选择车次 -> 填写信息 -> 未支付 -> 退票成功
2、列出基本流、备选流、场景与测试用例集。 基本流与备选流:
基本流 | 1. 用户插入银行卡 2. 验证银行卡 3. 输入密码 4. 验证密码 5. ATM显示选项 6. 用户选择取款 7. 输入取款金额 8. 验证金额 9. ATM出钞 10. 客户提取现金 11. ATM显示选项 12. 用户选择退卡 13. 返回银行卡 | 备选流1 | 输入密码错误(还有输入机会) | 备选流2 | 输入密码错误(不再有输入机会) | 备选流3 | 卡中余额不足 | 备选流4 | 机中余额不足 | 备选流5 | 超过每日提款额度 | 备选流6 | 输入金额非100的倍数 | 备选流7 | 银行卡失效 |
场景:
场景编号 | 场景描述 | 覆盖流 | 1 | ATM验证银行卡是否有效 | 备选流7 | 2 | 客户选择取款并输入非100的倍数金额 | 备选流6 | 3 | 客户选择取款并超过每日提款额度 | 备选流5 | 4 | 客户选择取款并ATM内现金不足 | 备选流4 | 5 | 客户选择取款并账户余额不足 | 备选流3 | 6 | ATM验证用户输入的密码 密码错误,提示重新输入 | 备选流2 | 7 | ATM验证用户输入的密码 密码错误超过3次,锁定银行卡 | 备选流1 | 8 | 客户提取现金 提取成功 | 基本流 |
测试用例集:
用例编号 | 场景编号 | 账号(有效\失效) | 输入金额 | ATM机内金额 | 预期结果 | 1 | 8 | 有效 | 100 | 4000 | 成功取款 | 2 | 7 | 有效 | 200 | 4000 | 密码错误超过3次,锁定银行卡 | 3 | 6 | 有效 | 200 | 4000 | 密码错误,提示重新输入 | 4 | 5 | 有效 | 5000 | 4000 | 账户余额不足,取款失败 | 5 | 4 | 有效 | 20000 | 4000 | ATM内现金不足,取款失败 | 6 | 3 | 有效 | 6000 | 6000 | 超过每日提款额度,取款失败 | 7 | 2 | 有效 | 133 | 4000 | 输入金额非100的倍数,取款失败 | 8 | 1 | 失效 | 300 | 4000 | 验证有效银行卡失败 |
3、列出基本流、备选流、场景与测试用例集。 基本流与备选流:
基本流 | 1.选择有空余的房型进行预定 2.账号成功 3.支付定金成功 4.生成预订单 | 备选流1 | 房型已满,无法预定 | 备选流2 | 未登录状态下无法进行预定 | 备选流3 | 账号或者密码错误 未完成登录 | 备选流4 | 支付失败,无法完成预定 |
场景:
场景编号 | 场景描述 | 覆盖流 | 1 | 客人预定标间 | 基本流 | 2 | 客人预定单人房但已满 | 备选流1 | 3 | 客人未登录状态下尝试预定 | 备选流2 | 4 | 客人登录时 账号或者密码错误 | 备选流3 | 5 | 客人支付失败 | 备选流4 |
测试用例集:
用例编号 | 场景编号 | 房间类型 | 账号 | 密码 | 账户余额 | 预期结果 | 1 | 1 | 标间 | zhangsan | 123456 | 足够 | 预定成功,生成预订单 | 2 | 2 | 单人间 | zhangsan | 123456 | 足够 | 提示单人间已满,预定失败 | 3 | 3 | 标间 | 无 | 无 | 无 | 提示需登录账号才能预定,预定失败 | 4 | 4 | 标间 | Yanqing | 123456 | 足够 | 提示账号或密码错误,登录失败,预定失败 | 5 | 5 | 标间 | zhangsan | 123456 | 不足 | 提示账户余额不足,支付失败,预定失败 |
- 选择合适的正交表,列出测试用例集。
用例编号 | 操作系统 | 浏览器 | 语言 | 1 | Windows10 | IE11 | 中文 | 2 | Windows10 | Chrome | 英文 | 3 | Windows10 | FireFox | 韩文 | 4 | Linux | IE11 | 英文 | 5 | Linux | Chrome | 韩文 | 6 | Linux | FireFox | 中文 | 7 | Windows10 | IE11 | 韩文 | 8 | Windows10 | FireFox | 英文 | 9 | Linux | Chrome | 中文 |
|