App的回归测试,有什么高效的测试方法?

直接抛出观点:高效的测试方法当然有,那就是采用【接口+自动化】。

为了系统阐述这个问题,让你能有较强烈的获得感,本篇文章将采用下列结构进行展开:

1、回归测试,测哪些东西?
2、传统的回归测试是如何测试的?
3、高效的回归测试怎么做?
4、高效方法具体如何做?
5、接口自动化怎么做?
6、学习资源分享。

别走,现在就讲。

一、回归测试,测哪些东西

回归测试是软件测试过程中的一个重要的环节,如果说冒烟测试是对软件质量的抽检,那么回归测试就是保证软件质量的最后一道屏障。

一个APP,可以分为前端和后端(也称为服务端),前端包含UI样式、交互效果、视觉体验等,服务端包含数据存取及计算、逻辑交互等。回归测试就是通过对新老功能所有场景的最终测试,找出前后端可能存在的问题。

根据统计,回归测试中发现的bug,大多数是由于新功能上线后与老功能逻辑冲突或数据不兼容等引起。

二、传统的回归测试

回归测试中,这些潜在的bug如何验证?传统的方法就是手动回归。

把APP按模块划分非几个测试人员,分别验证各模块的新老功能。但是这样的验证方式缺点很明显,需要耗费较多的人力和时间。
在这里插入图片描述

面对软件的频繁更新迭代(某些软件不是按月更新,有时是按周来进行更新),手动验证显然太费时费力了,那么,如何高效地进行回归测试?

三、如何高效回归测试?

分析潜在问题产生的原因,我们就会发现,后端(服务端)是个重灾区。比如前面所说的数据不兼容、逻辑冲突等,这些都是属于的后端范畴。

如果能够把这个重灾区快速治理好,今天的问题就有了答案。
在这里插入图片描述

很幸运,互联网的前辈已经帮我们探索总结出来了很多好用的方法,那就是用 【接口+自动化】来做回归测试。

四、高效回归测试则么做?

【接口+自动化】包含了接口测试和自动化。接口测试即通过对接口请求返回数据的校验来做验证;自动化指的是多个测试场景之间,参数的传递和逻辑的交互实现整体串联,校验最终的结果。下面通过具体数据来对比,传统手动回归测试接口VS自动化回归测试。
某信APP【通讯录】做了功能优化,现在到了回归测试环节,需要你给出测试估时。首先要知道【通讯录】有哪些小功能要回归,下面我们简单罗列一下,请看下方图片

在这里插入图片描述

 

功能太多,如果全部列出来,估计一张A4纸都不够,这里仅列出少部分,如果按照接口估算,大概有100个接口。

这么多功能都从头到尾走一遍,一个人肯定是不够,一般来说至少需要4人(每个人验证两个一级功能,每人3小时,这样算下来 需要的工时一共是 「4人x3小时」。

如果使用接口自动化来做回归测试呢?

一个接口请求的响应时间基本在200ms以内,为了方便计算,就算1s好了,100个接口验证三次,时间给它算30分钟(肯定是够了),再加上发现问题后调试排查重试等再给30分钟,所有的时间加起来就是「1人x1个小时」

从12小时的工时到1小时,这是可明明白白的效率提高!

看到这里你一定想说:效率我看到了,赶快告诉我接口自动化怎么做?

五、接口自动化怎么做

接口自动化的实现,当然是要靠框架。推荐几个主流框架:

1)Java常用的测试框架

java类框架有JUnit和TestNG,二者的对比如下图:
在这里插入图片描述

相对于JUnit4来说,TestNG功能更加丰富。

从实际使用的角度来说,参数化的设置及功能,以及处理有上下依赖关系的测试时,JUnit测试框架有着明显的不足。因此,一般都会使用TestNG(推荐)。

2)python常用的测试框架

常用的有Unittest、Pytest。它们的区别如下,各有特色,可以根据自己的业务需求来选择

在这里插入图片描述

了解了这些区别,就选择一个适合自己的赶快学起来吧。 

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

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

相关文章

二维费用背包(既有最大体积限制,又多加了一个最大重量限制)

1:分析状态转移方程式 2:ACcode: #include<bits/stdc.h> using namespace std; const int N1e310; int f[N][N],v[N],w[N],m[N]; void solve() {int a,b,c;cin>>a>>b>>c;for(int i1; i<a; i) cin>>v[i]>>m[i]>>w[i];//酷似01背…

