接口测试——将入参检查与业务逻辑分离
需求“实现从节点1到节点2的资金划拨功能,通过新增接口,节点1发起资金划入,资金划出的请求来实现”。
已知类似的资金调整功能小数点后保存3位,假设最大可划拨金额=MIN(资金可用-预留金额,资金当余额-预留金额),假设接口的入参有资金账号,划转金额,划转方向及其他等。
开始写测试要点的时候,把重心一下子放在了业务逻辑上,思路不够明确,觉得混乱总是想调整要点顺序,思考哪里遗漏又不按章法。
下班路上反思了一下:应该采用接口入参检查与接口业务功能分离进行测试:
(一)接口入参检查
定位:属于数据测试,首先明确入参限制:数据类型(字符,整型,浮点型),取值范围(正数,字典范围内)等:
1.资金账户(整型,长度限制,必须在资金表存在,资金账户必须已经推送到节点2):输入正确,输入为空,输入资金账户不存在,输入资金账户没推送,输入资金账户超出最长字长
2.划转金额:(浮点数,正数,不允许输入超过三位小数):输入正确,输入为空,输入为负数,输入为0,输入999.9999.
3.划拨方向:(字符型,字典限制只能0或1):输入正确,输入为空,输入非法不在字典项内,输入多个字符
(二)接口业务功能,明确有多少个要点
最大可划拨金额=MIN(资金可用-预留金额,资金当余额-预留金额)
(1)算法1:划拨金额由最大可划拨金额作为阈值限制,划拨金额>=阈值:等价划分与边界值分析
资金可用为1000,资金余额为000,预留金额为0的前提下,阈值:最大可划拨金额=1000;
划出金额<阈值,500
划出金额=阈值,1000
划出金额取边界值下限:999.999
划出金额取边界上限:1000.001
(之前划出金额为999.999,为负数,为0属于接口入参检查范畴,在这里省去,更加清晰)
(2)算法2:最大可划拨金额=MIN(资金可用-预留金额,资金当余额-预留金额)
资金可用900<资金余额1000,预留金额10,划出890成功;、
资金可用900<资金余额1000,预留金额10,划出900失败;
资金可用1000>资金余额900,预留金额10,划出890成功;、
资金可用1000>资金余额900,预留金额10,划出900失败;
(3)构造可能计算的恶略环境
最大可划拨金额为0(资金可用为0,资金余额为0),划出1000:
最大可划拨金额为负数(资金可用为-1000,资金余额为-1000),划出1000: