什么样的测试最难被作弊:Trophy 测试模型
测试锚定在人类验收标准上,解决了共谋问题的原则层面。但在实践中还有一个问题:什么类型的测试最难被 Agent 规避?
单元测试验证的是代码的内部行为:某个函数接收特定输入是否返回预期输出。Agent 可以通过调整实现细节来轻松通过单元测试的断言,而这种调整可能在更高层面引入问题。一个通过了所有单元测试的支付模块,可能在和账单模块集成时失败,因为单元测试只验证了孤立的行为,没有覆盖模块间的交互。
端到端集成测试的验证粒度完全不同。它覆盖的是用户可感知的完整能力路径:用户发起支付请求,系统调用支付网关,写入账单记录,返回确认信息。任何关键子路径的失败都导致整体失败。Agent 要伪造一个完整的用户旅程,比伪造一个孤立的函数输出困难得多。
这就是 Trophy 测试模型的核心思路。与传统的测试金字塔(大量单元测试、少量集成测试、极少端到端测试)相反,Trophy 模型将重心放在集成测试层级。在 Agent 驱动的开发中,集成测试的价值远高于单元测试,因为它更接近用户的真实使用场景,也更难被"表面通过"。
Trophy 测试的编写原则是面向用户可感知的能力。每个 Trophy 测试描述的是一个完整的用户场景,从触发动作到最终结果。它的断言基于系统的外部可观察行为,而非内部实现状态。这使得 Agent 只能通过真正实现功能来通过测试,而非通过调整内部实现来绕过断言。
这并不意味着单元测试没有价值。单元测试在开发过程中仍然提供快速的反馈循环,帮助 Agent 定位具体的实现问题。但作为验收判定的依据,Trophy 级别的集成测试是更可靠的信号。Agent 可以被允许自由地编写和修改单元测试来辅助开发,但 Trophy 测试的增删改必须经过人类确认。