1. 测试金字塔(Unit/Integration/E2E)模型,各层的测试投入比例和覆盖目标?
测试金字塔(Unit/Integration/E2E)模型是什么?各层的测试投入比例和覆盖目标分别是什么?
- 测试金字塔的分层结构与设计原则
- 各层的投入比例与覆盖目标
- 金字塔模型的适用场景与局限
测试金字塔(Test Pyramid)由 Mike Cohn 提出,将测试按"越底层越靠近代码、越顶层越靠近用户"分为三层:Unit(单元测试)、Integration(集成测试)、E2E(端到端测试)。设计原则是"底层多、顶层少",即单元测试数量最多、覆盖最广,集成测试居中,E2E 测试最少。典型投入比例约为 70% 单元测试、20% 集成测试、10% E2E 测试。各层覆盖目标不同:单元测试覆盖单个类/方法的逻辑与分支,速度快、定位准,提供最快速反馈;集成测试覆盖模块间、服务内组件的协同与数据流,验证接口与契约;E2E 测试覆盖完整用户路径与业务关键场景,验证系统整体行为,但速度慢、易碎、维护成本高。金字塔的价值在于把反馈速度与覆盖广度结合起来,让绝大多数问题在低成本底层被发现。
金字塔的核心是"成本与速度的权衡"。底层测试快、稳、成本低,应尽量覆盖;顶层测试慢、脆、成本高,只应覆盖关键业务场景。过度依赖 E2E 会让反馈变慢、维护成本飙升,因此金字塔指导团队把测试重心下移,用大量快速底层测试支撑短反馈循环。