软件测试实战案例:支付功能板块如何测试?详细总结

news2024/12/19 22:13:00

目录:导读

    • 前言
    • 一、Python编程入门到精通
    • 二、接口自动化项目实战
    • 三、Web自动化项目实战
    • 四、App自动化项目实战
    • 五、一线大厂简历
    • 六、测试开发DevOps体系
    • 七、常用自动化测试工具
    • 八、JMeter性能测试
    • 九、总结(尾部小惊喜)


前言

大体上,可以从支付流程、退款流程、非功能测试点及支付测试的方法四个方向考虑。

请添加图片描述

支付流程

支付的测试流程:点击支付–>选择支付方式–>确认金额–>输入密码–>成功支付。需要针对支付流程中的每个阶段和步骤分别测试。

请添加图片描述

1、支付:点击支付,然后取消订单,能否正常取消。

2、选择支付方式:可以从正常和异常角度考虑。
正常:
可以支持的支付方式有:信用卡,储蓄卡,网银支付,余额,第三方支付(微信,支付宝,京东、百度、聚合支付、组合支付),找人代付,验证是否支持并且可以正常选择并支付;

异常:
支付时结合优惠券/折扣券/促销价抵扣进行相关的抵扣,验证规则正确,并且可以正常抵扣和支付。

手机上没有安装微信、支付宝等APP时,选择对应的支付方式,系统如何处理;

3、确认支付金额:
正常:
正常金额里用黑盒测试中的边界值法去测试。
最大支付金额(单日最大,单笔最大,余额最大);
最小支付金额。

异常:
同样也用边界值方法提取测试点。

超过支付方式单日最大消费金额/单笔最大/余额最大;

异常金额支付:非数字、负数、0,小数点超过2位、格式错误、余额小于实际需要支付的金额等。

4、支付密码:
正常:
可以支持的支付密码类型有:指纹,人脸识别,账号密码,动态获取验证码,手势,信用卡和支付码,小额免密等,确认自己的产品所支持的密码类型,确认可以验证并支付成功;

异常:
输入错误的密码,检查有无提示信息且正确;
超过密码错误上限,检查是否冻结等。

5、其他场景测试点:
多笔订单合并支付,是否可以成功;
重复点击支付按钮,是否会出现多次购买,并同步检查数据库的数据账目是否正确;
支付失败之后,如何补单和退单。

支付中断:
主动中断:可以继续支付并成功;
被动中断:比如电话、低电量、闹钟,断网、切换后台、耳机插拔等,验证可以继续支付。

使用Fiddler等抓包篡改价格:不允许抓包或者数据显示**,篡改不成功。

退款流程

正常:
验证正常的退款流程,也就是退款的冒烟测试。
点击退款可以退款成功,并且检查交易状态是退款,退款金额可以到账;
结合优惠券等抵扣,可以退款实际支付金额;
同步检查数据库的数据和账目是正确的;

异常:
提交错误退款(退款订单号不对),或者退款金额错误,都能够退款失败(此处一般会借助工具进行测试,比如进行接口测试);

非功能测试点

我们平时测试中,除了功能测试,还需要考虑其他方面的测试(非功能测试),主要包括以下几个方面:

请添加图片描述

UI测试:
支付按钮是否足够明显;
支付的界面是否简洁、美观,符合大众审美;
支付页面的字体大小是否合理。

兼容性测试:
BS:如果是BS架构的产品,需要测试浏览器的兼容性,所以就需要根据浏览器的内核,选择一些主流的浏览器进行测试;

APP:测试手机移动端的兼容性,比如手机型号,系统版本和屏幕大小及分辨率等。

易用性测试:
是否支持快捷键功能;
点击付款按钮,是否有提示;
取消付款,是否有提示;
输入框是否对齐,大小是否适中等。

性能测试:
多次点击支付按钮时,是否会出现多次扣款;
如果发生多次扣款,如何通过原支付渠道退回;
如果在双十一、双十二这种支付高峰的时候,支付时是否会排队;
是否会响应超时;
如果响应超时,是否会返回友好提示。

安全测试:
验证敏感信息是否显示**,是否可以篡改;
通过一些工具进行安全扫描,检查是否有安全漏洞或者采用一些其他的手段进行专门的安全测试;
支付请求的伪造,金额的恶意篡改,恶意模拟第三方接口来调用商家接口等,均是我们需要考虑清楚的问题。

