Codex 给出的测试报告属于当前代码吗:把提交与产物哈希绑定起来
一份测试报告写着通过,不代表它属于眼前的代码。Codex 跑完检查后又修改文件、把另一目录的报告复制过来,都会造成结论与输入脱离。验收前先验证报告绑定关系,再阅读测试结果,能把“报告失配”与“测试失败”分开。
报告需要说明测了什么
演示报告记录命令、退出码、输入文件摘要和输出产物摘要。输入是小型计算脚本,输出是合成结果文件。SHA256 对字节计算,因此换行、编码与空白都属于这份证据的一部分。路径是仓库内相对路径,报告不收绝对路径或上级跳转,也不从任意外部位置寻找一个同名文件来补齐缺项。
提交编号仍有用,但不足以覆盖未提交状态。若被测代码带着工作区改动,应同时保存相关输入哈希或完整可审查快照。一个 HEAD 字段加上“工作区干净”的自然语言声明不能取代实际记录。报告格式还应带版本,方便之后判断算法、路径范围和摘要字段是否发生变化。
三次核对,三种结论
附件先复算原样本,两组摘要均匹配。第二次只改变输入文件的一字节,预期输入失配;第三次恢复输入并改变产物一字节,预期输出失配。失败信息保留路径、期望摘要和实际摘要,不继续沿用退出码零给出通过。检查器在内存中完成这些变体,没有修改原始样本文件。
反例是只核对报告时间。时钟可能存在偏差,文件也可以被重新复制;时间较新既不能证明输入相同,也不能说明执行过某条命令。另一种反例是对源码内容与报告内容使用不同的换行归一策略,最后让两个不同字节快照看起来一致。是否允许归一必须事先写进合同,不能在失配后临时决定。
匹配不等于可信执行
哈希只能核对内容一致性。若报告作者伪造了退出码和摘要,离线复算仍可能匹配,因此它不是执行环境的签名或第三方证明。本文没有调用真实 Codex 测试,也没有把合成报告写成远程 CI 成功。需要更强的执行来源证据时,应依项目流程保存运行标识、日志与可验证的构建记录。
验收结论至少分三列:输入输出是否匹配、命令是否成功、检查是否覆盖任务行为。测试进程成功但没有发现任何用例,属于覆盖问题;报告哈希失配则应先重跑,不能从旧日志推断当前状态。
维护时把摘要核验放在查看成功标志之前,缺文件即报错,不自动用空内容补哈希。用户收到报告后可先运行配套检查器,再决定是否在自己的环境重跑真正的测试。这样保存的是可复核的证据链,而不是一句无法定位来源的“已经验证”。
配套文件与依据
本文的合成输入和参考结果可下载独立样本 a006.json,离线检查器 a006.py与样本放在同一目录后运行。检查器不调用模型接口。 使用 Python 3.12 或兼容版本,将上述文件下载到同一目录,执行 python a006.py。
留言讨论
评论发布后会被人工复核,违规内容将被删除。
如果发表没有反应,可以前往联系我们告诉我们。