
传统的测试模式是"测试右移"——问题在开发完成后才被发现,修复成本高昂。测试左移(Shift-Left Testing)将测试活动前移到开发阶段,在问题产生时就发现它,而非在问题产生后。
测试左移的核心逻辑是缺陷成本曲线。缺陷发现越晚,修复成本越高。在开发阶段发现一个bug的成本,可能是测试阶段的十分之一,是生产阶段的百分之一。左移的目标是更早、更快地发现问题。
需求阶段的测试活动是左移的第一站。需求评审时,测试人员参与评估需求的可测试性、完整性和一致性。识别模糊的需求、遗漏的边界、潜在的风险。
设计阶段的测试活动同样重要。架构评审时,评估设计的可测试性。考虑哪些组件需要单元测试、如何Mock外部依赖。测试可行性是架构决策的重要因素。
代码审查(Code Review)是测试左移的关键环节。测试人员参与代码审查,关注测试覆盖、边界条件、安全问题。代码审查中发现的问题往往是最容易修复的。
单元测试是左移的核心实践。在开发阶段就编写单元测试,确保每个函数、方法都有对应测试。测试驱动开发(TDD)天然实现测试左移。
静态代码分析是左移的重要工具。SonarQube、ESLint等工具可以在不运行代码的情况下发现问题。集成到CI流程中,每次提交都自动检查。
协作是测试左移的文化基础。开发人员与测试人员需要紧密协作。测试左移不是测试人员的工作转移,而是质量责任的左移。开始的最佳时间是现在。