原文:支付系统测试 - 知乎

前面的文章里讲了接口测试通用的一些方法,同样也适用于支付系统,下面的内容为上一篇接口测试的补充,实际项目中都需要覆盖到,上篇文章有的下面就不赘述了。上文的链接 接口测试没思路?一篇教你搞定面试_houge呀的博客-CSDN博客。下面文章主要从支付系统设计入手进行测试,针对界面功能测试容易忽略但是又十分重要的逻辑。关于支付密码、验证码、银行卡绑定等等能从界面入手测试的,下文也不讲述,如果有兴趣可以留言,后面整理。

1、APP支付结果查询是否合理

假设你测试的系统支持微信支付,在微信支付成功点击完成返回被测APP,这时候APP的订单状态需要更新,就会向服务器发起查询,如果因为网络问题没查到返回结果,APP需要展示给用户一个支付处理中的页面,请用户等待并再次发起查询,但是这个等待和查询不能是无期限的,需要有次数限制,如果最后还是没有查询到,需要提示用户稍后查询,如果查询到支付结果,则需要展示给用户对应的结果。

2、通知接口测试

如果是支付的时候微信系统因为某些问题不能及时把支付结果给到我们的系统,那么在微信在处理好支付订单的时候通常会给我们的系统发通知,告知这笔订单的状态,服务器拿到通知后更新数据库,客户端再发起查询的时候就可以拿到支付结果了,如果通知接口有问题,那就无法正常处理微信的支付通知。这个接口测试通常是RPC接口,可能需要开发帮忙模拟。

3、定时任务

除了靠微信调回调接口进行通知外,支付系统还需要设置定时任务去定时同步订单,商户系统需要有定时任务去查询支付系统,支付系统也需要有定时任务查询渠道系统,可以通过把数据库的订单状态由终态手动改为中间态,然后触发定时任务,看是否能同步到终态,如在数据库把支付完成的订单改成支付中,再去触发定时任务,查看是否能再同步为支付成功

4、金额计算&取整

有些支付系统涉及到抽佣,一笔支付订单可能会付到不同的账户中,如果又涉及到部分退款的情形,金额的计算就会比较复杂,计算是先乘后除,还是先除后乘,保留是四舍五入保留,还是向上取证还是向下取整呢。假设有这样一个场景,用户向商家支付0.66元,系统用的单位是分,那就是66分,平台抽成33分,如果这时候用户申请退款80分,那这80分怎样从商家和平台出款呢?

如果是先除后乘,再四舍五入那就是:80/(33+66)≈0.8, 商家退:66*0.8=52.8≈53, 平台退 33*0.8=26.4≈26,那么问题来了,53+26=79,少退了一分,这里因为先除后乘,在除的时候损失了精度,再乘以一个数值,损失的精度就更大了

如果是先乘后除,保留一样的小数点再四舍五入,就可以避免这个问题了。但是也要注意,先乘后除,会不会溢出呢?如果再采用向上取整或者向下取整,也会有问题,所以涉及到金额,除了考虑单位外,还要考虑合适的取整和计算方法,不然都会导致精度丢失

5、订单超时处理

如果用户一直没有支付,商户系统和支付系统都需要及时将订单置为关闭的终态,否则定时任务仍然会去查询,浪费系统资源。

除了超时关闭外,定义的订单的各种状态都需要覆盖对应的场景去测试

6、退款

如果订单未支付、支付中、支付失败、订单关闭、退款成功,则都不能退款成功,退款时需要查询订单的状态,校验退款的金额,不能支付50,但是申请退款100

7、优惠券、红包超发

在出现大量并发请求时,优惠券和红包发放是否存在线程安全问题,可以通过写一个多线程并发请求脚本或性能测试工具来发起大量并发请求

8、账户异常

支付账户被冻结、被风控、余额不足的情况,系统需要给出对应的返回

如果觉得对你有帮助可以点个赞哦~~转载请注明出处~~

