聊一聊测试左移及测试右移

102 阅读6分钟

持续测试的核心思想是对每一步都进行测试活动,这里涉及了测试左移、右移的概念。

什么是测试左移?

****测试左移的核心思想是越早发现不合理的地方生产系统出问题的概率就越低。 因此,测试工程师在需求分析阶段就要参与到产品研发的活动中,在需求提出的时候,测试工程师就进行需求分析,将不合理的缺陷在开发阶段前就提出来,减少无效的成本投入

同时,在开发工程师进行编码时,测试工程师并行地按照业务流程设计测试用例,帮助开发工程师在编码完成前识别出部分缺陷。在左移的过程中,测试部门不仅需要做好技术上的支撑,还需要围绕质量意识在IT团队中进行宣讲,将质量保障核心目标渗透到每个人的思维中,促使团队成员积极合作。

什么是测试右移

测试右移是在生产环境中进行一系列测试活动,这些测试活动不仅包括测试的执行,还包括对生产环境中用户体验指标的数据收集,并对数据进行整合分析,为测试过程提供更好的参考依据。

收集的手段不限于基础资源监控业务监控、日志监控、可观测平台等。在生产环境中,测试团队同样可以进行测试操作,即前文提到的生产压测技术。传统性能测试在测试环境中进行。由于软硬件的差异,测试环境无法完全模拟真实业务场景,难以展现复杂业务链路下的性能瓶颈,得出的性能数据跟真实情况是有偏差的。

而生产压测技术实现了生产环境端到端高仿真度压测,能识别场景链路中的性能瓶颈并屏蔽性能风险,成为容量评估与稳定性保障的重要手段。其核心思想是借助流量打标、数据隔离等技术,避免压测流量对生产业务数据的污染,同时复用生产软硬件资源实施压测。

涉及的主要技术能力如下。

全链路流量染色能力。 通过压测平台对输出的压力请求打上标识,在业务系统中提取压测标识,确保完整的调用链路上下文都持有该标识。

全链路数据隔离能力。数据隔离的手段有多种,比如影子数据、影子表、影子库,这3种方案的隔离粒度有差异,相应的仿真程度和维护复杂度也有差异。

全链路日志监控隔离能力。 当应用系统向磁盘或日志分析系统输出日志时,若流量是被标记的压测流量,则将日志隔离输出,避免影响生产日志分析。

全链路风险控制能力。 需要跟生产监控系统自动联动,当达到容量瓶颈或出现预期外情况时,从压端到被压端都可以自动熔断。还应具备压测数据偏移机制、压测流量准入机制、压测流量灰度验证机制、压测接口白名单机制等,避免意外风 险。

测试左移和测试右移的优缺点

测试左移和测试右移是软件开发过程中两种不同的测试策略,它们各自有不同的应用场景、优点以及潜在的缺点。下面我将分别介绍这两种策略的特点:

测试左移

定义:测试左移是指在软件开发生命周期的早期阶段就开始进行测试活动,通常是在需求分析或设计阶段就开始介入。

测试左移的****优点:

早期发现问题:可以在项目初期就发现并修复缺陷,从而减少后期修复的成本。

提高质量:通过尽早地关注质量,可以确保最终产品更加符合预期。

促进沟通:增强了开发人员与测试人员之间的沟通合作,有助于形成更清晰的需求理解。

加速交付:减少了返工的可能性,使得整个开发过程更加高效。

试左移的缺点:

资源消耗:需要更多的前期投入,包括时间、人力等资源。

技能要求:可能需要团队成员具备跨职能的知识和技能,比如开发人员要了解测试技术,反之亦然。

灵活性降低:如果需求频繁变更,则可能会导致过多的前期工作被废弃。

测试右移

定义:测试右移强调的是在软件发布后继续监控其表现,并根据实际使用情况调整测试策略,甚至是在生产环境中直接进行测试。

****测试右移的优点:

真实环境验证:能够基于真实的用户行为和数据来评估系统性能,提供更准确的反馈。

快速响应变化:对于敏捷开发来说尤其重要,因为它允许团队对市场变化做出快速反应。

持续改进:鼓励了持续学习和改进的文化,帮助产品不断优化。

****测试右移的缺点:

风险增加:直接在生产环境中测试可能会给用户体验带来负面影响,特别是当出现严重问题时。

成本较高:维护一个能够安全执行生产环境测试的基础设施可能需要额外的投资。

复杂度提升:管理不同环境下的测试(如预生产、生产)增加了整体流程的复杂性。

综合考虑

实际上,在许多情况下,最理想的做法是结合使用测试左移和测试右移的方法,以充分利用两者的优势。例如,在项目开始时采用测试左移策略确保基础质量,同时保持一定的灵活性;而在部署之后利用测试右移来收集实际运行中的数据,进一步完善产品。这种综合方法可以帮助组织实现更高质量的产品交付,同时有效地管理成本和风险。