测试层级与覆盖策略
测试按层级组织:单元测试验证代码逻辑,集成测试验证模块或系统之间的交互,系统测试验证端到端功能与非功能指标,验收测试验证业务需求与验收准则。各层目标不同,覆盖重点从代码逻辑逐步演进的业务流程;越靠前的层级发现问题,定位与修复成本越低。
基本信息
| 层级划分 | 单元、集成、系统、验收 |
|---|---|
| 执行主体 | 开发、测试、业务用户分别承担不同层级 |
| 覆盖重点 | 代码逻辑、接口契约、业务流程、验收准则 |
| 非功能测试 | 性能、安全、兼容,通常并入系统测试层 |
| 进入判据 | 上一层关键缺陷清零或达到约定通过率 |
典型使用场景
- 开发阶段:用单元测试与静态检查拦截基础逻辑缺陷,保持快速反馈
- 联调阶段:用集成测试验证接口契约与数据流,暴露契约不一致问题
- 发布前:用系统测试覆盖端到端业务流程与性能、安全等非功能指标
- 验收前:用验收测试对照验收准则逐条确认,形成验收证据
- 缺陷定位:按层级设置用例,避免所有问题都堆到系统测试阶段才发现
分层测试要点
分层测试要点
单元测试:覆盖函数与模块边界,异常分支与边界值必测
集成测试:验证接口契约、数据格式与错误码约定
系统测试:端到端业务流程 + 性能、安全、兼容等非功能
验收测试:对照验收准则与用户场景,业务方参与确认
进入下一层的判据:上一层严重缺陷清零或通过率达约定值
例:接口字段类型不一致应在集成测试拦截,而非留到验收层级职责划分
| 层级 | 目标 | 覆盖重点 | 执行主体 |
|---|---|---|---|
| 单元测试 | 验证代码逻辑 | 函数与模块边界、异常分支 | 开发 |
| 集成测试 | 验证模块间交互 | 接口契约、数据流与错误处理 | 开发与测试 |
| 系统测试 | 验证端到端功能与非功能 | 业务流程、性能与安全 | 测试 |
| 验收测试 | 验证业务需求与准则 | 验收准则、用户场景 | 业务方与测试 |
非功能测试(性能、安全、兼容)常被压缩到上线前,但这类缺陷上线后的修复代价最高,应在系统测试层与功能测试同等对待。
只做系统测试跳过单元与集成层,缺陷定位成本会成倍上升,且大量低级缺陷挤占测试资源,掩盖真正严重的业务问题。