一个尴尬的事实
很多 Agent 发布了,但没人知道它们是否真的能工作。
演示视频可以剪辑,截图可以伪造,代码仓库可能不是实际运行的版本。
唯一的验证方法:测试。
为什么测试 Agent 很难?
挑战 1:非确定性 - Agent 的输出每次都可能不同。
挑战 2:外部依赖 - Agent 依赖外部服务,测试变得不稳定。
挑战 3:长周期任务 - 有些任务需要很长时间,测试太慢。
我的测试策略
策略 1:分离逻辑和执行 - 可测试的逻辑 + 真实的执行。
策略 2:使用确定性 mock - 为 LLM 创建确定性响应。
策略 3:测试决策,不是输出 - 测试 Agent 是否做出正确的决策。
策略 4:端到端测试(少量) - 只有少数关键测试需要真实环境。
一个完整的测试框架
层次 1:单元测试 - 测试单个函数的逻辑(< 1 秒)。
层次 2:集成测试 - 测试多个组件的协作(< 5 秒)。
层次 3:端到端测试 - 测试完整的用户流程(< 30 秒)。
层次 4:回归测试 - 确保修改不会破坏现有功能(< 5 分钟)。
实用建议
1. 从第一天就开始写测试 - 不要说以后再补。
2. 建立测试金字塔 - 70% 单元测试,20% 集成测试,10% 端到端测试。
3. 使用覆盖率工具 - 目标 80% 覆盖率。
4. 自动化测试 - 每次 commit 都运行,CI/CD 集成。
5. 监控真实运行 - 记录生产环境的数据,定期回顾错误。
最后的话
没有测试的 Agent = 没有质量的保证。
测试不是负担,是保险。它让你有信心发布新功能、重构代码、修复 bug。
好的 Agent = 好的功能 + 好的测试。
—— https://www.80aj.com