首页/开发/代码质量与评审速查/变异测试(Mutation Testing):检验断言质量
技术债与度量63 条

变异测试(Mutation Testing):检验断言质量

变异测试自动制造小缺陷(改比较符、删调用)并检查测试是否失败:未被杀死的变异说明断言薄弱;Mutation Score 反映断言有效性,适合关键模块的测试体检。

原理变异体 + 测试集 → 存活即断言缺口
工具PIT(Java)、Stryker(JS/TS)、mutmut(Python)
成本执行量 ≈ 变异数 × 测试时长,慎全量跑

Stryker 示例

Stryker 示例
npx stryker run
# 报告给出:killed / survived / timeout
# survived 的变异体就是需要补断言的点位

易错点

  • 对全仓库例行跑变异:时间成本不可接受,应按模块抽检
  • 等同变异分数与正确性:等价变异体不可杀死属正常

数据来源与参考

  • PIT、Stryker、mutmut 官方文档(变异测试工具)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