给你一个扫码支付的二维码,如何写测试用例?

前言

面试的时候,经常会临场出题:给你一个xxx, 如何测试, 或者说如何写测试用例?xxx可以是圆珠笔,水杯,电梯等生活中常见的场景。

那么给你一个支付的二维码,如何写测试用例呢?

二维码扫码支付

如下图,给你这个个人收款的二维码,如何测试?

首先要知道什么是二维码? 二维码实际上就是一个 url 地址,当手机扫码后,会根据二维码上的黑和白(黑色的色素块代表1,白色的色素块代表0)区域解析成 url 地址。

  然后再分析下使用场景,这里实际上涉及到一个收款方,一个支付方。收款方生成二维码,支付方拿着手机去扫码。

  知道使用场景了,接着拆分功能点,从字面上"二维码扫码支付", 这7个字可以拆分成3个关键字:二维码,扫码,支付。

  二维码场景用例

  针对二维码写用例,可以分:

  1.生成的二维码是不是能正确识别,支付方拿着手机能扫的出来。

  2.二维码的准确性,扫码后的功能对不对(本来是收款码,要是生成付款码,那就不对了)。

  3.二维码的尺寸,清晰度。

  4.二维码是否会变(一般收款码不会变,付款码会定时刷新)。

  扫码场景

  扫码是支付方的使用场景了。

  1.网络环境,无网络的时候,二维码还能不能扫。

  2.扫码的时候,是能自己输入金额,还是固定的支付金额(个人收款是用户随便输入金额,生成的订单扫码是固定金额)。

  3.如果是商户生成的固定的订单,用户是否可以串改金额?

  4.如果是商户生成的固定的订单,用户支付后,能不能重复支付?

  5.多用户同时扫码支付场景,固定订单,只能被支付一次。

  支付场景

  关于支付场景就复杂了,虽然上面的是二维码扫码支付,其实核心功能在于支付,上面的各种扫码姿势都是停留在表面的点点点。

  支付金额场景:

  1.支付的金额是否可以为空,为0,负数。

  2.支付的金额最多几位小数,一般是2位小数,精确到分。

  3.单笔最大金额。

  4.单日最大金额。

  支付方式:

  1.支付方式:余额,余额宝,花呗,信用卡,银行卡。

  2.支付顺序,默认的支付顺序是怎样的(或者自己设置的支付顺序)。

  3.当第一个支付余额不足的时候,是否能默认用第二顺序的支付,依次类推。

  4.不同的支付方式,会有单笔限制,比如不同银行卡会有不同额度。

  支付密码:

  当用户选择了支付方式,支付金额后,下一步就是输入交易密码。

  1.密码支付,还是指纹支付,还是刷脸支付。

  2.密码正确,交易成功。

  3.密码错误,交易失败。

  4.交易失败后,是否能重新支付。

  5.用户取消支付。

  6.用户不支付,放着让它过期超时。

  支付状态:

  支付之后,那么就会有支付状态。

  1.支付失败,订单状态。

  2.支付成功,订单状态。

  3.用户取消支付,订单状态。

  4.支付超时,订单状态。

  对账:

  1.支付方支付成功后,钱是不是变少了。

  2.收款方收款后,是立即到账,还是延迟到账?

  3.收款方如果没网,对方支付成功后,下次联网是否能看到收款记录。

  4.当然支付宝还有语言播报:支付宝到账xx元。

  退款:

  支付方付款后,突然反悔了,那么此时就涉及到退款功能了。

  1.退款是原路返回,还是怎样的?

  2.立即到账,还是人工处理?

  3.退款时候有没有扣手续费?

  4.退款后,订单状态变更。

  手续费:

  说到手续费,如果对方是花呗,信用卡,那么就涉及手续费的问题。

  1.对方花呗,信用卡付款,手续费扣比例对不对?

  2.退款的时候,手续费会不会算你的?

  红包和券

  1.如果支付方有平台红包可以用,是否能抵扣平台红包,收款方不受红包影响。

  2.还有券的使用,满减券,是否能叠加,还是固定商品使用券。

  3.涉及退款的时候,这些红包和券是作废,还是原路返回。

  安全与性能

  安全和性能是最容易被忽略的,平常都是点点点的,拿着一个测试需求就想着怎么去点了,如果能回答安全和性能的方面是可以加分的。

  支付安全性:

  如果是一个固定金额的订单,比如100元订单,用户在扫码支付的时候,会从二维码中解析出支付金额。

  此时如果我抓包后,篡改了金额,比如改成0.01元了,是否能支付成功呢?

  一般这种订单接口都会有sign签名,防止用户篡改请求参数。

性能:

  说到性能,必然会扯到高并发,多用户同时调用支付接口并发,会不会有什么问题呢?

  这里的并发,不是多个人扫一个二维码,是整个系统比如支付宝用户有xx亿,在一分钟内有1000w用户在使用扫码支付,测试整个系统的性能。

  类似于给你一个xxx, 如何测试?这种问题不能停留在表面上,要有全局观,把它当成一个小的项目去测试。

  回答问题的思路从UI-功能-接口-业务-场景-安全-性能等方面回答。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/710553.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LDR6020显示器应用:革新连接体验,引领未来显示技术

一、引言 随着科技的飞速发展,显示器作为信息展示的重要载体,其性能和应用场景不断得到拓展。特别是在办公、娱乐以及物联网等领域,用户对显示器的需求越来越多样化。在这一背景下,LDR6020显示器的出现,以其卓越的性能…

[图解]《分析模式》漫谈04-Martin Fowler叫的是哪家的士

1 00:00:01,230 --> 00:00:04,190 今天我们来探讨一个有趣的话题 2 00:00:05,130 --> 00:00:08,350 Martin Fowler,他叫的是哪一家的的士 3 00:00:11,980 --> 00:00:15,240 第2章这里,Martin Fowler写 4 00:00:15,250 --> 00:00:18,550 他…

推荐一款mac截图利器

一、介绍 Longshot 是 macOS 上一款功能丰富的截图工具,它提供了多种截图方式和便捷的标注功能。主要包含以下功能特点: 多种截图方式:Longshot 支持区域截图、全屏截图、窗口截图以及滚动截图。 标注工具:提供了丰富的标注工具…

关闭kylin(麒麟)系统的安全认证(烦人的安全认证)

打开grub sudo vim /etc/default/grup修改安全认证选项 增加12行,把13行注释掉 保存更改, 然后执行下面的命令: sudo sync sudo reboot重启成功后,就关闭了安全认证了~~~~~。 总体来讲,kylin还是基于ubuntu的内核的,…

后端常见问题解答-位运算实际场景讲解

位运算 在计算机存储的世界中,一切都是二进制的,位运算就是对二进制位进行操作的一种运算。位运算是计算机中的一种常见运算,可以用来提高性能和提升代码的可读性。 位运算有很多种,比如与、或、非、异或等,这些运算…

NVIDIA Triton系列01-应用概论

NVIDIA Triton系列01-应用概论 推理识别是人工智能最重要的落地应用,其他与深度学习相关的数据收集、标注、模型训练等工作,都是为了得到更好的最终推理性能与效果。 几乎每一种深度学习框架都能执行个别的推理工作,包括 Tensorflow、Pytorc…

el-table 多选回显,分页回显

实现el-table多选分页回显功能&#xff0c;左侧是分页的数据源&#xff0c;右侧是选择后的人员数据&#xff0c;切换下一页&#xff0c;选中的数据会在左侧表格回显。 实现&#xff1a; <template><el-dialog :title"title" :visible.sync"show"…

【Android面试八股文】你知道如何实现非阻塞式生产者消费者模式吗?

文章目录 这道题想考察什么 ?考察的知识点日常生活中的生产者消费者模式生产者消费者模式简介为什么需要缓冲区?阻塞与非堵塞非阻塞式生产者消费者模式的实现非阻塞式生产者消费者模式的实现阻塞式生产者消费者模式实现特点这道题想考察什么 ? 是否了解非阻塞式生产者消费者…

186.二叉树:二叉搜索树中的插入操作(力扣)

代码解决 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}* Tre…

php实现一个简单的MySQL分页

一、案例演示&#xff1a; 二、php 代码 <?php $servername "localhost"; // MySQL服务器名称或IP地址 $username "root"; // MySQL用户名 $password "123456"; // MySQL密码 $dbname "test"; // 要连接…

