跳转到内容

完成的证据层级

用途:为不同任务定义“到什么证据等级才算完成”

等级 证据 能证明什么 不能证明什么
L0 声明 Agent 的自然语言总结 它打算做什么 什么都没证明
L1 存在 文件/函数/类存在于工作区 代码写了 能不能编译
L2 可编译 编译器/类型检查通过 语法与类型成立 行为是否正确
L3 测试通过 目标测试用例真实运行且断言有效 已覆盖的行为正确 未覆盖部分、断言是否有意义
L4 断言有效 变异测试/反向验证:改坏实现会让测试失败 测试真的在守护行为 需求本身是否被满足
L5 权威环境 CI/CD 在干净环境中复现(非本地缓存) 结果可复现、不依赖本地状态 业务验收
L6 人工验收 需求方确认行为符合预期 需求被满足 —

规则:不得用低等级证据冒充高等级结论。 例如“文件已创建”被表述为“功能完成”(L1 → L6 跳跃),或“本地测试通过”被表述为“已验证”(L3 冒充 L5)。

任务类型 最低证据等级 理由
文档/注释修改 L1 + 链接与术语检查 无行为风险
纯重构(不改行为) L3 + 既有测试全绿 + 覆盖率不降 风险在行为漂移
新功能 L4(新增测试须能失败) 新写的测试可能形同虚设
缺陷修复 L4 + 复现用例(先失败后通过) 无法复现的修复不可信
性能优化 L3 + 基准数据(前后对比、多次采样) “看起来快了”不算
数据迁移/脚本 L5 + 抽样校验 + 回滚演练 不可逆操作要求最严
安全相关 L5 + 专项评审 需要人的判断

反向验证(最被低估的一招)

「反向验证(最被低估的一招)」小节链接

对新增或修改的测试,做一次“破坏性检查”:把实现改坏(或注释掉关键分支),确认测试确实失败。做不到这一步,就无法区分“测试通过”与“测试没在测东西”。

自动化形态:变异测试工具(PIT 类、mutmut 类)统计变异杀伤率,作为 L4 的量化指标。

每条证据要能被第三方独立验证:

  • 命令 + 完整输出(不是摘要),带时间戳与工作目录。
  • Git 提交哈希、分支、diff 摘要(文件与行数)。
  • 测试报告文件路径与用例数、失败数、跳过数。
  • CI 运行 ID 与链接(权威环境)。
  • 基准数据(多次采样的分布,不是单次)。
误区 修正
把“编译通过”当“功能正确” 明确 L2 与 L3/L4 的差别
只看测试数量不看断言数量 无断言的测试是空壳
本地绿了就算 干净环境复现(L5)才算可复现
用截图当证据 截图不可核对,改用命令输出与报告文件
证据由 Agent 自述 由工具/门禁采集,Agent 只能引用
  • 变异测试(Mutation Testing)公开文献与 PIT 等工具文档
  • 本站:四值判定模型、测试即门禁