首页 > 其他分享 >回归测试的实践与思考

回归测试的实践与思考

时间:2023-10-16 17:24:25浏览次数:77  
标签:思考 回归 实践 测试阶段 用例 测试用例 质量 测试

上周写了一篇关于测试过程效率演变的文章,其中聊了很多过程改进的方法。比如:需求阶段应该做好评审和风险预案;研发阶段应该做好质量卡点,持续集成流水线以及为研发自测做好辅助工作;测试阶段的重点是测试计划和质量门禁,同时关注线上的发布质量,通过线上巡检和监控,持续提升测试过程效率和最终的交付质量。

很多时候我们都在关注整体的质量和效率,却往往忽视了一些细节的东西,比如回归测试。很多人会觉得回归测试不就是把case重新执行一遍,看看有没有新的问题就行了。但实际上,很多线上的问题其实都需要在回归测试环节来评估验证。

这篇文章,我想聊聊我对于回归测试的思考,以及些许实践。

 

软件研发测试的交付模型

软件从需求出现到最后的线上发布,大致要经历如下几个阶段:

需求阶段:需求阶段测试介入,主要是评估本次测试所涉及的范围,评估需要投入的测试资源,以及所需的时间。这三点是影响质量最根本的三要素,如果在需求阶段三者无法抉择平衡,那后续测试工作的开展难度会变得很大。

开发阶段:进入开发阶段时一般本版本的迭代计划就确定了,包括技术实现方案、提测时间、验收和发布时间。这个时候的重点在于尽可能提升研发编码质量(code review&单元测试),以及做好质量卡点(提测质量&冒烟测试),以便于降低后续执行测试用例时的成本。

测试阶段:正常来说,测试阶段可以划分为四个部分,即集成测试(接口测试&执行用例)、系统测试(业务链路测试&组合场景测试)、回归测试(全业务链路测试)、验收测试(产品业务方介入,评估是否符合需求要求和预期)。

发布阶段:发布阶段测试工作的重点,其实就是变更检查。因为发布阶段,是将代码合并,发布到灰度/预发环境,其中涉及到很多的参数&字段&文件变更,如果这个阶段对于变更没有很严格的规范和变更检查,那么很容易导致发布到线上时出现各种各样的线上问题。

 

回归测试要解决什么问题

从提测到线上发布,大部分的测试活动开展集中在这个阶段。其中:

  • 单元测试是验证最小实现单元的逻辑符合预期;
  • 冒烟测试是保证后续测试活动可以正常开展不被主流程阻塞;
  • 集成测试主要是验证单一业务模块的数据交互逻辑和功能实现符合预期;
  • 系统测试主要是验证多个应用之间的调用依赖关系以及复杂业务场景的功能实现正确与否;
  • 回归测试时会将各个develop分支代码合并,验证已发现的bug是否都已修复,以及合并后是否引入了新的bug;
  • 验收测试的主要目的,除了需求和产品介入验证待发布的产品是否符合预期之外,还有就是达成一致的发布决定;

换个角度理解,回归测试将测试的范围从本次迭代的技术团队内部,扩展到了整个软件产品范围。即回归测试之前,大家关注的重点是本次迭代的需求是否实现,是否存在问题;而回归测试,则是要评估本次迭代是否兼容了历史版本,是否会影响之前已实现的功能

软件测试工作除了要保障每次迭代的质量,还要考虑全局的整体软件质量,回归测试的作用就是从阶段走向全局,这也是为什么很多自动化测试工作都是从回归测试阶段介入的原因。

需求可能存在逻辑缺陷,研发在编码实现和修复bug时也无法顾及全局的质量,这才是回归测试的意义。通过更大范围的验证,来保障整体的交付质量符合预期

 

回归测试的实践注意事项

在具体的工作实践中,回归测试遇到的最大挑战,就是回归的范围如何界定。结合我的实践经验,我个人认为可以从如下几点来考量:

  • 选择迭代需求对应的测试用例(确认问题修改的正确性和修改的扩散局部影响性);
  • 选择重点部分的测试用例(如果回归测试成本高耗时久可以如此,但可能会遗漏,因此测试用例需要分级);
  • 选择修改部分直接关联的测试用例(前期测试被修改模块对应的测试用例,进行覆盖验证);
  • 选择修改部分间接影响模块对应的测试用例(比如修改了支付相关bug,选择订单模块的用例进行验证);
  • 选择最小的测试用例集合进行回归(比如直接修改部分100%覆盖,间接影响部分80%覆盖,业务主流程60%覆盖);

