---
name: mutation_audit
when: '测试质量, 变异测试, 测试审计, 测试造假检测, 覆盖率'
scope:
  - shared
products:
  - '*'
id: ka-pattern-mutation_audit
asset_kind: pattern
lifecycle_status: active
authority: supporting
routes:
  - '*'
primary_triggers:
  - 测试质量
  - 变异测试
  - 测试审计
  - 测试造假检测
  - 覆盖率
priority: P2
specificity: 3
version: 1.0.0
last_reviewed: '2026-05-22'
consumes: []
emits: []
secondary_triggers: []
negative_triggers: []
type: pattern
status: active
---

## 决策规则

- 变异白名单: 只变异条件分支（if/else/switch）、比较操作符（===/>/</>=/<=）、逻辑操作符（&&/||）、return 语句、布尔字面量、算术表达式
- 变异黑名单: console.log、注释、import/export、类型声明、debugger、纯字符串字面量
- 变异行必须在 lcov 覆盖范围内，未覆盖行的变异无意义，视为审计无效
- 变异操作符: 逻辑反转（=== → !==）、边界偏移（+1/-1）、布尔翻转（true → false）、返回值篡改
- 随机抽样: 使用源码哈希作为种子的确定性 PRNG，每源码最多抽样 8 行
- 精确断言率阈值 Precision_Threshold = 0.5，低于此判定测试"自己证明自己"
- 覆盖率联动: 传入 lcov 报告后，只变异 DA 行 hit_count > 0 的代码行

## 验收项

- [AC-01] 变异前已读取 lcov 覆盖率报告
- [AC-02] 所有变异行均在已覆盖行范围内
- [AC-03] 未覆盖行的变异被自动过滤
- [AC-04] 变异审计未通过时测试文件打回重写
- [AC-05] 随机种子基于源码内容哈希，可复现

## 何时使用

advisory: 变异测试是质量建议，非强制要求

## 是否 hard block

否。此能力为 advisory 状态，违规仅产生 advisory 警告，不阻断流程。

## 证据要求

- 变异算子测试通过
- 评分一致性测试通过
-

## 人工确认/降级边界

- 此能力可被开发者决策覆盖
- 升级到 enforced 需满足 promotion_conditions 并通过 lifecycle_test_files 测试
- 降级/禁用需经 sf_capability_update + 人工确认
