开发者对代码测试的执念近乎偏执:单元测试、集成测试、端到端测试、CI流水线、代码审查、Lint检查、类型检查……一套组合拳下来,代码质量才算有了保障。
但到了AI功能这里,测试策略突然变成了——"我试了三次,感觉还行。"
![]()
这不是测试,这是乐观主义。而这正在成为AI开发中最被忽视的短板之一。
AI应用首先是软件
以AI编程助手为例,一次完整的工作流包含多个环节:用户请求、上下文检索、提示词构造、大模型推理、代码生成、结果验证。每一个环节都可能出问题:检索可能返回错误文件,上下文可能不完整,提示词可能含糊不清,模型可能产生幻觉,生成的代码可能自带bug。
然而,大量AI应用对这些潜在失败没有任何自动化检测手段。如果换成普通API,开发者绝不会接受这样的标准。AI凭什么例外?
"跑通一次"说明不了任何问题
假设你在构建一个自然语言转SQL的系统。测试输入"按收入显示前10大客户",模型生成了正确的SQL语句,看起来没问题,上线。
然后用户问:"显示2025年按收入排名的前10大客户,排除已取消订单。"系统可能立刻给出完全不同的行为。
AI输出是概率性的。这意味着只测一个输入远远不够。
构建评估数据集
AI开发者能做的最简单一件事,就是建立一个小型评估数据集。比如定义一组测试用例,每个用例包含输入和期望输出中应包含的关键要素。这样,每次修改提示词、更换模型、调整检索系统或工作流时,都可以对同一组用例重新运行,对比性能变化。
这彻底改变了提问方式:不再是"感觉是不是更好了?",而是"性能到底有没有提升?"
提示词同样需要测试
这也是为什么提示词工程不会消失。生产环境中的提示词不是写一次就完事,它是系统的一部分。修改它,就必须验证改动是否真正改善了输出。
正确的做法是把提示词迭代纳入评估流程:提示词v1跑评估,得到结果;修改为v2,再跑评估,对比两版差异。这比凭直觉改提示词可靠得多。
上下文也需要测试
还有一个常见问题:提示词写得完美,答案依然糟糕——因为AI接收了错误的上下文。比如编程助手收到的提示词是"修复认证……"(原文在此截断),但检索系统可能返回了不相关的代码片段。
上下文的质量直接影响输出质量,而这一环节同样需要纳入测试体系。
AI开发正在从"试几次就上线"走向工程化。评估数据集、自动化测试、版本对比,这些软件工程的基本功,正在成为AI应用开发的新标配。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.