任务完成需要什么证据
代码代理的交付物是可检查的补丁和验证结果。生成一个看起来合理的实现,不等于修复了原始缺陷。开始前应定义触发条件、预期行为和禁止改动范围,并记录工作区已有修改。
测试命令退出码、测试覆盖的场景与运行环境应一起保存。构建通过只能证明编译链路,不代表登录隔离、浏览器交互或移动端布局正确。
可运行的检查执行器
以下示例运行一个受信任的固定命令,保留超时和退出码。不要把未经校验的用户输入拼进 shell 命令。
import { spawnSync } from "node:child_process";
import assert from "node:assert/strict";
const result=spawnSync(process.execPath,["-e","process.exit(0)"],{
shell:false,timeout:1000,encoding:"utf8"
});
assert.equal(result.error,undefined);
assert.equal(result.status,0);防止测试污染
修复时可以添加针对缺陷的回归测试,但不能通过删掉失败断言、替换预期答案或关闭规则来制造成功。涉及数据库权限时,应建立两个独立账户,并验证对方的数据不可读、不可写、不可删。
浏览器测试需要检查真实输入和状态转换。界面不存在异常日志并不能证明业务成功,应该同时核验请求状态、数据库结果和用户看到的反馈。
发布前的边界
代理可以准备迁移和回滚步骤,但生产发布应使用已验证构建,保留旧版本并执行健康检查。真实外部副作用应在授权范围内进行;使用模拟服务时必须说明模拟了哪部分,避免把测试结果当成线上证据。
原始资料
- SWE-bench:真实软件问题评测的研究背景。本文的检查流程不是 SWE-bench 分数或模型能力比较。
感谢阅读本文
如果你觉得内容有帮助,欢迎点赞支持或分享给同行开发者。
425 次阅读23 人赞过