• 1
  • 2
分享
  • 测试左移和测试右移,我们为何要“上下求索”?——软件测试圈
  • 北极 2022-11-02 15:06:27 字数 2661 阅读 1770 收藏 2

传统测试流程与敏捷测试

在探讨测试左移和测试右移之前,我们先来聊一下传统的软件测试流程(瀑布模型)和目前很多公司在用的测试流程(敏捷模型)的区别。

软件测试作为软件研发的一部分,有什么样的开发模式,就有与之对应测试模式。因此就有了适合传统瀑布开发模式的传统测试和适合敏捷开发模式的敏捷测试。

11.png

22.png

  • 传统测试是在程序开发完成之后,更强调测试的独立性,将开发和测试两个角色分的比较清楚,而敏捷测试更强调整个团队对测试负责。

  • 传统测试具有明显的阶段性,而敏捷测试更强调持续测试和持续质量反馈。

  • 传统测试强调测试的计划性,而敏捷测试强调测试的速度和适应性,需要不断调整测试计划以适应需求的变更。

  • 传统测试更关注测试文档,如测试计划、测试用例、测试缺陷和测试报告等,而敏捷测试更关注产品本身以及交付的客户价值,强调面对面的沟通协作,持续质量反馈和缺陷预防。

  • 传统测试鼓励自动化,但成功与否没有致命的影响,而敏捷测试需要由良好的自动化测试框架支撑,因为在敏捷模式下,产品迭代速度快,市场不断调整,客户需求不断变化,单纯的手工测试越来越无法适应整个变化过程,测试人员如何快速响应并保证产品在上线后的质量能够满足客户要求,如何保证在上线一个新功能的同时快速对旧功能进行回归,保证旧功能不被新功能影响而出现严重的Bug,自动化测试无疑是一个不错的选择。

从两者的区别,我们可以看出传统测试最明显的弊端就是介入晚以及没有持续测试。

所以,为了从根本上解决这类问题,于是开始推广并实践测试左移和测试右移。

测试左移

测试左移,顾名思义就是测试要在提测之前介入软件研发流程,及时发现错误,避免将许多本可以规避的问题带到测试阶段才发现,导致修复成本过高,甚至导致项目延期无法按时交付。提倡预防缺陷胜于发现缺陷,需要把质量构建推向源头,也就是产品需求,因为最严重的错误不外乎是系统不能满足用户需求。

测试左移通过持续对产品需求和设计进行评审,在需求评审时不只是简单了解需求,而是要去评估需求的质量,分析需求的完整性以及合理性,及时发现需求和设计中的问题,从而可以更好地避免由于产品文档不完善导致需求不明确的问题。

测试左移还包括代码评审,以及让开发做更多的测试,加强单元测试,开发自测,持续集成等。在开发阶段参与设计方案的设计,了解开发的实现方式和代码框架,从而可以更好地评估改动范围、需要回归的内容以及是否有遗漏的模块和系统。测试还可以通过提供测试用例或自动化测试脚本的方式给开发,让开发在设计时考虑更全面,同时方便开发自测,有助于提高产品质量,避免在收到提测包时冒烟测试主流程都没通过,导致测试效率低下。

测试还需要不断培养产品、开发同学的质量意识,提倡团队对质量负责,同时提供必要的技术支持,协助产品、开发更好地进行测试,比如:公共测试用例、测试工具、测试脚本等。

这样一来,你会发现提测的质量会大大提高,原本要花一天时间冒烟的功能很快就能通过。

测试右移

测试右移指的是在软件发布之后关注线上环境,持续监控软件的线上质量,以验证产品在用户的实际环境、数据、场景下,功能和性能是否符合用户预期,而不是项目发布完成就万事大吉了。

比如以下测试右移的活动:

通过监控预警系统,及时发现问题并跟进解决,将影响范围降到最小。监控预警系统对IT基础设施,以及业务系统中的大量数据进行采集处理,监测系统运行状况,通过可视化看板展示系统及服务的运行状态、资源使用情况,当发生异常时,能及时告警,并帮助运维人员快速定位问题。

  • 对各种IT系统设施进行监控,比如:操作系统、服务器、虚拟机、容器和网络通信信息,CPU、内存、磁盘等资源的使用情况;对中间件监控,比如:数据库中间件、MQ消息队列、Web服务器等系统,监控一段时间的请求量、响应时间以及访问日志信息;对应用监控,比如:服务依赖关系和接口性能监控;对业务监控,例如:关注线上业务及用户使用情况,使用场景,多关注用户价值高、使用率高的功能,在用例中补充遗漏的场景,尽量多地进行覆盖;对用户体验监控,比如:加载时长、卡顿率等。

  • 数据采集处理包括数据收集、数据处理、数据应用,处理后的数据可以在监控面板上以曲线图、饼状图和仪表盘等直观的方式展示,同时根据设定的阈值和告警规则监控各项指标和数据状态,当符合告警规则时,系统通过邮件、短信等方式通知相关人员,以达到及时响应的效果。

在线性能测试

  • 全链路压测

  • 在线性能监控

  • 流量回放技术

  • 安全性监控

在研发阶段进行代码的静态分析、安全性功能验证和渗透测试等,以发现代码和系统级别的安全漏洞。在产品上线后,通过监控和检查,发现系统的安全漏洞并及时修正。比如:身份认证、授权、访问控制和不可抵赖等是否已经整合到系统内;对用户名、访问时间、操作和资源地址进行审计,判断是否符合规范和要求;入侵检测,检测一些用户是否越过访问控制机制进入系统内部,对访问频率过高的情况进行警报并暂时冻结等。

