测试七原则是什么
测试七原则是 ISTQB 基础级大纲归纳的七条通用测试规律:测试证明缺陷存在而非不存在、穷尽测试不可行、尽早测试、缺陷聚集、杀虫剂悖论、测试依赖上下文、无缺陷谬论。它们不是操作手册,而是讨论测试策略时的统一语言:当团队争论要不要再补测试、测到什么程度可以停、投入往哪倾斜时,这七条提供了公认的推理起点。理解每条原则的反面误读,同样重要。
基本信息
| 出处 | ISTQB CTFL 4.0 大纲第 1 章 |
|---|---|
| 性质 | 通用测试原则,不绑定具体技术栈 |
| 第一条 | 测试证明缺陷存在,通过测试不能证明无缺陷 |
| 第二条 | 穷尽测试不可行,除极简场景外无法覆盖所有组合 |
| 第六条 | 测试依赖上下文,不同系统与风险级别采用不同策略 |
| 用途 | 测试策略讨论、评审与投入分配的通用语言 |
七条原则与落地动作
| 原则 | 要点 | 落地动作 |
|---|---|---|
| 测试证明缺陷存在 | 通过测试只能发现缺陷,不能证明系统没有缺陷 | 停止标准不写无缺陷,改写风险覆盖与退出条件 |
| 穷尽测试不可行 | 无法组合执行所有输入与前置条件 | 用等价类、边界值、风险排序收敛用例集合 |
| 尽早测试 | 测试活动越早介入,返工代价越低 | 需求评审与设计评审阶段就引入测试视角 |
| 缺陷聚集 | 缺陷常集中在少数模块 | 结合变更频率与业务价值决定投入倾斜 |
| 杀虫剂悖论 | 同一组用例反复执行会逐渐失效 | 定期更新与扩选用例,引入探索性测试补充 |
| 测试依赖上下文 | 不同系统与风险级别采用不同测试策略 | 按业务风险裁剪文档、用例深度与自动化比例 |
| 无缺陷谬论 | 修完缺陷不等于满足用户需求 | 把验收标准与用户任务验证纳入发布门槛 |
讨论中的典型用法
- 评审会上解释为什么通过测试后仍要保留风险说明
- 制定停止标准:用风险覆盖替代穷尽组合的期待
- 推动测试左移:用尽早测试原则争取评审环节席位
- 分配维护预算:用缺陷聚集与变更数据决定重点模块
- 设计用例保鲜机制:按杀虫剂悖论定期更新用例池
- 裁减流程:按依赖上下文原则对不同项目使用不同重量级流程
「测试证明缺陷存在」不是「测试不重要」:它的意思是测试通过只意味着没发现缺陷,不能当作质量无风险的证明;发布决策要结合风险与置信度表述。
缺陷聚集与杀虫剂悖论常被误用:前者不是给个别模块无限加测的理由,后者也不是「用例无用论」,而是提醒用例需要随产品演进而更新。
七原则之间互相呼应:穷尽不可行所以需要基于风险抽样,缺陷聚集提供抽样的历史依据,杀虫剂悖论则要求抽样方法持续更新。