转账功能分析:
通过选择付款账号、填写转账金额、输入收款账户(含收款账号、收款人姓名、开户行)以及其他附加信息(手机号、备注等),填写好之后,进入安全认证页面选择安全工具、填写安全密码,最后提交转账。
测试分析与设计思路:
1.正常流程类设计(确保系统实现了业务需求)
2.异常流程类设计(确保边界等异常均做出了必要的限制)
3.其他考查点(如转账还会涉及手续费、汇路选择等)
4.输入框验证类
5.用户体验等非功能考查
详细测试分析如下:
- 付款账号、金额、收款账号、安全认证全部输入正确的,可以转账成功
1.1 付款账号是借记卡,也可以是活期存折
1.2 金额在(0,余额]之内,同时需要对边界值进行设计
1.3 收款账号、收款人姓名、开户行需要全部对应
1.4 如果收款账号是行内账号,只需要进行账号与姓名的匹配即可,系统不再需要选择开户行信息
1.5 收款账号需要考虑:行内账号,跨行转账,同城、异地转账,借记卡、信用卡账号,同名账户(本人,本行)。转活期存折、转定期存折(变定期)转定期存单(不能)
1.6 安全认证:U盾(插入U盾输入密码),手机验证码(发短信到手机,输入验证码进行验证)
2.转账无效/失败的情况说明:
2.1 付款账号金额不够、即转账金额大于账户余额
2.2 信用卡不能转出,定期存折不能转出。一般会在账号选择的时候,进行屏蔽。
2.3 转出账户被销户,冻结、挂失等异常状态,不能转出。
2.4 小于0,等于0要测试,为非数字(该不是重点)
2.5 转入账户:收款账号,收款人姓名,开户行三者的任意不匹配
2.6 正常状态、挂失状态的卡可以转入,冻结、销户卡(不存在的卡)不能转入
2.7 U盾密码错误、使用别人的U盾,验证码错误、超时、为空都会转账失败 3.特殊的业务场景(手续费相关)
3.特殊的业务场景(手续费相关)
3.1 手续费XXX封顶(比如50元封顶)
3.2 最低手续费(比如最低收1元)
3.3 手续费折扣(头3笔免手续费,手续费5折)
4.其他特殊场景:
4.1 转账当时限额、单笔限额(具体安全认证工具有关)
4.2 转对公账号
4.3 转账汇路考虑,普通转账,实时转账的测试
4.4 转入帐户与转出帐户相同(转帐失败)
4.5 转帐超时导致转帐失败
5.输入验证框和用户体验等非功能考虑
转账交易测试点
1、金额字段的校验:非数字、sql相关字符、负数、边界值与数据库设计长度,为空是否报错,必输项校验;
2、金额最小单位计算时进位错误:0.00,0.01分,0.05分无法加减或无法从数据库中取到;
3、转账金额大于、等于、小于当前余额;
4、系统间百分制是否转换正确:有以元为单位,有以分为单位;
5、有转账限额时(每日、预警、每月),在转账超时是否占用限额;
6、流水号长度超过数据库设计最大长度;
7、流水号重复参数控制:不允许重复,返回重复报错;允许重复,返回本地之前交易结果,本地结果不明则上主机查证后返回;
8、流水号批量读取放入内存(需要验证重启服务后,流水号读取是否正确),用完后再批量读取,日切时与最大流水号对比,达到最大值进行初始化是否正确;
9、并发时流水号是否正确生成;
10、不同数据库、不同浏览器;
11、手续费2种扣款方式:一种为内扣,即实际转账金额=转账金额-手续费;一种为外扣;
12、转账由于事务(手动与定时任务并发)对同一笔转账处理2次;
13、数据链路通讯异常:1)连接核心失败;2)核心返回应答超时;3)连接第三方失败;4)第三方返回应答超时;
一般冲正需要先考虑冲正通讯出现异常的一方,在保证异常方冲正成功后,才去冲正另一方;