1. 设计登录页面测试用例
对登录模块进行测试时,尽可能全面地测试登录功能的正常和异常情况(请分别在表1、表2中填写等价类划分和测试用例)。
(1)账号4~10个字母。
(2)密码6-12位数字。
(3)账号、密码不能为空。
使用弱健壮等价类划分方法,设计测试用例。
表1 等价类划分
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
账号 | 4-10个字母 | A1 | 小于4个字母 | B1 |
大于10个字母 | B2 | |||
包含非字母字符 | B3 | |||
账号为空 | B4 | |||
密码 | 6-12位数字 | A2 | 小于6位数字 | B5 |
大于12位数字 | B6 | |||
包含非数字字符 | B7 | |||
密码为空 | B8 |
表2测试用例
用例编号 | 操作 | 输入数据 | 预期输出 | 覆盖等价类 |
1 | 正常登录 | 账号:abcdefg;密码:123456 | 登录成功 | A1A2 |
2 | 正常登录 | 账号:abcdefgh;密码:1234567 | 登录成功 | A1A2 |
3 | 正常登录 | 账号:abcdefgh;密码:12345678 | 登录成功 | A1A2 |
4 | 正常登录 | 账号:abcdefgh;密码:12345678 | 登录成功(重复输入) | A1A2 |
5 | 异常登录 | 账号:abcde;密码:123456 | 登录失败(账号不符合规则) | B1 |
6 | 异常登录 | 账号:abcdefgh;密码:12345 | 登录失败(密码不符合规则) | B5 |
7 | 异常登录 | 账号:abcdefgh;密码:123456a | 登录失败(密码不符合规则) | B7 |
8 | 异常登录 | 账号:abcdefgh;密码: | 登录失败(密码为空) | B8 |
9 | 异常登录 | 账号: 密码: | 登录失败(账号密码为空) | B4B8 |
10 | 异常登录 | 账号: 密码:123456 | 登录失败(账号为空) | B4 |
11 | 异常登录 | 账号:abcdefgh;密码:123456789 | 登录失败(密码长度超过) | B6 |
12 | 异常登录 | 账号:abcdefgh;密码:12345678 | 登录失败(重复输入) | A1A2 |
2. 使用等价类划分法,为保险公司计算保费费率的程序设计测试用例。
某保险公司的人寿保险的保费计算方式为:投保额×保险费率
其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表3所示。
表3保险公司计算保费费率的规则
年龄 | 性别 | 婚姻 | 抚养人数 | |||||
20~39 | 40~59 | >99 | 其它 | M | F | 已婚 | 未婚 | 1人扣0.5点 最多扣3点 (四舍五入取整) |
6点 | 4点 | 不受理 | 2点 | 5点 | 3点 | 3点 | 5点 |
分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类),分别计算出弱一般、弱健壮、强一般、强健壮法进行测试需要的测试用例个数,并用弱健壮性法设计测试用例。
表1 等价类划分
输入条件 | 有效等价类 | 编号 | 无效等价类 | 编号 |
年龄 | 大于59岁或小于99 | A7 | 小于0岁 | B4 |
20-39岁 | A1 | |||
小于20岁或大于59岁 | A8 | 大于99岁 | B2 | |
小于20岁 | A9 | |||
性别 | 男性M | A2 | 其他性别 | B6 |
女性F | A3 | |||
婚姻状况 | 已婚 | A4 | ||
未婚、丧偶、离异 | A5 | |||
抚养人数 | 0-6人 | A6 | 大于9人 | B5 |
大于6人 | A10 |
弱一般、弱健壮、强一般、强健壮法进行测试需要的测试用例个数
测试用例个数 | |
弱一般法 | 4 |
弱健壮法 | 10 |
强一般法 | 24 |
强健壮法 | 270 |
表2测试用例
用例编号 | 操作 | 输入数据 | 预期输出 | 覆盖等价类 |
1 | 正常情况 | 年龄:25;性别:男;婚姻:已婚;抚养人数:1 | 保费计算正确 13.5-0.6% | A1A2A3A4A5A6 |
2 | 正常情况 | 年龄:30;性别:女;婚姻:未婚;抚养人数:0 | 保费计算正确 13.5-0.6% | A1A2A3A4A5A6 |
3 | 正常情况 | 年龄:18;性别:男;婚姻:已婚;抚养人数:1 | 保费计算正确 6.5-0.1% | A9 |
4 | 正常情况 | 年龄:60;性别:男;婚姻:已婚;抚养人数:1 | 保费计算正确 8-0.1% | A7 |
5 | 正常情况 | 年龄:50;性别:男;婚姻:已婚;抚养人数:7 | 保费计算正确 9-0.1% | A10 |
6 | 异常情况 | 年龄:100;性别:男;婚姻:已婚;抚养人数:3 | 保费计算错误(年龄不符合规则) | B2 |
7 | 异常情况 | 年龄:-3;性别:男;婚姻:未婚;抚养人数:0 | 保费计算错误(年龄不符合规则) | B4 |
表2测试用例(弱健壮性法设计测试用例)
用例编号 | 操作 | 输入数据 | 预期输出 | 覆盖等价类 |
1 | 正常情况 | 年龄:25;性别:男;婚姻:已婚;抚养人数:1 | 保费计算正确 13.5-0.6% | A1A2A3A4A5A6 |
2 | 正常情况 | 年龄:30;性别:女;婚姻:未婚;抚养人数:0 | 保费计算正确 13.5-0.6% | A1A2A3A4A5A6 |
3 | 正常情况 | 年龄:18;性别:男;婚姻:已婚;抚养人数:1 | 保费计算正确 6.5-0.1% | A9 |
4 | 正常情况 | 年龄:60;性别:男;婚姻:已婚;抚养人数:1 | 保费计算正确 8-0.1% | A7 |
5 | 正常情况 | 年龄:50;性别:男;婚姻:已婚;抚养人数:7 | 保费计算正确 9-0.1% | B3 |
6 | 异常情况 | 年龄:100;性别:男;婚姻:已婚;抚养人数:3 | 保费计算错误(年龄不符合规则) | B2 |
7 | 异常情况 | 年龄:23;性别:男;婚姻:已婚;抚养人数:10 | 保费计算错误(抚养人数不符合规则) | B5 |
8 | 异常情况 | 年龄:10;性别:未知;婚姻:未婚;抚养人数:0 | 保费计算错误(性别不符合规则) | B6 |
3. NextDate函数包含3个变量,即年份(year)、月份(month)和日期(day),函数的输出为输入日期的后一天。在NextDate函数中,隐含规定了变量year为1812≤year≤2022;变量month为1≤month≤12;而变量day的取值范围有几种不同的情况,可能为1≤day≤28,1≤day≤29,1≤day≤30或1≤day≤31。现用一般边界值测试方法和边界值健壮性测试方法设计测试用例。
一般边界值测试方法:
测试用例编号 | 输入年份 | 输入月份 | 输入日期 | 输出 |
1 | 1812 | 1 | 1 | 1812-01-02 |
2 | 2022 | 12 | 31 | 2023-01-01 |
3 | 1812 | 2 | 28 | 1812-03-01 |
4 | 1812 | 2 | 29 | 1812-03-01 |
5 | 2022 | 4 | 30 | 2022-05-01 |
6 | 2022 | 7 | 31 | 2022-08-01 |
7 | 1812 | 1 | 28 | 1812-02-28 |
8 | 1812 | 4 | 31 | 1812-05-01 |
9 | 2022 | 10 | 31 | 2022-11-01 |
边界值健壮性测试方法:
测试用例编号 | 输入年份 | 输入月份 | 输入日期 | 输出 |
1 | 1812 | 1 | 29 | 1812-02-28 |
2 | 1812 | 2 | 30 | 1812-03-01 |
3 | 1812 | 3 | 31 | 1812-04-01 |
4 | 2022 | 1 | 31 | 2022-02-01 |
5 | 2022 | 2 | 28 | 2022-03-01 |
6 | 2022 | 12 | 30 | 2023-01-01 |
7 | 1812 | 6 | 31 | 1812-07-01 |
8 | 2022 | 11 | 30 | 2022-12-01 |
9 | 2022 | 12 | 31 | 2023-01-01 |
4. 有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角的硬币,按下“可乐”“雪碧”或“绿茶”按钮,相应的饮料就送出来;若投入2元钱的硬币,同样也是按下“可乐”“雪碧”或“绿茶”按钮,则在送出相应饮料的同时退回5角钱的硬币。采用基于因果图的方法设计决策表,并设计测试用例。
原因:①投入1元5角硬币②投入2元硬币③按“可乐”按钮④按“雪碧”按钮
⑤按“绿茶”按钮
中间状态:①已按钮②已投币
结果;①退还5角②送出“可乐”饮料③送出“雪碧”饮料④送出“绿茶”饮料
根据原因和结果列出因果如下:
由因果图得出决策表:
决策表
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
输入 | 投入1元5角硬币 | (1) | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
投入2元硬币 | (2) | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | |
按“可乐”按钮 | (3) | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | |
按“雪碧”按钮 | (4) | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | |
按“绿茶”按钮 | (5) | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 | |
中间 | 已投币 | (11) | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
已按钮 | (12) | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | |
输出 | 退还5角硬币 | (21) | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 |
送出“可乐”饮料 | (22) | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | |
送出“雪碧”饮料 | (23) | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | |
送出“绿茶”饮料 | (24) | 0 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
等价类划分:
输入条件 | 有效等价类 | 编号 |
投币 | 投入1元5角硬币 | A |
投入2元硬币 | B | |
按钮 | 按“可乐”按钮 | a |
按“雪碧”按钮 | b | |
按“绿茶”按钮 | c | |
输出结果 | 退还5角硬币 | W |
送出“可乐”饮料 | X | |
送出“雪碧”饮料 | Y | |
送出“绿茶”饮料 | z |
测试用例表:
测试用例编号 | 输入 | 输出 |
1 | Aa | X |
2 | Ab | Y |
3 | Ac | X |
4 | Ba | WX |
5 | Bb | WY |
6 | Bc | WZ |
7 | A | 无 |
8 | B | 无 |
9 | a | 无 |
10 | B | 无 |
11 | c | 无 |