软件测试面试:支付功能如何测试?

前言

相信有很多的小伙伴全面武装好在找工作。那么,作为测试,不管是面试还是笔试,必然要被考验到的就是”测试思维“。在面试中就是体现在如下面试题中:

“说说你项目中的xx模块你是如何测试的?”

“给你一个购物车,你要怎么测试?”

"你说一下这个产品的登录功能有哪些测试点?"

“支付功能怎么测试?”

......

所有的这些问题其实都是在考察你的测试思维。我们再回答这类问题的时候有方法可依循的。

那么今天这篇文章,我来和大家分析一个问题这个问题就是以“支付功能”作为案例,一起来分析一下如何回答这类的面试题。

一、测试思维

要分析测试点之前,我们先来梳理一下测试思维。总结来说,任何事物的测试思路都可以总结如下:

第一步:梳理产品的核心业务流程:明白这是个什么项目,实现了什么业务,以及是怎么实现的?

这个步骤一般是参考公司的需求文档来的,如果产品提供需求文档的同时提供了业务流程图,可以遵循流程图来梳理;如果产品没有提供流程图,就需要测试人员根据需求的理解自己画出流程图,达到梳理业务的目的。

第二步:根据流程进行模块细分,然后针对每个功能模块进行详细的测试点设计和提取。

这个单个功能的测试点提取要覆盖一下几个方面:

正常功能验证:优先覆盖正常的业务流程和功能验证,这其实也是单个功能的冒烟测试。冒烟测试先行,如果不通过,可以直接停止测试等开发修复后继续测试。
异常功能验证:为了更加贴近用户的使用产经,我们也要验证各种异常的场景,故意操作导致出错,检查系统的反馈和提示,保证用户操作失误的情况能够得到系统的友好指示。

因为有很多地方的操作都有可能会导致系统异常和抛错,所以为了不漏测,我们需要找出所有可能导致异常的输入项和选项。所以就到了第三步:

第三步:针对具体功能,寻找每个输入项和步骤,从以下三个角度来分析测试点 。

长度,数据类型,必填项,重复
需求的约束条件+隐形需求
功能之间的交互
这其中就需要用到一些用例的具体设计方法了,比如场景法,等价类法,边界值法,错误推测法等等

第四步:考虑非功能测试点,包括界面、易用性、兼容性、安全性、性能压力

二、支付功能的测试点

基于上面的测试思路,我们可以分析得出“支付功能”测试点如下:

2.1梳理支付的业务流程如下

点击支付--->选择支付方式 --->确认金额---> 输入密码 ---> 成功支付

完成这个流程测试,也就是完成了项目的冒烟测试!然后需要测试针对流程中的每个阶段和步骤,具体分析可能导致异常的测试点,所以我们按阶段和输入项来进行划分如下:

1)点击支付,提交订单但是取消了,检查可以取消成功

2)选择支付方式:

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

异常: 没有绑定任何的支付方式时,支付报错。

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

3)确认支付金额:这个步骤可以用到等价类和边界值的用例设计方法

正常:正常金额里用边界值法去测试点:

  • 最大支付金额(单日最大,单笔最大,余额最大)
  • 最小支付金额

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

  • 超过支付方式单日最大消费金额/单笔最大/余额最大
  • 异常金额支付:非数字、负数、0,小数点超过2位等

4)支付密码:

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

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

5)其他场景测试点:

a、多笔订单合并支付,是否可以成功;

b、重复点击支付按钮,是否会出现多次购买,并同步检查数据库的数据帐账目正确;

c、支付中断:

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

d、网络测试:

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

e、使用fiddler等抓包篡改价格:不允许抓包或者数据加密,篡改不成功

三、退款流程

正常:验证正常的退款流程,也就是退款的冒烟测试:

  1. 点击退款可以退款成功,并且检查交易状态是退款,退款金额可以到账;
  2. 结合优惠券等抵扣,可以退款实际支付金额;
  3. 同步检查数据库的数据和账目是正确的;

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

3.1测试方法

那么以上的测试点在具体公司项目中要怎么进行测试呢?我们有不同的一些测试方法:

1) 小额支付:

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

2)申请测试金额:

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

3)沙箱支付:

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

四、非功能测试点

测试完以上的功能测试点之后,我们还需要验证一些非功能测试点,主要包括以下几个方面:

1)界面

验证界面的美观,排版和错别字等。

2)兼容性

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

CS:如果CS架构的产品,测试手机移动端的兼容,比如手机型号,系统版本和屏幕大小及分辨率等。

3)易用性

测试站在用户的角度考虑用户体验,使用是否方便等。

4)性能

比如考虑多用户支付,长时间运行等,关注产品的响应时间等,一般需要借助工具或者代码进行测试。

5)安全

验证敏感信息是否加密,是否可以篡改;通过一些工具进行安全扫描,检查是否有安全漏洞;或者采用一些其他的手段进行专门的安全测试。

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看。

【2025最新版】字节大牛讲的最全最细的自动化测试全套教程!永久白嫖,拿走不谢,全程干货无废话!逼自己15天内学完,从软件测试基础到项目实战一套全通关!

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 Go 构建 MCP Server

一个互联网技术玩家,一个爱聊技术的家伙。在工作和学习中不断思考,把这些思考总结出来,并分享,和大家一起交流进步。 一、MCP 介绍 1. 基本介绍 MCP(Model Context Protocol,模型上下文协议)是…

Python----计算机视觉处理(Opencv:模板匹配)

一、 概念 模板匹配就是用模板图(通常是一个小图)在目标图像(通常是一个比模板图大的图片)中不断的滑动 比较,通过某种比较方法来判断是否匹配成功。 二、应用场景 1. 目标检测与识别:在计算机视觉领域&am…

【stm32】用从模式控制器 完成PWM的测量

🌞学习视频还是来自于 铁头山羊 🌿主要是回顾一下他讲的这一章的定时器的部分,具体的话 还是看一下具体铁头山羊的视频,讲的很清楚~~ 整体流程是这样的,首先通过定时器的输出比较功能,配置好PA6产生一个特定…

【C#】CS学习之Modbus通讯

摘要 本文详细描述了如何在在C#的Winform应用程序中使用NModbus库实现Modbus通讯,包括读取保持寄存器、以及相应的UI界面设计和事件处理。 前言 ​应用场景 Modbus 从站广泛应用于工业自动化领域: 1、传感器数据采集(如温度、压力等&#xf…

Pycharm社区版创建Flask项目详解

