一般来说,在软件工程生命周期中,测试是非常重要的,在正常的软件开发中,总会有无可避免的Bug及问题,这时候就需要测试人员来进行对软件的质量检验,确保软件上线后不会出现大问题。

测试左移测试右移

测试左移指的是早期问题检测、持续集成、尽可能自动化,以及更深入地了解客户需求以改善他们的体验。
对于向右移动的测试,这是相对于生产环境中的测试而言的,生产环境提供真实环境、实际性能以及目标用户的反映和评估。
  • 测试左移:测试左移,本质上是借助工具和测试手段更早地发现问题和预防问题。

    • 需求:对需求、架构和设计模型的测试;
    • 开发:着重增加对单元、组件和服务层的测试;
    • 持续测试:自动化测试。
  • 测试右移:对测试来说,版本上线后需要持续关注线上监控和预警,及时发现问题并跟进解决。

    • 灰度发布:新版本线上测试;
    • 监控:合理的性能监测、数据监控和预警机制;
    • 用户反馈:线上问题处理、跟踪机制。

测试的投入和产出

投入

  • 测试团队的人力成本,机器成本
  • 时间成本(在生命周期中占用时间)
    产出
  • 产出的缺陷Bug;
  • 测试所拦截的缺陷;如果逃逸,它们会造成损失,而这些损失被避免了。

以上,测试要提高投入产出比,也需要对速度负责,也就是所谓的“效能”。

测试左移

测试左移,本质上是借助工具和测试手段更早地发现问题和预防问题。

评审–需求评审研发设计评审 测试设计评审

除代码的实现阶段以外,需求环节、研发设计环节都可能产生bug,越早发现bug,解决该bug的代价越低,评审也是多角色对齐认知,分摊风险和责任的过程

技术对齐–实现与需求模型与测试

  • 使用标准模型定义,例如thrift之于rpc, swagger之于http·研发代码改动时,自动同步到标准模型定义,标准模型定义也可以自动生成测试模型类代码;
  • 标准模型可以生成可视化接口文档,也有利于测试提早介入。

自测赋能

  • 约定自测规范
  • 开发间交叉测试
  • 搭建自测骨架
  • 覆盖率监控

测试左移的误区

误区1:测试左移就是把测试交给研发;质量不是测出来的,所以就不需要测试了。
质量不是测出来的,但是如果不测,那就连质量是多少都不知道。所以测试本身是衡量质量的一个方法。
误区2:单元测试是测试左移的核心。
大部分的bug其实是发生在集成阶段,就是人和人之间沟通、系统和系统之间沟通的这样一个阶段。单元测试本身并不能拦截系统绝大多数的bug。
误区3:测试左移的主要是,在测试阶段之前发现bug。
广义上来说,测试左移并不是说我一定要在测试的左移过程中发现足量的bug。而是说,我也可以为测试打通各个环节,提高效率、让自己的测试阶段发现更多的问题,让自己的测试速度进行得更快。

测试右移

在测试左移确保满足质量和业务需求的地方,通过测试右移方法确保在现实世界环境中的运行和性能。 这种实践允许测试通过控制实验转移到生产环境中,涉及到功能、性能、容错性和用户体验。 生产中的测试允许使用真实的用户体验和分析难以复制或预期的用例。测试右移很可能是需要把这个测试放到发布之后,可能会有一些风险,所以我们要考虑如何去规避它。

灰度发布

本质就是另外构造一套环境,先把代码发布到这套环境中,只放少量指定的流量进来试用一段时间,通常为试用一周或两周,达到以实际的线上流量检测代码是否存在问题的目的,减少上线后大量流量运行下出问题的概率。引入这样的一个过程,那么测试就会先在灰度环境上做验证,也是目前大厂都必有的一个环节。

线上监控

项目上线后仍然需要关注服务的运行情况,以便在出现系统问题时能够快速做出反应。这一点主要是测试可以右移参与线上环境监控工具的部署,让整个线上的监控体系更加完善。即使部署的工作都是运维在做,监控体系已经非常完善,测试也可以接入告警,当业务接口出错或者调用量超过阈值时,测试可以接收到对应的告警信息,和研发一起定位解决问题。

用户反馈

测试参与到线上用户反馈的问题中去,帮助复现和定位各类线上用户反馈的问题,既可以解决问题,也可以更多的了解用户实际使用过程中的问题和需求,帮助后续更好的做好需求评审和测试覆盖工作。

测试右移的误区

误区1:既然可以测试右移来测试,那就不用测试了,直接发布版本上线。
在某些情况下是可以采用测试右移来进行测试的,但例如像面向B端的产品,一次失败的测试和交付那可能就流失掉这个客户了。
误区2:监控可以拦截大部分线上问题。
用户的反馈是很重的,是对监控的补充,只有用户反馈了,才知道是哪里的错误,如:运营策略或者产品策略等非技术的原因。

结语

不管是如何测试,是左移还是右移,都是为产品质量服务。不要把提测认为是测试活动的开始,上线是测试活动的结束,更不要认为质量只是测试同学需要关注的。在这新的敏捷开发时代,新的挑战,测试人员要有新时代的视角和心胸,要做好面对的严峻挑战的准备。

最后修改:2024 年 08 月 28 日
如果觉得我的文章对你有用,请随意赞赏