分享一个十几年前经历的真实案例:
某项目团队基于第三方的内容管理系统CMS开发一个网站,网站有很多图片和视频数据,数据量有2T。一直到上线前一个多月UAT环境才准备好,一测试才发现第三方的CMS平台根本支持不了这么大的数据量,网站因此被延期了半年才上线……
这个项目最大的问题是,关键的技术验证被推迟到了UAT阶段,而不是在需求和架构设计阶段就考虑清楚。
如果在系统选型时,能够考虑到用户真实场景,能先做个小规模的 POC(概念验证),导入部分数据进行性能测试,或者在开发早期就提供一个低配版 UAT 环境,问题是不是可以更早暴露,而不是等到快上线才发现 CMS “吃不下”2T 数据?
这就是测试左移的价值所在:让测试活动提前,而不是等到测试阶段才去找问题。
测试左移的真正含义
很多人以为的测试左移,就是让测试人员更早介入需求阶段,甚至提前编写测试用例。实际上,测试左移的核心并不是“测试人员前移”,而是“测试活动前移”,确保质量在整个软件开发生命周期的每个阶段都得到关注。
简单来说,测试左移的关键是:
✅ 测试活动提前开展,不等到开发完成后才去验证找问题。
✅ 不仅仅是测试人员,开发、运维、产品、甚至业务方都可以参与到前期的测试活动中。
✅ 不仅仅关注需求质量,也关注设计质量、代码质量、过程质量等多个维度。
测试左移的关键价值之一:提升需求质量
而需求质量,作为交付的起点,决定了整个交付过程的顺畅程度,自然是测试左移的重点之一。如果需求不清晰、不完整,开发容易误解,测试难以验证,最终导致大量返工和沟通成本。
一个高质量的需求,应该具备以下特点:
- 清晰:描述明确,没有歧义,团队成员对需求的理解是一致的。
- 完整:覆盖正常流程、异常情况、边界条件,而不仅仅是一个“标准场景”。
- 可测试:有明确的验收标准,而不是“界面美观”“体验更流畅”这种主观判断。
- 可衡量:有具体的数据或指标,团队可以判断是否达到了目标。
而测试左移可以通过需求评审、业务场景分析、验收标准制定等方式,在需求阶段就发现问题,避免后续的反复修改。
测试左移的更广泛价值:缺陷预防
虽然需求质量很关键,但测试左移的价值远不止于此。真正的测试左移,是在整个软件开发过程中,让质量工作提前发生,尽可能在多个阶段做到缺陷的预防。
质量活动前置的几个关键点:
- 开发设计评审:确保设计方案可行,并考虑了可测试性。
- 代码评审、静态扫描和单元测试:尽可能保障每次提交的代码质量,尽早发现和修复代码漏洞和Bug,而不是等到测试阶段才被发现和修复。
- 持续集成和自动化测试:让测试活动融入开发过程,尽早发现回归问题,而不是等到版本发布前才集中测试。
总结
测试左移,不仅是测试人员提前介入,而是让质量工作提前发生,让整个团队共同参与质量保障,通过尽早、快速地获取反馈,在每个环节做好缺陷预防,实现质量内建。
推荐阅读