作为一名测试工程师,你知道“微信红包”怎么测试吗?

news2024/11/27 7:41:37

测试思维

测试任何事物的测试思路可以总结如下:

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

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

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

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

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

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

第三步:针对具体功能,寻找每个输入项和步骤,从以下三个角度来分析测试点 。
  1. 长度,数据类型,必填项,重复
  2. 需求的约束条件 + 隐形需求
  3. 功能之间的交互

这其中就需要用到一些用例的具体设计方法了,比如场景法,等价类法,边界值法,错误推测法等等

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

微信红包功能的测试点

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

一、梳理微信发红包的业务流程如下:

点开联系人---> 点击红包 ---> 输入金额---> 输入红包描述---> 选择支付方式塞钱进红包---> 确认支付---> 领取红包

**冒烟测试:**选择联系人点击红包,输入正常的红包金额和描述,选择零钱支付确认发送成功,并收到可以正常领取。

然后我们再进行各个功能模块的具体细化。

红包金额

从长度、数据类型、必填项等几个方面来考虑:

  1. 长度:

有效:0.01~200,取边界值的测试数据为:0.01,200

无效:小于 0.01,取值 0;大于 200,取边界值为 200.01,检查是否有友好的报错信息

  1. 数据类型:

有效为数字

无效非数字,可以是从字母、字符、中文里选择一个代表测试

  1. 必填项:输入金额为空,检查是否有报错信息并友好
  2. 挖掘隐形需求,小数点不能超过 2 位,

有效:小数点不能超过 2 位

无效:超过两位小数

其他:是否支持复制、粘贴功能;以及多次发送功能是否正常

红包描述

描述默认值:恭喜发财 大吉大利,检查是正常的;

描述的长度有要求,最多为 25 个字符,所以我们可以从以下角度来考虑:

长度:最多为 25 个字符

有效:范围为 0~25,选取边界值作为测试数据,0 和 25

无效:大于 25,选择边界值 26 作为测试数据

数据类型:

  1. 描述里可以输入汉字、英文、数字、字符(空格),符号等
  2. 表情:可以选择表情进红包描述,测试点覆盖如下:

a、按钮可以点击

b、表情包的类型:保存的动图和动图;自拍表情;系统自带;下载表情包

c、增删改操作

d、发送成功,显示正常

塞钱进红包的支付方式

零钱 : 选择零钱进行红包支付

有效:红包金额 <= 零钱,可以发送成功

无效:红包金额 > 零钱,会有友好的提示信息

银行卡:选择银行进行红包支付

有效:

  1. 已经添加的银行卡,并且金额 <= 银行卡余额;
  2. 新添加的银行卡:可以绑定成功; 金额 <= 银行卡余额

无效:

  1. 已经添加的银行卡,金额 > 银行卡余额,会有友好的提示信息
  2. 新添加的银行卡,金额 > 银行卡余额,会有友好的提示信息
  3. 卡被冻结等无效状态,可以提示友好的信息
零钱通:西安则零钱通进行红包支付

有效:红包金额 <= 零钱,可以发送成功

无效:红包金额 > 零钱,会有友好的提示信息

确认支付

输入了金额和描述,以及选择好对应的支付方式后,需要输入密码等认证信息进行确认支付。这里可以通过一下方式进行确认支付:

密码确认:输入支付密码进行确认

有效:正确的密码,支付可以成功,并且以上支付方式里的渠道可以进行正确的扣款

无效:错误的密码,支付失败,并且给出友好的提示信息

刷脸:选择刷脸方式进行支付确认

有效:正确的刷脸识别,可以支付成功,并且以上支付方式里的渠道可以进行正确的扣款

无效:错误的脸部识别,支付失败,并且给出友好的提示信息

指纹:选择指纹方式进行支付确认

有效:正确的指纹识别,可以支付成功,并且以上支付方式里的渠道可以进行正确的扣款

无效:错误的指纹,支付失败,并且给出友好的提示信息

领取红包

发送了红包之后,我们还要进行红包领取的测试,确认是否可以正常领取,并做了基本的权限限制。

  1. 接受者领取红包:

a、领取之前,可以查看红包的具体信息,金额,留言等,显示正确;

b、领取成功,会存到零钱,并且新增的金额 = 发送金额;

c、领取之后,红包状态会变灰,不能再领取,可以查看信息;

  1. 发送方领取

a、查看红包的具体信息,金额、留言等信息,显示正确

b、不能进行领取,等待对方领取

  1. 24 小时之后再确认红包状态

a、超过 24 小时未领取,金额退回,到账到零钱;提示红包过去,无法再查看余额和项目信息

b、取过之后超过 24 小时,无法再查看金额等详细信息

红包记录

发送红包之后,领取完成,可以点击右上角查看红包记录,并可以选择年份进行查看,检查信息显示正确;

取消红包

