# 杀虫剂悖论

> 如果你一直用同一套测试用例来测试软件，这套用例最终将无法发现新的Bug

- ID: m01219
- 分类: system
- 领域: 系统论

## 定义

如果你一直用同一套测试用例来测试软件，这套用例最终将无法发现新的Bug。因为软件会针对这套测试产生“抗药性”（开发者会有意无意地只修复被测出的Bug，而忽略未被测出的）。脚手架作用：对抗指标失效。任何静态的考核指标（测试用例、KPI）最终都会失效。必须定期更新“杀虫剂”（考核标准），引入新的随机性和混乱，才能发现系统深处的隐患。

## 机制

软件测试中的现象：同一批测试用例反复使用会逐渐失效（像害虫对杀虫剂产生抗药性），因缺陷类型变化而检不出新问题。

## 练习

定期评审与刷新测试用例；引入新技术与视角；用变异测试等保持检测力。

## 脚手架用法

对抗指标失效。任何静态的考核指标（测试用例、KPI）最终都会失效。必须定期更新“杀虫剂”（考核标准），引入新的随机性和混乱，才能发现系统深处的隐患。

[阅读网页](https://thinkingmodels.site/entries/detail/m01219)
