完成的证据层级
用途:为不同任务定义“到什么证据等级才算完成”
层级模型
「层级模型」小节链接| 等级 | 证据 | 能证明什么 | 不能证明什么 |
|---|---|---|---|
| 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 等工具文档
- 本站:四值判定模型、测试即门禁