第9章 Test与Verification:如何知道代码是对的
第5章反复强调一个基本判断:智能体的自我报告不能等同于经过验证的事实。第6章进一步要求任务简报将验收标准表达为可核查的属性,而不是若干孤立的示例。第8章则说明,智能体对真实环境的操作必须建立在权限、沙箱和拦截等确定性机制之上,而不能依赖模型的自觉。这三条线索最终汇聚到一个更直接的问题:一段由智能体生成的代码,究竟凭什么可以被认为是正确的?
本章给出的答案不是某一种更先进的测试技术,而是一套分层、独立、相互补充的验证体系。最底层是编译、类型检查、静态分析和自动化测试等确定性检查;在此基础上,是围绕任务验收标准建立的证据驱动验证;再进一步,则需要坚持独立验证原则,避免让产出代码的智能体同时成为唯一的验收者。在此框架下,本章进一步讨论分层验证、执行轨迹评估、大模型评审,以及如何通过主动测试发现既有测试集没有覆盖的缺陷,最后介绍行业基准如何为智能体编码能力提供外部参照。
需要特别强调的是,测试通过从来不是验证的终点。测试只能回答被设计出来的检查是否通过,而不能自动证明测试之外的性质同样成立;静态分析能够发现某些结构性问题,却无法判断实现是否真正满足业务意图;大模型评审可以提供额外的判断视角,但自身同样存在误判。因此,代码的可信度不应建立在某一次“通过”之上,而应建立在多层验证证据相互印证的基础上。
读完本章,读者应能理解:验证的核心不是让智能体证明自己没有犯错,而是建立一套不依赖智能体自我判断、能够持续发现错误的证据体系。测试只是其中最基础的一层,真正的可信度来自不同验证机制之间的独立性,以及它们能否覆盖彼此的盲区。