上述提到的几点回归测试范围界定的方法仅供参考,因为很多工作并不只是回归测试阶段开展。比如:需求分析阶段就要确定测试点和关联范围;用例设计阶段就要结合需求进行用例优先级和用例集合划分(打标签);集成和系统测试阶段就要对用例和缺陷进行关联,避免遗漏。

软件测试是一个系统性的工作,除了要关注执行细节,还要从全局来考虑,这也是为什么要设计测试计划的原因。

 

标签:思考,回归,实践,测试阶段,用例,测试用例,质量,测试
From: https://www.cnblogs.com/imyalost/p/17767836.html

相关文章

  • MYSQL:由一条慢查询引入思考 (MYSQL8)
    原文地址:https://mp.csdn.net/mp_blog/creation/editor/130300178​ 开始之前,我们先思考以下几个问题(下文将围绕以下三个问题展开):1.什么是慢查询,查询多少秒以上算是慢查询?2.如何解决慢查询和如何避免慢查询?3.提升查询性能必知必会 目录一、慢查询1.1 什么是慢查询?......
  • 2023年石门中学NOIP模拟测试(2023.10.16)
    T1\(\sumn\leq2\times10^6,x\leq10^9\)简单来说,让你在给出的序列中构造差分序列不出现\(x\)的一组解。签到题。对\(x\)分类讨论,排个序,调整一下,注意\(x=0\)时交叉构造以及\(a_i=0\)情况即可。Code#include<bits/stdc++.h>#defineilinline#definerintre......
  • 接口性能测试 —— Jmeter并发与持续性压测
    接口压测的方式:1、同时并发:设置线程组、执行时间、循环次数,这种方式可以控制接口请求的次数2、持续压测:设置线程组、循环次数,勾选“永远”,调度器(持续时间),这种方式可以控制压测周期时间指定并发数例1:设置线程数:10设置执行时间:0设置循环次数:5说明:使10个线程启动并同时运行也就......
  • Linux内核进程管理与调度:策略优化与实践分析
    Linux内核进程管理与调度:策略优化与实践分析原创 李斌 嵌入式悦翔园 2023-05-0611:40 发表于上海关注★星标公众号,第一时间获取信息嵌入式悦翔园本公众号专注于嵌入式技术,包括但不限于STM32、Arduino、51单片机、物联网、Linux等编程学习笔记,同时,公众号内包含大量......
  • XTS测试问题分析
    CTS相关解决方式模块名备注恢复出厂CtsInputTestCases恢复出厂CtsSecurityTestCasesRemoteDPC相关IPV6相关CtsLibCoreTestCasesIPV6相关CtsNetTestCasesIPV6相关CtsAppSecurityHostTestCasesGTS相关开机导航处登google账号Setup......
  • 思考时脑门发热
    思考时脑门发热可能有以下原因:大脑高速运转:当我们进行思考时,大脑处于高速运转状态,这可能导致脑部血液流动增加,进而使脑门发热。紧张和压力:当我们面临紧张或压力大的情况时,身体会产生应激反应,这可能导致脑门发热。这并不意味着思考会导致脑门发热,每个人的体质和感受都是不同的,......
  • 第三方软件测试报告是什么?有什么好处?
    ​ 第三方软件测试报告一、第三方软件测试报告是什么?第三方软件测试报告就是由第三方根据委托测试内容进行测试,通过后出具的测试报告。第三方测试机构具备权威性,出具的测试报告可以作为信息系统项目验收,甲方交付,政府科研课题结项等用途。二、做了第三方测试报告对企业有什......
  • 软件测试|selenium 元素无法选择异常的原因及解决
    SeleniumElementNotSelectableException异常:原因及解决方法简介在进行Web自动化测试时,使用Selenium可能会遇到各种异常情况。其中之一就是ElementNotSelectableException异常,该异常通常意味着在尝试选择一个不可选元素时出现了问题。本文将详细介绍这个异常的原因、可能的......
  • 软件测试|selenium 元素无此属性NoSuchAttributeException问题分析与解决
    SeleniumNoSuchAttributeException异常原因及解析简介在使用Selenium进行Web自动化测试时,我们可能会遇到NoSuchAttributeException异常。这个异常通常在尝试访问一个元素的属性(attribute)时抛出,但该属性不存在。本文将介绍NoSuchAttributeException异常的常见原因以及解决方法,并附......
  • 可观测 AIOps 的智能监控和诊断实践丨QCon 全球软件开发大会总结
    作者:董善东(梵登)本文是作者于9月5日在QCon北京2023(全球软件开发大会)上做的《阿里云可观测AIOps的智能监控和诊断实践》专题演讲文字版。大家上午好,很高兴可以在QCon稳定性和可观测的场子来分享阿里云可观测AIOps的智能监控和诊断实践。我是来自阿里云云原生可观测团队......