OpenAI Assistants API:如何使用代码或无需代码创建您自己的AI助手

Its now easier than ever to create your own AI Assistant that can handle a lot of computing tasks for you. See how you can get started with the OpenAI AI Assistant API. 现在比以往任何时候都更容易创建您自己的AI助手&#xff0c;它可以为您处理许多计算任务。了…

【MySQL】事务一

事务一 1.什么是事务2.为什么会存在事务3.事务的版本支持4.事务的提交方式5.事务常见操作方式6.事务隔离级别6.1读未提交【Read Uncommitted】6.2读提交【Read Committed】6.3可重复读【Repeatable Read】6.4串行化【serializable】 点赞&#x1f44d;&#x1f44d;收藏&#x…

线性DP,状态优化,CF 958C2 - Encryption (medium)

一、题目 1、题目描述 2、输入输出 2.1输入 2.2输出 3、原题链接 Problem - 958C2 - Codeforces 二、解题报告 1、思路分析 明显的dp 我们可以写一个会超时的朴素dp 状态定义 f[i][j]为前i个数字&#xff0c;划分为j组的最大收益 那么f[i][j] max{ f[x][j - 1] sum(…

这世上又多了一只爬虫(spiderflow)

让我们一起默念&#xff1a; 爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫爬虫 接着大声喊出来&#xff1a; 一&#xff01;只&#xff01;爬&#xff01;虫&#xff01;呀&#xff01;爬&#xff01;呀&#xff01;爬&#xf…

iOS ReactiveCocoa MVVM

学习了在MVVM中如何使用RactiveCocoa&#xff0c;简单的写上一个demo。重点在于如何在MVVM各层之间使用RAC的信号来更方便的在各个层之间进行响应式数据交互。 demo需求&#xff1a;一个登录界面(登录界面只有账号和密码都有输入&#xff0c;登录按钮才可以点击操作)&#xff0…

【linux】应用程序访问百度时,操作系统内核网络接口日志

代码合入&#xff1a; 登录 - Gitee.comhttps://gitee.com/r77683962/linux-6.9.0/commit/c639573cc7c4984913d4a89884347e5a30a51eac 启动操作系统运行dmesg的日志像这样&#xff1a; dmesg_log/2024_06_14_00_40_54.txt r77683962/linux-6.9.0 - Gitee.com 注意&#xf…

C语言小例程20/100

题目&#xff1a;一个数如果恰好等于它的因子之和&#xff0c;这个数就称为"完数"。例如61&#xff0b;2&#xff0b;3.编程找出1000以内的所有完数。 #include<stdio.h> #define N 1000 int main() {int i,j,k,n,sum;int a[256];for(i2;i<N;i){suma[0]1;k…

Nintex流程平台引入生成式人工智能,实现自动化革新

工作流自动化提供商Nintex宣布在其Nintex流程平台上推出一系列新的人工智能驱动改进。这些增强显著减少了文档化、管理和自动化业务流程所需的时间。这些新特性为Nintex流程平台不断扩展的人工智能能力增添了新的亮点。 Nintex首席产品官Niranjan Vijayaragavan表示&#xff1a…

阿里新发布的UniAnimate现高效人像动画生成;在ComfyUI中使用Stable 3模型;音频版的gpt2o;将 PDF 文档转换为音频播客

✨ 1: UniAnimate 阿里新发布的UniAnimate通过统一的视频扩散模型&#xff0c;实现高效人像动画生成&#xff0c;支持长视频生成 UniAnimate 是一种专注于一致性人像动画生成的统一视频扩散模型。该模型通过映射参考图像、姿势指导和噪声视频到一个共同特征空间&#xff0c;实…

SSM家乡旅游网-计算机毕业设计源码04802

摘 要 随着科学技术的飞速发展&#xff0c;社会的方方面面、各行各业都在努力与现代的先进技术接轨&#xff0c;通过科技手段来提高自身的优势&#xff0c;SSM家乡旅游网当然也不能排除在外。SSM家乡旅游网是以实际运用为开发背景&#xff0c;运用软件工程开发方法&#xff0c…