2017年真题:
某银行B和某公司C发行联名信用卡
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
【说明】
某银行B和某公司C发行联名信用卡,用户使用联名信用卡刷卡可累计积分,积分累计规则与刷卡金额和刷卡日期有关,具体积分规则如表2-1所示。此外,公司C的会员分为普通会员、超级会员和PASS会员三个级别,超级会员和PASS会员在刷卡时有额外积分奖励,奖励规则如表2-2所示。
表2-1 积分规则| 刷卡日期 | 积 分 |
|---|---|
| 每月9日、19日 | 刷卡金额小数部分四舍五入后的2倍 |
| 11月11日 | 刷卡金额小数部分四舍五入后的6倍 |
| 12月12日 | 刷卡金额小数部分四舍五入后的4倍 |
| 其他日期 | 刷卡金额小数部分四舍五入 |
| 会员级别 | 普通会员 | 超级会员 | PASS会员 |
|---|---|---|---|
| 级别代码 | M | S | P |
| 额外积分奖励 | 0% | 100% | 200% |
银行B开发了一个程序来计算用户每次刷卡所累积的积分,程序的输入包括会员级别L、刷卡日期D和刷卡金额A,程序的输出为本次积分S。其中,L为单个字母且大小写不敏感,D由程序直接获取系统日期,A为正浮点数最多保留两位小数,S为整数。
【问题1】(5分)
采用等价类划分法对该程序进行测试,等价类表如下表所示,请补充表2-3中空(1)~(5)。
表2-3 等价类| 会员级别 | 有效等价类 | 编号 | 无效等价类 | 编号 |
|---|---|---|---|---|
| 会员等级L | M | 1 | 非字母 | 9 |
| S | 2 | 非单个字母 | 10 | |
| (1) | 3 | (4) | 11 | |
| 刷卡日期D | 每月9日、19日 | 4 | ||
| 11月11日 | 5 | |||
| (2) | 6 | |||
| 其他日期 | 7 | |||
| 刷卡金额A | (3) | 8 | 非浮点数 | 12 |
| (5) | 13 | |||
| 多余2位小数的正浮点数 | 14 |
(1)答案
(1):P
(2):12月12日
(3): 正浮点数带2位小数
(4): M/S/P之外的单个字母
(5): 非正的浮点数
【问题2】(9分)
根据以上等价类表设计的测试用例如下表所示,请补充表2-4中空(1)~(9)。
| 编号 | 输入 | 覆盖等价类(编号) | 预期输出S | ||
|---|---|---|---|---|---|
| L | D | A | |||
| 1 | M | 1月9日 | 500.25 | 1,4,8 | (1) |
| 2 | S | 11月11日 | (2) | 2,5,8 | 6000 |
| 3 | P | 12月12日 | 500 | (3) | 6000 |
| 4 | P | (4) | 500 | 3,7,8 | 1500 |
| 5 | (5) | 其他日期 | 500 | 9,7,8 | N/A |
| 6 | 非单个字母 | 其他日期 | 500 | 10,7,8 | (6) |
| 7 | (7) | 其他日期 | 500 | 11,7,8 | N/A |
| 8 | M | 其他日期 | 非浮点数 | (8) | N/A |
| 9 | M | 其他日期 | 非正浮点数 | 1,7,13 | N/A |
| 10 | M | 其他日期 | (9) | 1,7,14 | N/A |
(2)答案
(1)1000
(2)500.25
(3)3,6,8
(4)其他日期
(5)非字母
(6)N/A
(7)M/S/P之外的单个字母
(8)1,7,12
(9)多余2位小数的正浮点数
【问题3】(6分)
如果规定了单次刷卡的积分上限为20000(即S取值大于等于0小于等于20000),则还需要针对S的取值补充一些测试用例。假设采用等价类划分法和边界值分析法来补充用例,请补充表2-5、表2-6中的空(1)-(6)。
表2-5补充等价类| 编号 | 等价类 |
|---|---|
| 1 | 0<= S <= 20000 |
| 2 | (1) |
| 3 | (2) |
| 编号 | 边界值 |
|---|---|
| 1 | S = 20000 |
| 2 | (3) |
| 3 | (4) |
| 4 | S=0 |
| 5 | (5) |
| 6 | (6) |
(3)答案
(1)S<0
(2)S>20000
(3)S = 19999
(4)S = 20001
(5)S = -1
(6)S = 1