你的编程助手报告说所有测试都通过了。构建显示为绿色,于是你合并了拉取请求,继续处理下一项工作。三周后,一个问题出现了,但编写代码的智能体无法再提供帮助。也许你的API配额已经用完,或者你正被困在通勤列车上,没有任何信号。现在代码归你所有,而且有地方出了故障。你真的能修好它吗?
这个问题正是CodeOwnership项目的核心问题。在实践中,所有权不仅仅是你的名字出现在提交记录上。只有当你能够追踪代码的逻辑,并且在无人协助的情况下完整地修补它,你才真正拥有这段代码。测试通过只说明软件在顺利的时候能够运行,却无法证明你理解它。这里讨论的仅是维护问题,与许可或版权无关。
作者构建了CodeOwnership这一轻量级试验项目,以检验这一盲区。AI智能体编写一项功能,开发者如实记录自己对其理解程度的评分。随后,第二个智能体引入一个预先登记的单一缺陷。开发者在关闭所有AI工具的情况下提交事件报告,并尝试定位该缺陷。
该测试框架已经完成,包括锁定的规范、可见与隐藏测试、盲式缺陷验证检查、引导式命令行界面,以及不将指标合并为单一分数的报告工具。在首次试验中,作者给自己的信心评为4分(满分5分),随后在8分12秒时停止计时,仍未找到缺陷。在之后约30分钟的一次会话中,缺陷被找到,但由于没有应用修复,脚本仍记录为未修复(NOT FIXED)。
这只是一位开发者的一次测试,并非行业基准。它展示了该测试框架的运作方式、存在的局限,以及对代码理解能力进行现实检验应当是什么样子。
来源: Towards Data Science · 由HeadlinesBriefing整理摘要