一、支付测试全流程
软件测试点分析基本原则——通用
- 第一步:先了解产品的基本的业务流程逻辑:是个什么项目,做什么的,怎么工作的?
-
画出流程图,业务逻辑梳理
-
- 第二步:细分模块,针对每个小功能模块进行详细的划分:
-
正常:覆盖正常核心业务流程--优先测试? ? --单个功能冒烟测试
-
异常:各种异常? ? --贴近用户使用场景,确保产品正确处理,提示友好!
-
注意:确保不遗漏,列出输入项异常输入项
-
-
- 第三步:针对具体功能,寻找每个输入项,从以下角度来具体分析测试点
-
长度,数据类型,必填项,重复
-
需求的约束条件 + 隐形需求
-
结合业务流程的步骤
-
- 第四步:考虑非功能测试点包括界面、易用性、兼容性、安全性、性能压力
===========================================
二、清分测试全流程
1、什么是清分?清分的规则是什么?
2、清分如何测试?
测试点:
1、清分的时间,实时清分(数据库订单状态、清分明细)2、清分明细表(记录各个角色应该拿多少钱)
3、通过定时任务(2分钟清分一次,批处理)
4、同一笔订单只能清分一次(订单号)
5、精度问题(清分计算规则)
会计:资产=负债+所有者权益
1、四舍五入(账对不齐)
2、银行家算法(账对不齐)3、兜底算法
3、兜底算法
6、算法取值,计算过程是否有误
7、测试技巧:通过excel精准设置好公式,直接往excel填对应的数据即可
3、为什么要对账
4、如何对账
对账的逻辑:
1、以自己平台为准和上游平台的订单进行对账,(支付时间、订单号、支付状态(支付成功)、金额)
2、以上游平台的订单为准,和自己平台进行对账
3、支付对账、退款对账
4、对账执行时间:凌晨执行对账任务,设置了定时任务的
5、开始对账--是否有挂账(在7天之内去找掉单的数据进行对账)--是否掉单(在7天之内去找掉单的数据进行对账)---对账完成
测试点:
1、对账结果:对平、挂账(我们平台有订单,上游无订单)、掉单(我们平台没有上游有,平台未存储订单信息)
2、日切场景:在我们平台23:59:59,到上游第二天,数据构造(修改数据库、修改服务器的时间)
3、销账
4、重复对账(支持),先删除(逻辑删除)当天的所有的对账数据,重新对账
5、定时任务写的有没有问题(能否正确触发定时任务)
6、对账性能(10万条账单,10分钟以内完成对账)
7、对账单的解析:上游订单一般通过文件形式放到一个服务器上面,解析正常、解析异常
8、管理端的数据统计
5、什么是结算?如何结算?结算如何测试?
流程:
支付环节:商户入网---对商户进行配置(支付方式、支付渠道)---商户激活收款码---发起支付---清分---对账---结算
支付后环节:商户提现(渠道提现、地推提现)---退款(商户)
逻辑:
结算:平台做垫资结算(信息流来进行垫资),为了垫资而作的结算,提升用户体验
结算维度:机构(微信、支付宝、京东、美团)、渠道(进件商户公司)、商户(大商户);好处:能控制资金流
结算发起的:2次审核(运维审核、财务审核金额对不对) ---- 发起结算
结算逻辑:结算服务根据你的结算维度去获取对账结果,跟据对账结果(已经对账对平的订单)进行结算
测试点:
1、运营平台进行操作结算(前端做防多点),点一次发一个http请求,你网络卡重复触发结算按钮(弱网测试,狂点)
2、直接测后端接口:幂等校验(脚本并发)
后端实现:触发这个接口,提前请求一个接口,后端生成一个唯一的UUID给前端然后再带着这个UUID去发起结算请求,python也有UUID
3、重新结算(支持)
4、非待结算的订单进行结算(未审核的进行结算)'
5、未对账对平的订单进行结算(不支持)
6、批量结算(支持)
7、结算性能(时间不能太长,五分钟)
8、各种维度都要进行结算测试,(混合维度不支持)
9、金额精度(0.99,100.99,负数,0)
10、结算一定要稳定,容错性要强(服务器原因挂掉了),恢复数据,数据库事务触发结算之前先备份结算相关的表数据
6、清分、对账、结算是什么关系
测试点:
1、清分:做告警处理,清分异常了
2、对账:对清分数据进行校验(对比支付笔数,如果笔数差距太大,就没必要对账,触发告警机制(没对平的超过多少笔、未对平金额超过多少))、钉钉消息通知、微信消息通知、邮件、对账报错的日志
3、结算:容错处理,对账结果混乱了(只要发现对账有金额有问题的,马上停止结算,回滚已经结算的数据)
4、整个平台
1、各个页面的数据统计工准确性,一致性
2、财务报表