一、创建工程项目 二、配置工程目录 新建的空项目下创建目录。 1、新建app.py文件 2、app.py代码如下: from flask import Flask, render_templateapp Flask(__name__)app.route("/") def root():"""主页:return: Index.html"&qu…

Linux 基础入门操作 第十二章 TINY Web 服务器

1 服务器基础架构 1.1 背景知识 Web 服务器使用 HTTP 协议与客户端(即浏览器)通信,而 HTTP 协议又基于 TCP/IP 协议。因此我们要做的工作就是利用 Linux 系统提供的 TCP 通信接口来实现 HTTP 协议。 而 Linux 为我们提供了哪些网络编程接口…

RAG优化:python从零实现[吃一堑长一智]循环反馈Feedback

本文将介绍一种有反馈循环机制的RAG系统,让当AI学会"吃一堑长一智",给传统RAG装了个"后悔"系统,让AI能记住哪些回答被用户点赞/拍砖,从此告别金鱼记忆: 每次回答都像在玩roguelike:失败结局会强化下次冒险悄悄把优质问答变成新知识卡牌,实现"以…

基于SpringBoot的名著阅读网站

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

[AI建模] 使用Pinokio本地化部署混元2D到3D AI建模服务

近年来,AI驱动的2D转3D建模技术发展迅猛,而Pinokio作为一个强大的AI模型管理与部署平台,使得在本地部署这些复杂的AI模型变得更加简单高效。本文将介绍如何使用Pinokio在本地部署混元2D到3D AI建模服务,并快速生成带或不带Texture的3D模型。 1. 在Pinokio Discover页面找到…

Qt 导入TagLib库

文章目录 0. 前言和环境介绍1. 下载TagLib2. 下载zlib3. 修改.pro文件4. 测试代码 0. 前言和环境介绍 最近在使用Qt写一个播放器,需要解析mp3文件,于是研究了一下如何导入TagLib库 Qt构建套件:Desktop Qt6.8.2 MinGW64-bit Qt Creator安装目录: D:\bit…

【前端面试题】计算机网络相关

总结面试前端过程可能会问到的计算机网络相关知识点 1.HTTP和HTTPS的区别 (1)HTTPS HTTP 安全加密 HTTPS 是 HTTP 的 加密版,通过 SSL/TLS 保障数据安全,防止窃听和篡改。 (2)HTTPS 如何保护数据&…

【RabbitMQ高级特性】消息确认机制、持久化、发送方确认、TTL和死信队列

🔥个人主页: 中草药 🔥专栏:【中间件】企业级中间件剖析 一、消息确认机制 消费者确认机制确保消息被正确处理后才从队列中删除。如果消费者处理失败(如业务异常或宕机),Broker 会重新投递消息…

调用百度api实现语音识别(python)

该代码实现了一个企业级的语音识别解决方案,通过调用百度语音识别API,实现实时录音识别和对已有音频语音识别功能。 百度智能云:请自行访问百度智能云,开通免费的语音识别功能,获取API_KEY和SECRET_KEY。操作按照百度流程即可,可免费申请。 首先,配置下百度API和描述下错…

Python实现小红书app版爬虫

简介:由于数据需求的日益增大,小红书网页版已经不能满足我们日常工作的需求,为此,小编特地开发了小红书手机版算法,方便大家获取更多的数据,提升工作效率。 手机版接口主要包括:搜素&#xff0…

【AndroidRTC-11】如何理解webrtc的Source、TrackSink

Android-RTC系列软重启,改变以往细读源代码的方式 改为 带上实际问题分析代码。增加实用性,方便形成肌肉记忆。同时不分种类、不分难易程度,在线征集问题切入点。 问题1:如何理解VideoSource、VideoTrack&VideoSink三者的关系…

Windows安装Rust环境(详细教程)

一、 安装mingw64(C语言环境) Rust默认使用的C语言依赖Visual Studio,但该工具占用空间大安装也较为麻烦,可以选用轻便的mingw64包。 1.1 安装地址 (1) 下载地址1-GitHub:Releases niXman/mingw-builds-binaries GitHub (2) 下载地址2-W…

英伟达黄仁勋谈人工智能趋势,首提代理式AI,后续机器人将登场

近日,英伟达 GTC 2025 大会主题演讲中,英伟达 CEO 黄仁勋再次身穿皮衣登场。黄仁勋一上来就提到了 AI 发展的未来,现在我们处于生成式 AI(Generative AI)阶段,但根据黄仁勋的路线图,我们将迈向一…

LCR 187. 破冰游戏(python3解法)

难度:简单 社团共有 num 位成员参与破冰游戏,编号为 0 ~ num-1。成员们按照编号顺序围绕圆桌而坐。社长抽取一个数字 target,从 0 号成员起开始计数,排在第 target 位的成员离开圆桌,且成员离开后从下一个成员开始计数…

水星(MERCURY)监控初始化的恢复和转码方法

水星(MERCURY)的安防监控恢复了很多,其嵌入式文件系统也一直迭代更新。做为数据恢复从业者每天处理最多的就是恢复数据,但是有的时候业务的需要我们不仅仅恢复出数据,还需要能够转码成通用的MP4类文件并要求画面和声音实现“同步”。 故障存…

基于SpringBoot的实现的客户关系管理系统(CRM)(源码+数据库)

464客户关系管理系统(CRM),主要功能如下 【后台功能】 权限管理模块: 包括系统的登录与注册功能 用户管理模块: 基于RBAC的权限模型设计, 实现分配角色的功能功能 客户管理模块: 对客户信息进行新增 修改 删除 查看 联络信息管理模块: 对联络…