了解左移

已完成

左移的目标是通过在管道早期执行测试提升质量。 它表示短语“快速失败,经常失败”,即合并测试和过程改进,从而减少运行测试所需的时间和稍后失败的影响。

目的是确保在将更改合并到主分支之前,已完成大部分测试。

Screenshot of the shift-left representation image showing Unit Tests and Functional Tests during the pipeline lifecycle.

许多团队发现,在开发生命周期内其测试运行时间过长。

随着项目规模的扩大,测试数量和测试本身将大幅扩大,运行完整的测试需要数小时或数天。

测试会进一步推进,尽可能地运行到最后一刻,并且生成这些测试所带来的好处要到代码提交后很久才能实现。

在实现任何价值愿景的过程中,DevOps 团队应该坚持几个基本原则。

Screenshot of the quality vision principles current and future test portfolio.

除此之外要考虑的重要特征:

  • 单元测试:这些测试需要快速可靠。
    • Microsoft 一个团队在不到 6 分钟的时间内并行运行了 6 万多个单元测试,并打算将时间缩短到 1 分钟以内。
  • 功能测试:必须是独立的。
  • 定义测试分类:这是 DevOps 的一个重要方面。 开发人员应了解不同方案中合适的测试类型。
    • L0 测试:一种广泛使用的快速内存中单元测试。 此测试仅依赖于测试的程序集中的代码。
    • L1 测试:可能需要程序集和 SQL 或文件系统。
    • L2 测试:针对可测试服务部署运行的功能测试。 这种功能测试需要服务部署,但可能会有关键服务依赖项被排除。
    • L3 测试:针对生产运行的受限类集成测试。 测试需要完整的产品部署。

查看 Microsoft 中左移的案例研究:左移帮助测试实现快速可靠

有关详细信息,请参阅: