测试独立性是什么
测试独立性指由不同人员或角色执行测试,以减少作者偏见带来的盲区。独立性从同人自查到独立组织逐级增强:开发自测、结对互测、专职测试、外部测试;级别越高视角越远,但沟通与交接成本同步上升,需要按风险选择而不是一刀切。
基本信息
| 自查 | 开发写单元测试:成本低、反馈快 |
|---|---|
| 结对或互换 | 同事互测提交内容:视角适中、交接轻 |
| 独立测试角色 | 专职测试设计用例与回归:体系化,但交接重 |
| 外部测试 | 第三方验收或众测:视角最远、成本最高 |
| 选择原则 | 高风险模块用更高独立性,低风险改动结对即可 |
典型使用场景
- 版本验收:独立测试角色对发布候选做系统验证。
- 高风险模块:支付、权限等模块引入独立或外部测试。
- 提交前拦截:结对互测在评审阶段发现明显问题。
- 回归交付:开发自测覆盖单元层,测试团队负责端到端回归。
- 能力建设:互换测试让知识在团队内流动。
- 外部验收:众测与第三方作为最后一道外部视角。
独立性级别与代价
| 级别 | 执行者 | 收益 | 代价 |
|---|---|---|---|
| 自查 | 本人 | 成本低、反馈快 | 作者偏见残留 |
| 结对互测 | 同事 | 视角增量明显 | 依赖互评文化 |
| 专职测试 | 独立角色 | 体系化用例与回归 | 交接与沟通成本 |
| 外部测试 | 第三方 | 外部视角最远 | 成本最高、反馈慢 |
ISTQB 指出独立性不是越高越好:需要结合风险与成本选择级别,开发仍需为自己的代码质量负责。
独立性说的是「设计执行的人不同」,不是「测试与开发互相甩锅」:质量共建成效取决于协作机制。
把质量责任全部转移给独立团队,开发侧的质量动力会下降。