SDUT 2023 summer team contest(for 22) - 1-Gym - 102220

B - Balanced Diet 题意&#xff1a;这题题意有点难搞啊&#xff0c;就是有n个物品&#xff0c;一个有m种&#xff0c;对于第 i 种物品如果你要买它就至少买 l[i]个&#xff0c;然后就是给你n行&#xff0c;每行两个数&#xff0c;ai,bi,表示这个糖果类型为bi&#xff0c;价值为…

非50欧系统阻抗的S参数测试

1. S参数依赖于系统阻抗 S参数的定义需要约定一个系统阻抗。同一个微波电路&#xff0c;在不同系统阻抗下的S参数是不同的。例如&#xff0c;50欧电阻在50欧系统阻抗下的S11为零&#xff0c;是没有反射的匹配状态&#xff1b;但50欧电阻在75欧系统阻抗下的S11不为零&#xff0…

Git教程

版本库 创建版本库 通过git init命令把目录变成Git可以管理的仓库 把一个文件放到Git仓库只需要两步&#xff1a; 第一步&#xff0c;用命令git add告诉Git&#xff0c;把文件添加到仓库&#xff1a; git add readme.txt执行上面的命令&#xff0c;没有任何显示&#xff0…

【Linux】进程间通信——管道/共享内存

文章目录 1. 进程间通信2. 管道匿名管道命名管道管道的特性管道的应用&#xff1a;简易的进程池 3. System V共享内存共享内存的概念共享内存的结构共享内存的使用代码实现 1. 进程间通信 进程间通信&#xff08;Inter-Process Communication&#xff0c;简称IPC&#xff09;是…

vue 集成tinymce2实现图片,视频以及文件的上传

vue 集成tinymce2实现图片&#xff0c;视频以及文件的上传 1. 安装插件 &#xff08;1&#xff09;安装tinymce npm install tinymce -S &#xff08;2&#xff09;安装tinymce-vue npm install tinymce/tinymce-vue3.0.1 -S 2. 复制静态文件到public目录 资源下载路径&…

【116个】网络安全测试相关面试真题

1、Burpsuite常用的功能是什么&#xff1f; 2、reverse_tcp和bind_tcp的区别&#xff1f; 3、拿到一个待检测的站或给你一个网站&#xff0c;你觉得应该先做什么&#xff1f; 4、你在渗透测试过程中是如何敏感信息收集的&#xff1f; 5、你平时去哪些网站进行学习、挖漏洞提交到…

git rebase 合并提交

一. 合并提交步骤 git log --oneline 查看当前提交记录 git rebase -i HEAD~2 选择最后提交的2条记录进行合并进入编辑界面,将c865404的pick改为f, 表示向前合并也就是向cc5a54合并 编辑完之后:wq 保存并退出git rebase --continuegit push --force origin feature/v1.2 推送…

Python venv 和 virtualenv 虚拟环境的基本使用

1.前言 venv 和 virtualenv 都是搭建虚拟环境的工具&#xff0c;virtualenv 是第三方开源的&#xff0c;而 venv 作为 virtualenv 的一个子集自 Python3.3 开始集成到标准库中&#xff0c;在 virtualenv 的文档中可以看到他们的区别&#xff1a; 没有 app-data 种子方法&#…

WEB APIs day4 (1)

一、日期对象 1.实例化 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevi…

MySQL(十):MySQL语法-进阶

MySQL语法-进阶 数据类型Text 类型Number 类型Date 类型 ASALTER TABLEconcat、group_concatSQL注入阻止SQL注入方案一方案二方案三 HAVING 子句临时表正则表达式获取服务器元数据事务导出数据导出数据导出表作为原始数导出SQL格式的数据 导入数据解决无法导入问题使用 LOAD DA…

VS工程项目中属性中无Qt设置问题解决方案

VS工程项目中属性中无Qt设置问题解决方案 若VS工程中&#xff0c;创建的是Qt工程&#xff0c;或者从Qt Creator工程转换为VS 工程时&#xff0c;VS项目属性中确无Qt Project Setttings等设置时&#xff0c;可通过如下方案解决 1. 右键项目&#xff0c;在下拉框中选择Qt项 2.…