测试策略与测试金字塔

测不完,也不能不测。 全靠人点一遍又慢又漏;全写 E2E 又慢又脆。要在「测什么、测多少、谁测」上做策略选择:测试策略回答这些问题;测试金字塔给出比例——单元多、集成适中、E2E 少,既保证覆盖又控制成本。本章从整体讲测什么、测多少、谁测金字塔的实践含义、自动化与手工测试的划分,以及测试与质量内建

一、测试策略:测什么、测多少、谁测

测试策略是在项目或产品层面,对测试范围、深度、分工和投入的规划。三个核心问题:测什么——功能、边界、非功能(性能、安全)、回归范围;测多少——关键路径必保、次要功能抽样、风险高的加码;谁测——开发自测与单测、QA 负责场景与回归、自动化由谁写谁维护。策略不必写成长篇大论,但要有明确约定:哪些必须自动化、哪些可以手工、发布前至少要过哪些检查。

测什么
功能正确性、边界与异常、关键非功能(性能/安全)、回归范围。按业务优先级与风险排:核心流程必测,边缘场景可抽样。
测多少
关键路径全覆盖;次要功能适量;高风险模块加码。平衡「足够放心」与「成本与时间」,避免要么全测要么不测。
谁测
开发:单测、本地验证、参与用例设计。QA:场景与回归、探索性测试、自动化维护。约定谁写/谁维护哪类测试,避免空白或重复。
测试策略三问:测什么、测多少、谁测

二、测试金字塔:单元多、集成适中、E2E 少

测试金字塔(第 17 章已介绍)从策略上强调比例:底层单元测试数量最多——快、稳、便宜,覆盖逻辑细节;中间集成测试适量——测模块/服务协作、真实依赖;顶层E2E数量少——测完整用户场景,慢且脆弱但能验证「端到端通」。这样既能快速反馈(单测秒级)、又能验证连接(集成)、还能保关键路径(E2E),同时控制维护成本和执行时间。反模式是「倒金字塔」:大量 E2E、很少单测,结果慢、脆、难定位问题。

测试金字塔:底层单元多,顶层 E2E 少
单元测试
数量多;每次提交跑;覆盖逻辑与边界
集成测试
数量适中;接口与数据流;可每日或每 PR 跑
E2E
数量少;关键用户路径;发布前或关键节点跑
各层数量与运行节奏示意

三、自动化与手工测试的划分

自动化测试由脚本执行、可重复、适合回归和 CI。单元、大部分集成、核心 E2E 都应自动化,保证每次提交或每日构建都能跑一遍。手工测试适合探索性测试、一次性验证、UI 或业务快速变化尚未稳定的场景。划分原则:重复执行、稳定场景→ 自动化;探索、一次性的、尚未定型→ 先手工,稳定后再考虑自动化。自动化要有明确负责人(谁写、谁修),否则坏了没人管会逐渐失效。

适合自动化

  • 回归:每次发布都要跑的用例
  • 稳定接口与逻辑:单测、集成、核心 E2E
  • CI 中每次提交或每日跑的检查
  • 明确预期、可断言的场景

适合手工(或后补自动化)

  • 探索性测试、新功能首次验证
  • UI/流程尚未稳定、变更频繁
  • 一次性或低频的检查
  • 难以自动断言(如「看起来正常」)的场景
自动化与手工的典型划分

四、测试与质量内建

质量内建(Build Quality In)指把质量活动嵌入开发流程,而不是事后「测一轮」。测试策略与金字塔就是内建的一部分:单测随代码写PR 通过才合并CI 跑不过不发布关键 E2E 在发布门禁里。这样「质量」不是 QA 阶段才管,而是每个提交、每次合并都在验证。策略上要约定:哪些测试是门禁(必须过)、哪些是预警(失败要查但不挡发布)、谁负责修、多长时间内修,避免测试沦为摆设。

一句话: 测试策略回答测什么、测多少、谁测;测试金字塔要求单元多、集成适中、E2E 少,兼顾反馈速度与端到端保障。自动化用于重复与稳定场景,手工用于探索与未定型场景;自动化要有明确维护责任。质量内建:测试进 CI、门禁与预警分清、每个提交与合并都在验证质量。

小贴士: 若当前 E2E 很多、单测很少,不要一次性推倒重来;先约定「新代码必须有单测」「新 E2E 要评审必要性」,再逐步把关键路径的 E2E 稳住、其余收缩,避免「倒金字塔」越撑越大。

五、小结

测试策略明确测什么、测多少、谁测,并在项目内达成一致。测试金字塔:单元多(快、便宜)、集成适中、E2E 少(关键路径),避免倒金字塔。自动化覆盖回归与稳定场景,手工负责探索与未定型部分;自动化需明确维护人。质量内建:测试进 CI、门禁清晰、质量随每次提交与合并验证。下一章讲集成测试与端到端测试,把集成与 E2E 的写法、环境与稳定性说细。