测试取消了之后,这个红包发送失败。但是可以再次进行红包发送。

APP 专项测试

覆盖了基本业务功能测试之后,作为 APP 的测试,我们一定还要考虑到 APP 的专项测试,比如 APP 自身的安装、卸载、升级,消息的推送等;对于红包支付功能,我们需要关注下“中断测试”和“网络测试”!

支付中断:

支付过程中如果出现一些手机的中断行为,那么红包会不会受到影响以及是否可以正常继续。常见的中断类型有:

电话中断

网络中断

闹钟中断

插拔耳机中断

保证这些中断发生的时候,红包不会影响发送,更加不会导致一些异常情况发生,比如 APP 突然 crash 和 ANR 的情况;

网络测试:

验证各种网络类型:2G、3G, 4G,5G,wifi 下都可以正常发送;

进行网络切换,功能正常;

弱网测试下功能正常:

  1. 不会重复进行支付,或者发送多个红包
  2. APP 不会闪退 崩溃,而且页面提示友好;

微信红包的非功能测试点

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

1)界面

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

2)兼容性

a、考虑测试手机移动端的兼容,比如手机型号

b、考虑系统版本的兼容,主流的系统版本需要测试覆盖

c、考虑不同屏幕大小及分辨率的兼容性测试

3)易用性

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

4)性能

比如发送多个红包,给多个好友发送等,一般需要借助工具或者代码进行测试。

5)安全

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

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

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

相关文章

Mr. Cappuccino的第52杯咖啡——Mybatis环境搭建与使用

Mybatis环境搭建与使用 Mybatis介绍Mybatis环境搭建与使用基于XML方式-原生方式开发创建数据库表项目准备项目结构项目代码实体类中添加有参构造方法产生的问题 基于XML方式-mapper代理开发项目准备项目结构项目代码SQL映射文件中namespace未设置为接口全限定名产生的问题 基于…

ESP32 LVGL:使用menuconfig配置LVGL会导致全部文件重新编译问题解决

问题描述 在使用ESP32 IDF LVGL时&#xff0c;我们可以通过idf.py menuconfig来对LVGL进行配置&#xff0c;但是每次使用idf.py menuconfig配置完LVGL后&#xff0c;由于修改了工程的sdkconfig文件&#xff0c;因此所有的文件都需要重新编译。如下图&#xff1a; 需要编译几千…

Mkdocs中利用Js实现大小圈鼠标拖动样式

在docs/javascripts/extra.js下复制粘贴&#xff1a; var CURSOR;Math.lerp (a, b, n) > (1 - n) * a n * b;const getStyle (el, attr) > {try {return window.getComputedStyle? window.getComputedStyle(el)[attr]: el.currentStyle[attr];} catch (e) {}return …

Java并发(十三)----共享存在的问题

1、小故事 老王&#xff08;操作系统&#xff09;有一个功能强大的算盘&#xff08;CPU&#xff09;&#xff0c;现在想把它租出去&#xff0c;赚一点外快 小南、小女&#xff08;不同的线程&#xff09;来使用这个算盘来进行一些计算&#xff0c;并按照时间给老王支付费用…

多元函数习题

目录 例题1&#xff1a; 例题2&#xff1a; 例题3&#xff1a; 证明题 例1&#xff1a; 例题2 ​编辑 例题3&#xff1a; 例题4&#xff1a; 例题1&#xff1a; 第二问的解法2&#xff1a; 例题2&#xff1a; 选择D&#xff0c;偏导数存在与函数连续并没有关系。 例题3&…

Git竞合处理

Gitee新建一个代码仓库&#xff0c;clone到本地&#xff0c;模拟竞合的情况出现 这里仓库已经配好了ssh&#xff0c;所以没有添加账户绑定的步骤 clone到本地 模拟A同学Clone代码 git clone 项目地址新建一个文件&#xff0c;上传到仓库 push到仓库 代码仓库已经可以看到了…

mysql-速成补充

目录 1.演示事务 ​编辑 1.1 read-uncommitted 1.2 read-committed 1.3 repeatable read 1.4 幻读 1.5 serializable 1.6 savepoint 2 变量 2.1 语法 2.2 举例 3 存储过程和函数 3.1 特点和语法 3.2 举例 4.函数 4.1 语法 4.2 举例 5 流程控制 5.1 分…

window.location.protocol使用实战图片不同浏览器显示问题解决方案

图片在不同浏览器可能会显示不出来个别原因分析&#xff0c; 如火狐浏览器协议类型会有问题 但是谷歌可以 解决方案&#xff1a;将写死的协议 如http换成window.location.protocol就可以了 前景&#xff1a;前台项目和后台项目有时返回的并不是图片全路径 &#xff0c;有时候…

接口测试进阶之数据模板

