回归测试策略指南

2023-09-20 17:08:56

作为一名软件测试人员,我们需要进行回归测试,以确保代码修改后软件的既有功能不会受到影响。那么如何设计和执行有效的回归测试策略呢?本文将为大家提供一些专业建议。

明确回归测试的范围

回归测试不可能也不需要对软件做完整测试,要识别出核心功能和关键业务场景,将回归测试的范围控制在可管理的范围内。比如在一个电商网站修改了订单模块代码后,要优先回归测试订单模块的以下功能点。

下单流程:用户可以在网站选择商品、加入购物车、填写收货地址、选择支付方式等完成下单。

订单支付:支持多种支付方式,如信用卡、银联卡、支付宝、微信支付等。

订单发货:下单后生成订单,商家可以管理订单并安排发货。

订单退款:支持整订单或部分商品退款,退款处理流程。

订单日志:订单各状态变更会生成订单日志。

订单查询:用户和商家均可以查询订单及状态。

针对回归测试范围设计详细的测试用例

测试用例不仅要覆盖主流的使用场景,还要考虑边界条件的测试,增加一些极端数据的用例,从而提高测试的完整性。

例如:

正常下单场景:用户选择 2 件商品,填写正确的收货人信息,选择支付宝支付,提交订单。验证整个下单流程的正确性。

边界条件场景:用户购物车中添加超过系统定义的商品最大数量限制时,验证是否能给出适当的限制提示,避免发生错误。

区分测试用例适合自动化还是人工测试

自动化测试能显著提高回归测试的效率,但不是所有的测试用例都能被自动化用例所覆盖。一般来说,重复且业务流程较为固定的功能点非常适合用自动化工具测试。比如上述所说的登录、搜索、订单查询等;但是对于一些需要人工设计用例的复杂业务场景,还需要保留手工测试,同时,一些涉及安全性和易出错的关键性业务,也需要人工参与。

当前自动化测试工具构建的方式主要有两种

基于测开人员的编写代码能力,构建自动化测试用例及脚本,此方案构建效率低、维护成本高、对测试人员的能力要求高;

基于自动化测试平台,通过投屏录制等方式构建自动化测试用例,此方案能提升一部分构建效率并降低测试人员的使用门槛,但开启自动化测试的工作仍需要脱离原有的测试工作素材,使用平台规则完成测试用例录制跟转换,构建成本跟维护成本还是高的,再加上此方案的录制跟执行的成功率与稳定性也是参差不齐的,对于自动化测试的赋能效果并不能达到预期。

市面上有很多自动化测试的工具,比如:selenium、appium、QTP、RFT等。这些老牌自动化测试工具想必大家都很熟悉了。

今天向大家自荐龙测AI-TestOps云平台,针对UI自动化测试,支持全端测试(web、app、windows、Linux等),采用投屏录制的方法,借助最新的AI功能,有效增加自动化测试覆盖度,提高回归效率。感兴趣的友友们,欢迎前往体验~

龙测AI-TestOps云平台

回归测试前准备测试环境和数据

确保测试工作顺利进行。将实际使用过的真实数据做脱敏后导入,可以大大提高测试效果。

进行回归测试时需要记录测试结果

全部用例都要有执行记录。对于失败的用例,开发同学需要修复相关BUG。测试人员要重复回归测试,直到所有用例通过为止。

生成回归测试报告

总结测试范围,结果,存在的问题等,让相关人员了解测试情况。测试报告应该包含摘要、测试范围、测试用例设计、测试执行过程、测试结果、问题统计、结论和附录。编写详细、规范的报告可以很好地记录和反馈回归测试情况,也方便相关人员检查和跟进。

常见的回归测试策略

  • 每次有代码变更时进行回归测试。
  • 在软件版本发布前进行系统完整性回归测试。
  • 按照计划定期进行回归测试。
  • 在修改核心功能代码后进行回归测试。

采用上述策略,可以设计和执行出高质量、高覆盖率的回归测试,最大限度地减少代码变更对软件质量的影响,提高软件稳定性。如果大家在回归测试中也遵循这些原则,一定能收到很好的测试效果。

更多推荐

Python打包教程 PyInstaller和cx_Freeze