网络测试:
验证各种网络类型:2G、3G,4G,5G,wifi下都可以正常支付;
进行网络切换,支付功能正常;
弱网测试下支付功能正常:不会重复支付多次,APP不会闪退崩溃,而且页面提示友好;

测试方法

经常有测试小伙伴问,支付功能我要如何测呢,要用真实的钱么?我们提供的思路有以下四种:

小额支付:
让开发修改代码,不管支付多少钱,实际支付都是1分钱;不过这种方法只能测试小额支付,就有可能会出现产品小额支付没问题,但是大额支付就错误的漏测情况;

申请测试金额,走报销流程:
这种方式一般会作为小额支付的一种补充,比如测试完小额支付后,再测试一些大额支付,这就需要跟公司申请测试基金,走报销流程;

把收款方改成自己的收款账号:
这样就可以自己支付,自己收款,避免浪费自己的金钱做公司项目的支付测试。但是这也是有风险的。万一扣款成功,但是支付的金额没有到账可该怎么办?

沙箱支付:
沙箱支付是一种虚拟的支付,不是真实的金额;这种方法可以验证小额和大额的支付流程;目前支付宝沙箱比较成熟,推荐使用。

下面是我整理的2023年最全的软件测试工程师学习知识架构体系图

一、Python编程入门到精通

请添加图片描述

二、接口自动化项目实战

请添加图片描述

三、Web自动化项目实战

请添加图片描述

四、App自动化项目实战

请添加图片描述

五、一线大厂简历

请添加图片描述

六、测试开发DevOps体系

请添加图片描述

七、常用自动化测试工具

请添加图片描述

八、JMeter性能测试

请添加图片描述

九、总结(尾部小惊喜)

只要你有目标,就要全力以赴去追逐它;只要你有梦想,就不要轻易放弃它。坚持不懈,永不言败,成功总会属于那些勇敢地追求的人。别让一时的困难遮盖了你奋斗的光芒,继续前进,你一定会收获最美好的果实!

成功需要两个因素:努力和坚持。只有付出才能收获,只有奋斗才能创造美好的未来。不要放弃,坚持自己的梦想,用行动去证明自己的价值,相信自己,你一定会收获到成功的果实。

每一次跌倒都是为了更高的飞翔,每一份努力都会有回报。坚持不懈、追求卓越,你就能成为自己想要成为的人。没有什么比奋斗过后的成就感更让人心满意足了。走出舒适区,去闯荡这个世界吧!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT数据安全隐患?本想提高效率,数据却遭泄露

一项新的研究发现,15%的员工经常在ChatGPT上上传公司数据,其中超过四分之一的数据被认为是敏感信息,这使公司在无形中面临安全漏洞的风险。 6月的研究报告《揭示真正的GenAI数据暴露风险》分析了超过10000名员工,主要研究员工如何…

(ICIP-2022)GAITTAKE:通过时间注意和关键点引导嵌入进行步态识别

GAITTAKE:通过时间注意和关键点引导嵌入进行步态识别 论文题目:GAITTAKE: GAIT RECOGNITION BY TEMPORAL ATTENTION AND KEYPOINT-GUIDED EMBEDDING 论文是华盛顿大学发表在ICIP 2022的工作 论文地址 ABSTRACT 步态识别是指根据远距离采集的视频数据&am…

【服务器数据恢复】OneFS文件系统下误删除文件的数据恢复案例

EMC Isilon存储结构: Isilon群集存储系统使用的是分布式文件系统OneFS。Isilon群集存储系统的每个节点均为单一OneFS文件系统,Isilon在进行横向扩展时不会影响数据的正常使用。Isilon群集存储系统所有节点在工作时都提供相同的功能,节点没有主…

js数组高阶函数——map()方法

js数组高阶函数——map方法 map()语法map()的基本使用map()的优缺点map()的使用场景去重双重for循环配合splie去重map循环配合Array.from去重set()去重filter…

es中索引那些事

0、前言 在了解倒排索引之前先理解下索引的作用: 查询数据的时候,最耗时的操作并不是CPU计算,也不是内存聚合,而是去磁盘将文档查到并拉取回来的过程。我们都知道在磁盘IO的过程中,顺序读写效率高于随机读写&#xf…

JavaWeb学习路线(4)——请求响应与分层解耦

一、概述 二、请求 (一)概念: 全名为HttpServletRequest,其目标是获取请求数据。 (二)简单请求: web端发送基本数据类型数据到服务器进行处理。 1、获取方式 (1)原…