大家好久不见了。今天的文章将介绍jinja2模板在接口测试数据上的应用。 这几个月我在想&#xff0c;进阶系列要怎么写。 毕竟很多情况下&#xff0c;我觉得写技术文章和做培训一样&#xff0c;都会有两个结果&#xff1a; 1.是需要这些知识的人看不懂。 2.是看得懂的人不需要…

数值线性代数: 共轭梯度法

本文记录共轭梯度噶求解线性方程组的原理及流程。 零、预修 0.1 LU分解 设&#xff0c;若对于&#xff0c;均有&#xff0c;则存在下三角矩阵和上三角矩阵&#xff0c;使得。 设&#xff0c;若对于&#xff0c;均有&#xff0c;则存在唯一的下三角矩阵和上三角矩阵&#xff…

【云原生】Docker私有仓库registry

目录 1&#xff09;用docker容器运行registry私有仓库服务。 2&#xff09;运行私有仓库服务 3&#xff09;镜像重命名(要上传的镜像名需要注明私仓的ip) 4&#xff09;编辑docker配置文件(因为默认是拉取docker官方的镜像&#xff0c;需要重新指定) 5&#xff09;其他dock…

walkRE裁剪面域内部--制作面洞

1、打开WalkRE软件&#xff0c;根据模板新建工程&#xff0c;如下&#xff1a; 2、绘制待裁剪区域和裁剪区域。如下&#xff1a; 将中间的矩形转换成面状的&#xff0c;如下&#xff1a; 3、裁剪掉中间内部的矩形&#xff0c;保留中间面状矩形的外部&#xff0c;如下&#xff1…

【算法提高:动态规划】1.2 最长上升子序列模型(TODO:最长公共上升子序列)

文章目录 题目列表1017. 怪盗基德的滑翔翼1014. 登山482. 合唱队形1012. 友好城市&#xff08;⭐排序后 最长上升子序列模型&#xff09;1016. 最大上升子序列和1010. 拦截导弹解法1——最长递减子序列 贪心解法2——最长递减子序列 最长递增子序列&#xff08;⭐贪心结论&am…

2023年你不容错过的软件测试项目实战(APP项目实战)免费版

前言 最近很多的人都在问我有没有什么项目可以用来练手&#xff0c;正好我这里有一个比较适合练手的项目&#xff0c;那就给大家安利一下吧&#xff0c;废话就不多说了。 项目名称&#xff1a; APP项目实战 项目说明&#xff1a; 本项目里面包括了功能测试、性能测试、安全…

MATLAB与ROS联合仿真——实例程序搭建思路

一、基础运动控制实例程序搭建思路 1、需要完成的任务&#xff1a; &#xff08;1&#xff09;通过设定小车运动的速度及转角来控制ROS中小车运动。 &#xff08;2&#xff09;通过键盘输入指令控制ROS中小车运动&#xff0c;键盘输入w小车前行&#xff0c;s小车后退&#x…

[golang gin框架] 42.Gin商城项目-微服务实战之后台Rbac微服务角色增删改查微服务

一.重构后台Rbac用户登录微服务功能 上一节讲解了后台Rbac微服务用户登录功能以及Gorm数据库配置单独抽离&#xff0c;Consul配置单独抽离&#xff0c;这一节讲解后台Rbac微服务角色增删改查微服务功能&#xff0c;Rbac微服务角色增删改查微服务和后台Rbac用户登录微服务是属于…

Vue--Vuex

一、Vuex 概述 1.是什么 Vuex 是一个 Vue 的 状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;Vuex 是一个插件&#xff0c;可以帮我们管理 Vue 通用的数据 (多组件共享的数据)。例如&#xff1a;购物车数据 个人信息数 2.使用场景 某个状态 在 很多个组件 来使…

leetCode刷题记录3-面试经典150题

文章目录 不要摆&#xff0c;没事干就刷题&#xff0c;只有好处&#xff0c;没有坏处&#xff0c;实在不行&#xff0c;看看竞赛题面试经典 150 题80. 删除有序数组中的重复项 II189. 轮转数组122. 买卖股票的最佳时机 II 不要摆&#xff0c;没事干就刷题&#xff0c;只有好处&…

169. 多数元素

题目 题解一&#xff1a;map集合计数 /*** map集合计数* param nums* return*/public static int majorityElement(int[] nums) {Map<Integer, Integer> map new HashMap<>();//第一个for循环将数组中的元素作为key 出现次数作为value存入map 并且key重复 就v…

代码随想录算法学习心得 48 | 583.两个字符串的删除操作、72.编辑距离...

一、两个字符串的删除操作 链接&#xff1a;力扣 描述&#xff1a;给定两个单词 word1 和 word2 &#xff0c;返回使得 word1 和 word2 相同所需的最小步数。 每步 可以删除任意一个字符串中的一个字符。 思路如下&#xff1a;整体思路是不变的。 这次是两个字符串可以相互…