当我们开发Python应用程序时,通常会将代码保存在.py文件中,然后通过Python解释器运行它。这对于开发和测试是非常方便的,但在将应用程序分享给其他人或在不同环境中部署时,可能会带来一些问题。为了解决这些问题,我们可以使用打包工具将Python应用程序转换为可执行文件,这样它就可以在不需要安装Python解释器的

​​​​MyBatis友人帐之基础入门

一、简介1.1什么是MyBatisMyBatis是一个开源的、轻量级的数据持久层框架,它可以简化JDBC的操作,让开发者只需要关注SQL语句本身,而不用处理加载驱动、创建连接、创建语句等繁琐的过程。MyBatis支持自定义SQL、存储过程和高级映射,可以通过XML或注解来配置和映射原始类型、接口和JavaPOJO(普通

Android 虚拟机

文章目录Android虚拟机Java虚拟机基于栈的虚拟机栈的执行流程Dalvik虚拟机基于寄存器的虚拟机寄存器的执行流程Java虚拟机与Dalvik虚拟机区别ART虚拟机Android7.0的运行方式Android虚拟机Java虚拟机基于栈的虚拟机每一个运行时的线程,都有一个独立的栈。栈中记录了方法调用的历史,每一次方

交流共享,共筑智算底座丨九州未来受邀出席英特尔线下沙龙

随着AI技术的升级迭代、生成式AI模型智能化水平的持续提升,AIGC加速向多种场景渗透,AIGC迎来应用爆发期,有望实现且跨越更多领域的融合,形成新的应用场景和解决方案,持续推动数字技术的创新与应用,助力各行各业实现数字化转型,开辟人类生产交互新纪元。9月13日,英特尔于上海举办2023英特尔AIGC创新与行业应用研讨

Docker容器化技术(从零学会Docker)

文章目录前言一、初识Docker1.初识Docker-Docker概述2.初识Docker-安装Docker3.初识Docker-Docker架构4.初识Docker-配置镜像加速器二、Docker命令1.Docker命令-服务相关命令2.Docker命令-镜像相关命令3.Docker命令-容器相关命令三、Docker

Docker容器内使用Docker——DinD与DooD

文章目录DinD与DooD简介DinD与DooD的应用场景DooD构建Docker镜像构建DooD镜像运行DooD镜像直接运行DockerDooD模式运行DockerDinD构建Docker镜像通过官方dind镜像使用dind模式的docker本地构建DinD镜像下载解压二进制Docker文件构建DinD镜像运行Din

面试题:HTTPS 是如何保证传输安全的?又被问了!

文章目录1.HTTP协议1.1HTTP协议介绍1.2HTTP中间人攻击1.3防止中间人攻击2.HTTPS协议2.1HTTPS简介2.2CA认证体系总结1.HTTP协议在谈论HTTPS协议之前,先来回顾一下HTTP协议的概念。1.1HTTP协议介绍HTTP协议是一种基于文本的传输协议,它位于OSI网络模型中的应用层。HT

【Nginx26】Nginx学习:日志与镜像流量复制

Nginx学习:日志与镜像流量复制总算到了日志模块,其实这个模块的指令之前我们就用过了,而且也是是非常常见的指令。相信这一块的学习大家应该不会有什么难度。另一个则是镜像功能,这个估计用过的同学就比较少了,不过也并不是特别的复杂,一会讲到的时候咱们再详细说哦。今天的两个模块都是包含在Nginx源码中的,不需要额外单独编译

MySQL-DML语句

DML语句Create单行插入数据多行插入数据插入否则更新replaceinto查看受影响行数的函数Retrieve全列查询指定列查询select+函数/表达式对查询出的列重命名-asdistinctorderbylimitwhere子句比较运算符逻辑运算符UpdateDeletedeletetruncatedelet

Linux: Cache 简介

文章目录1.前言2.背景3.Cache硬件基础3.1什么是Cache?3.2Cache工作原理3.3Cache层级架构3.4内存架构中各级访问速度概览3.5Cache分类3.6Cache的查找和组织方式3.6.1Cache组织相关术语3.6.2Cache查找3.6.2.1Cache查找过程概述3.6.2.2Cache查

cgroup限制内存

首先简单介绍下cgroup限制cpu的使用率,写一段代码如下:#include<stdio.h>#include<pthread.h>intmain(){inti=0;for(;;)i++;return0;}很明显,这里面是单核拉满,然后top看下进程的cpu使用率,如下所示:很明显,截图中的cpu使用率是正常的,现在

热文推荐