ESP32学习之JSON,和接入心知天气

注意:手机热点或者网络不能开5.0GHz频段和WIFI6,不然ESP32连不上 心知天气账号(免费版即可),网站:心知天气 - 高精度气象数据 - 天气数据API接口 - 行业气象解决方案 (seniverse.com) V3的用户手册-天气实…

【业务功能篇29】Assert断言

业务场景: 当我们需要对一个接口方法验证是,在单元测试中,主要用于程序代码的调试或测试阶段 基本的使用就是assert condition,当 condition 为 true,就继续往下运行;当 condition 为 false,就抛…

MySQL - 第2节 - MySQL库的操作

1.创建数据库 创建数据库的SQL如下: CREATE DATABASE [IF NOT EXISTS] db_name [[DEFAULT] CHARSETcharset_name] [[DEFAULT] COLLATEcollation_name];说明: • SQL中大写的表示关键字,[ ]中代表的是可选项。 • CHARSET用于指定数据库所采用…

「实在RPA·证券数字员工」革新证券数字化现状

2022年1月《金融科技发展规划(2022——2025年)》提出“十四五”时期金融科技发展愿景,明确了金融科技发展的指导思想和4个基本原则、6个发展目标,确定了8项重点任务和5项保障措施,进一步明确金融科技发展方向。近年来&…

ADB WIFI 链接

ADB WiFi链接手机 必须在同一网络下(本人用的台式机网线手机连路由器WIFI) 1.先确认USB数据线是否成功链接了手机 adb devices不管前面设备是什么名字,但是后面必须为device状态才算链接成功了,offline状态是不行的 有些没开启…

Linux Debian Jenkins快速搭建配置并运行

Jenkins安装 参考Debian Jenkins Packageshttps://pkg.origin.jenkins.io/debian-stable/ 加Key curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee \/usr/share/keyrings/jenkins-keyring.asc > /dev/null 加仓库 echo deb [signed-by/u…

什么是远程工具,远程工具推荐

在当今数字化时代,远程工作正在变得越来越普遍。这种趋势不仅使企业管理更加便利,节省了时间和资源,同时也使员工更加自由和灵活。许多远程工作都需要使用到远程工具。本文将对远程工具进行简介和阐述。 什么是远程工具 远程工具是一种数字…

类与对象知识总结+封闭类+const+this指针 C++程序设计与算法笔记总结(三) 北京大学 郭炜

//C程序到C程序的翻译 class CCar { public: int price; void SetPrice(int p); }; void CCar::SetPrice(int p) { price p; } int main() { CCar car; car.SetPrice(20000); return 0; }struct CCar { int price; }; void SetPrice(struct CCar * this, int p) { this-&g…

【ROS】URDF:统一机器人描述格式(XML)

1、简述 统一机器人描述格式(URDF)是描述机器人模型的 XML 文件,支持Xacro(XML宏),使用Xacro来引用已经存在的XML块,创建更短且可读的XML文件。 2、初始URDF描述文件 URDF描述文件为XML格式&…

测试左移-快速玩转Debug

目录 背 景 学习的意义 玩 转 Debug 一、基本介绍 二、断点设置 三、启动调试 四、调试技巧 定 位 问 题 总 结 背 景 一段代码的问题产生阶段可以分为:编译期和运行时 编译期的代码可以由工具(idea、eclipse)在程序编码过程中提示错误…

面对对象。

1.类: 类:是对象共同特征的描述。 对象:是真实存在的具体实例。 先设计类,才能创建对象并使用。 pulic class 类名{1.成员变量(代表属性,一般是名词)2.成员方法(代表行为&#x…

达梦主备守护集群相关概念和基本原理介绍

DM数据守护一主一备或一主多备是一种集成化的高可用、高性能数据库解决方案,是数据库异地容灾的首选方案。通过部署 DM 数据守护,可以在硬件故障(如磁盘损坏)、自然灾害(地震、火灾)等极端情况下&#xff0…

思科交换机与路由器基础命令(一)

作者:Insist-- 个人主页:insist--个人主页 作者会持续更新网络知识和python基础知识,期待你的关注 目录 一、Cisco交换机的命令行模式: 1、用户模式 2、 特权模式 3、 全局配置模式 4、 接口模式 5、退回命令 二、帮助机制 …

20. 算法之回溯算法

1. 概念 回溯算法实际上一个类似枚举的深度优先搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回(也就是递归返回),尝试别的路径。 回溯的处理思想&#xff0c…