软件测试面试之支付系统测试相关推荐

  1. 软件测试面试python一般会问什么问题_软件测试面试一定会问到的面试问题

    原标题:软件测试面试一定会问到的面试问题 软件测试面试官会如何刁难你和都会问到什么问题? 我剖析下面试不同的岗位问的问题,不同岗位问的肯定是不一样的,那么我先从初级开始 分为三个等级,就是初级怎么去面 ...

  2. 万人总结的软件测试面试简历及软件测试面试题

    一.前言:浅谈面试 面试是我们进入一个公司的门槛,通过了面试才能进入公司,你的面试结果和你的薪资是息息相关的.那如何才能顺利的通过面试,得到公司的认可呢?面试软件测试要注意哪些问题呢?下面和笔者一起来 ...

  3. 软件测试缺陷报告单怎么填,软件测试面试:件测试报告该怎么写?

    原标题:软件测试面试:件测试报告该怎么写? 一.什么是测试报告? 测试报告是指把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,同时为软件验收和交付打下基础. ...

  4. ❤️40条软件测试面试常考题目总结(附答案解析)【建议收藏】❤️

    40条软件测试面试常考题目总结,话不多说上干货~ (附答案解析) 1 开发犯低级错误怎么办? 开发首先要规范好编码,出低级错时不要指责,内心指出错误.让他们自己进行测试,反思找出错误. 2 你进行过哪 ...

  5. 软件测试面试刷题app包含了各种难题

    软件测试的生命周期: V模型:与软件开发阶段呼应 软件开发:需求分析-->概要设计-->详细设计-->编码阶段 软件测试:单元测试-->集成测试-->系统测试--> ...

  6. 软件测试面试之接口测试

    我的知乎原文在这里 https://zhuanlan.zhihu.com/p/538210976 服务器接口包含服务端对服务端接口,如项目中RPC接口或dubbo接口,还有面向APP的接口,但是两种接 ...

  7. 软件测试面试八股文有必要背吗?看完这份101问真的贼香

    前言 2022秋招过半,很多同学会问软件测试面试八股文有必要背吗? 我的回答是:很有必要.你可以讨厌这种模式,但你一定要去背,因为不背你就进不了大厂. 国内的互联网面试,恐怕是现存的.最接近科举考试的 ...

  8. 2022最新出炉的软件测试面试宝典附答案

    一.引言 1.1 文档目的 本次文档是为了收集在面试中遇到的一问题与常见的一些答案并不是唯一答案 二.职业规划 2.1 简单的自我介绍下 面试宫,您好,我叫 XXX,来自于 XXXX,目前从事软件测试 ...

  9. 软件测试面试关于压力测试,软件测试面试题目

    软件测试面试题目 1.   软件测试的分类? 2.   怎么才能够全面的测试到每一个点? 3.   基于web信息管理系统测试时应考虑的重要因素有哪些? 4.   集成测试通常都有那些策略? 5.   ...

最新文章

  1. 找出两个字符串中最长的相同子字符串
  2. SpringBoot中logback日志保存到mongoDB
  3. 使用scanf()函数接收带空格的字符串
  4. asp:UpdatePanel中使用下拉时不得不注意的问题
  5. idea 删除 output directory文件_郑州Java培训新手必知的IDEA高频快捷键
  6. SpringMVC学习(五)处理前端的请求参数及数据回显
  7. Nginx 安装 启动 停止 重启
  8. css样式基础库,WeUI基础样式库
  9. 2011浙江省公务员考试申论大作文的写作
  10. USB OTG(Host) 、 USB ADB(Device)、DWC3 Charge
  11. 红米K40 面具root教程
  12. 斐讯路由器宽带运营商服务器,斐讯(PHICOMM)路由器
  13. python listdir 忽略 隐藏文件_忽略特殊文件
  14. 【职业规划】第一篇:程序员分级之初级程序员
  15. 游戏行业比影视行业哪个更有前景?来看数据说话!
  16. 2021年中国网络零售行业发展现状及行业发展趋势分析[图]
  17. 赛场计算机配置要求,S9 世界赛打响 啥配置的电脑才能进决赛?
  18. F5负载均衡、Juniper防火墙等设备取消CLI分页的命令
  19. 什么是像ANSI和Unicode这样的字符编码,它们有何不同?
  20. 自定义View 篇四《低仿QQ测拉删除》

热门文章

  1. 大二寒假生活与学习草记
  2. 数据屏蔽:静态与动态
  3. 微信打通腾讯地图 提供地图API接口
  4. Mysql数据库磁盘扩容
  5. Python之路 33:进程与线程概念及基础使用
  6. 基于DCT变换图像去噪算法的进一步优化(100W像素30ms)
  7. c++QT笔记,windows毛玻璃窗口实现封装
  8. 你告诉我,读书没有用
  9. 二叉树C++实现数据结构实验
  10. PyTorch expand() 函数