Skip to content

变异证明 (Mutation Proving) ​

门禁写完不是胜利;只有证明它在脏数据下会报红,才算真正的防线。

很多项目里的自动化门禁或 CI 检查存在一个巨大的假象:门禁永远显示 PASS,人以为自己很安全,实际上规则可能因为代码漏写了判断分支、正则表达式缺少边界锚点,导致即使传入错误数据也静默通过!

Atlas 坚决推行变异证明(Mutation Proving / M 系列变异钉子测试),作为所有门禁的入网准则。


一、什么是 M 系列变异钉子? ​

在 Atlas 的测试套件中(atlas/tests/),除了测试正常的正例之外,每一条校验器规则必须配套一组故意注入脏数据的变异用例(Mutation Cases):

变异编号所在门注入的脏数据预期检验器反应
validate_stack_profile M27门总账 ⇔ 校验器清单从 VALIDATORS 摘掉本门自洽门判据与逐器一行测试双红
gen_e2e_scripts M28用例分片 ⇔ 运行器脚本摘掉 skip 发射blocked 用例被真跑成红(假红复活被抓)
impact_reconcile M39影响面预测 ⇔ 收口 git diff摘掉差集检测预测集与实际改动错位不再被指名
scripts/backflow M49回灌助手 .atlas/ ⇔ 源包摘掉并发写入哨兵并发改写在复制前窗口内不再中止,钉子报红

编号口径:M 系列编号在各自测试文件内自成序列,同一号码在不同门含义不同(例如 M1 既是台账跨卷撞号,也是装配自检的一个判据);当前最大编号为 M49。具体某号的语义以该门所在的测试文件与 shared/gates.md 门总账为准。


二、自洽门与双向红灯验证 ​

                         [ 新校验规则代码 ]
                                 │
                 ┌───────────────┴───────────────┐
                 ▼                               ▼
         [ 正常应然数据 ]                [ 恶意变异数据 (M-Series) ]
                 │                               │
                 ▼                               ▼
            ✅ 必须 PASS                    ❌ 必须 FAIL
                 │                               │
                 └───────────────┬───────────────┘
                                 │
                         双向皆通过,方可合入!
  • 出厂守卫:全部 M 系列钉子常驻在全量出厂测试(python3 -m pytest atlas/tests/)里;
  • 拒绝摆设:只有当一条规则在正常数据下 PASS、同时在对应的 M 系列变异数据下 100% 报红拦截,该规则才算真正具备效力。
  • 这套严格的自洽测试体系,确保 Atlas 的每一道门禁都是真正有效力的防线。

Released under the Apache-2.0 License.