A/B测试

把新旧两个版本同时推送给不同的客户,通过对比实验进行科学验证,从而判断这些变化是否产生了更积极并符合预期的影响力,为下一步的决策或改进提供依据。

混沌工程

对于大规模、高复杂的服务系统来说,仅在测试环境进行测试已经无法满足质量需求,在生产环境下进行测试必将会在现在及未来云时代中占据重要地位,而混沌工程及其基于故障注入的测试提供了在生产环境中进行科学实验的方法和技术。

总结

不得不承认测试左移和测试右移的提出,对于测试角色来说,无疑是一个很大的进步。

但是,这也反映出了一些问题。测试左移在一定程度上代表着测试人员对即将拿到一个什么样的半成品充满了担忧,所以我们迫不及待想做些什么,于是我们拼命地往左边挤,力求尽快发现一些错误,将这些问题扼杀在摇篮里,避免自己接到一手烂摊子而焦头烂额。测试右移在一定程度上是测试人员对自己测试的不自信,因为有时候我们绞尽脑汁设计测试用例,通过多轮反复验证,满怀期待的上线,但是用户总会以某个不可思议的角度狠狠地敲你一棒子,于是我们通过测试右移,持续测试,关注线上环境,赶在客户发飙之前悄悄地把缺陷解决。

同时也反映了测试人员对质量的影响是很小的,单纯在测试阶段执行测试是不够的,所以我们不得不“上下求索”,以求一份安心,不应该把提测认为测试活动的开始,把上线认为是测试活动的结束,更不要认为质量只是测试人员需要关注的,因为质量不是被测试出来的而是被设计出来的,应该伴随整个软件的生命周期。


作者:测试蔡坨坨

本文链接:https://www.cnblogs.com/caituotuo/p/16513977.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 前言JMeter在请求时,肯定会需要参数传递,参数值如果不变动或者不需要加解密这些操作,则操作上都是比较简单。如果参数值不固定,而且需要加解密正确的时候该如何操作呢?先说一下我这个接口大概的需求:该接口主要实现获取出符合要求的二维码链接;请求参数通过RSA加密,需要生成符合要求的RSA加密值;不知道加密具体机制,但是有源码可以直接调用。实现1、生成jar包这一步很重要,如果自己熟悉java,则需要自己读懂开发的java代码,提取出我们需要的方法,对其进行修改,并且进行打包。如果不行,则可以找开发帮忙。这里不能贴出我写的源码,毕竟每个公司需求也不一样。这个步骤,我主要是对传入参数进行了修改,只需...
            0 0 1067
            分享
          •   一、简介  wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负载。  wrk是开源的, 代码在 github 上:https://github.com/wg/wrk  安装:https://www.cnblogs.com/savorboard/p/wrk.html   优势:轻量级性能测试工具安装简单学习曲线基本为0,几分钟就学会使用了基于系统自带的高性能I/O机制,如epoll,kqueue,利用异步的事件驱动框架,通过很少的线程...
            0 0 3355
            分享
          • 新浪科技讯10月20日上午消息,小米公司创始人雷军在其Twitter上发文分享了其对电动汽车行业的一些看法。雷军表示,他认为电动汽车是一种以智能化、软件化和用户体验为核心的消费电子产品。汽车行业的本质将从机械演变为消费电子,市场份额高度集中于顶级玩家手中。雷军还表示,他相信,当电动汽车行业成熟时,世界前五大品牌将占据80%以上的市场份额。他称:“换句话说,我们成功的唯一途径是成为前五名之一,并且每年出货量超过1000万辆。竞争将是残酷的。”作者:佚名文章来源:新浪科技_新浪网 (sina.com.cn)
            0 0 1051
            分享
          • 兼容性测试方案兼容性问题屏幕分辨率兼容性问题;软件(iOS和Android系统版本及不同厂家的定制ROM)兼容性问题;硬件(不同的CPU、内存大小等等)兼容性问题;网络(2G/3G/4G/WIFI)兼容性。公司内部兼容性测试1、屏幕分辨率、软件版本和硬件兼容性通过客户端嵌入统计SDK,统计出当前已有用户的分辨率、软件版本和手机使用排行;购买相应排名前十位的设备,这三个属性可相互交叉覆盖到即可注:解决的是基本和必须的兼容性问题。2、网络兼容性通过购买不同的手机卡支持相应的2G/3G/4G,和使用公司现有的WIFI网络解决网络兼容性问题。最终需要在测试用例中体现。3、辅助工具monkey随机事件测...
            0 0 920
            分享
          • 在第一模块,我们用一种新的方式理解了测试用例的概念和意义,也通过对其定义的拆解,了解了好的测试用例的基本特点,这一模块,我们就来看看一个好的测试用例怎么写。作为这一模块的第一节,我们来看看好用例的标准。需要说明的是,好用例的特点是很抽象的一种感觉,偏主观感觉;而好用例的标准,则更多的从客观标准和要求出发,能够去衡量用例的。说清楚了这一点,那我们就开始盘点下我们对好用例标准的定义。唯一的检查点在我们的标准中,作为一个好的用例的第一个标准,即每个用例有且仅有一个检查点。也许有的同学会问,我一个用例的预期结果里面有多个内容,这样不可以吗?不可以的。在我们的标准下,每个用例都只有唯一的检查点,执行到此...
            0 0 84
            分享
      • 51testing软件测试圈微信