测试策略(Testing Strategy)
测试即设计——好的测试是 BC / Aggregate / 不变量意图的最直接表达。本 group 解决 L3 第二问:"什么测、怎么测、测多少?"
本 group 包含
| 文档 | 核心问题 | V2 节点 |
|---|---|---|
| Test Pyramid | 单元 / 集成 / E2E 怎么配比? | B3 分解 |
| Domain Model Test | 领域模型如何测? | B4 抽象 |
| Testing as Design | 为什么测试是设计? | B4 + B7 |
| Contract Test | 跨服务契约如何测? | B6 权衡 |
| Test Doubles Strategy | Mock / Stub / Fake 怎么选? | B4 抽象 |
| Static Analysis Strategy | 静态分析如何辅助测试? | B7 表达 |
测试金字塔
测试金字塔 = 3 层
1. 单元测试(多) — 单个类 / 聚合不变量
2. 集成测试(中) — 跨聚合 / Repository / ACL
3. E2E 测试(少而精) — 跨服务的关键路径阅读顺序
test-pyramid (基调:金字塔比例)
↓
testing-as-design (哲学:测试即设计)
↓
domain-model-test (领域测试)
↓
contract-test (跨服务契约)
↓
test-doubles-strategy (Mock 选型)
↓
static-analysis-strategy (静态分析)与其他 group 的关系
- 上游:02-code(代码 → 单元测试)
- 下游:04-deployment(测试 → CI/CD)、05-observability(测试 → 质量门禁)
关键洞察
测试策略的核心不是"覆盖率"——是"测试作为设计文档"——
- 好的领域测试 = 用代码描述业务不变量
- 好的契约测试 = 用代码描述服务承诺
- 好的 E2E 测试 = 用代码描述关键业务路径 测试不是验证手段——是设计制品。
相关链接
- L3 Code——代码基础
- L1 Aggregate——不变量 → 领域测试
- V2 B4 抽象——抽象 = 可测
- V2 B7 表达——测试即表达