AI 应用测试:先把契约、数据集和回归门槛串起来,再谈测输出
AI 应用测试最容易被写成几条 Prompt 回归和人工抽查建议,但真正决定系统能否稳定迭代的,是接口契约、样本集、自动判定、离线评估和线上回归门槛是否形成闭环。
01.AI 应用测试最容易失效的地方,是把它当成“字符串断言”
很多关于 AI 测试的文章,最常见的例子是:
expect(response).toContain("关键词");这种断言在极少数场景下有用,但对真实 AI 应用来说通常远远不够。因为你真正想验证的往往是:
- •输出结构是否稳定
- •检索或工具链是否走对了
- •关键事实有没有被遗漏
- •升级模型或 Prompt 后质量有没有回退
所以 AI 应用测试更适合被理解成“质量回归系统”,而不是一堆零散的输出断言。
02.先区分哪些东西是确定的,哪些东西是概率性的
测试 AI 应用时,最重要的一步往往不是马上去测模型,而是先把系统拆开看:
- •确定性部件
- •概率性部件
- •高风险场景
- •历史坏例子
例如下面这些通常更适合做确定性测试:
- •schema 校验
- •路由规则
- •权限判断
- •检索过滤条件
- •工具参数构造
而这些更适合走评估和数据集回归:
- •自然语言答案质量
- •检索召回是否足够
- •总体任务是否真正完成
拆分清楚之后,测试体系才会稳定。
03.一条稳定的 AI 测试链路,通常由四层组成
1. 契约与确定性测试层
这一层负责托住最容易回归、也最应该确定的部分:
- •API 输入输出 schema
- •工具参数
- •错误处理
- •权限和路由逻辑
这类测试应该跑得快、定位准,并且优先保证全绿。
2. 集成与任务链路层
这一层更关注真实应用有没有把链路跑通:
- •检索是否命中正确租户或知识域
- •工具是否被正确调用
- •文件处理链是否能走完
- •同步任务与后台任务是否都能恢复
这里的目标不是逐字对答案,而是验证系统行为是否符合预期。
3. 离线评估与样本集层
AI 应用最需要长期积累的资产,往往不是 prompt,而是样本集:
- •典型问题
- •高风险边界问题
- •历史事故
- •用户差评样本
这些样本可以用于:
- •评估不同版本
- •比较模型或 Prompt 改动
- •检查关键场景是否回退
4. 线上回归与回流层
真正成熟的 AI 测试体系,一定会把线上问题回流进离线数据集:
- •差评样本
- •人工接管样本
- •错误输出
- •缓存 miss 后的坏结果
没有这层回流,测试集很快就会和真实流量脱节。
04.模型输出要尽量先变成结构化目标,再去评估质量
很多应用测试困难,不是因为 AI 天生不可测,而是因为团队把所有东西都留在自由文本里。
更稳的方式通常是:
- •能结构化的先结构化
- •能拆成步骤的先拆成步骤
- •能把判断条件外置的先外置
例如:
from typing import Literal
from pydantic import BaseModel, Field
class ReviewResult(BaseModel):
decision: Literal["approve", "needs_changes", "handoff"]
reasons: list[str] = Field(default_factory=list)
missing_fields: list[str] = Field(default_factory=list)一旦目标输出被约束成这种形式,测试就可以分别检查:
- •schema 是否稳定
- •决策是否落在允许集合里
- •原因和缺失项是否覆盖关键要点
这会比直接比较整段自然语言稳很多。
05.样本集不是越大越好,而是越贴近坏例子越有价值
很多团队做测试时,容易先收集一堆“正常问题”,结果模型升级后看起来都能过,但真正上线还是翻车。
更有价值的样本通常包括:
- •容易误解的输入
- •缺资料的任务
- •冲突信息
- •提示注入和越权诱导
- •历史事故复盘样本
这些样本虽然不多,但更能代表真实风险。
06.评估不要只关心答案对不对,还要关心行为有没有越界
AI 应用测试的评估,更应该围绕这些问题:
- •输出是否满足结构契约
- •检索和工具链是否走对了
- •是否在不该执行时主动执行了动作
- •是否在缺信息时仍然硬答
- •是否把坏例子成功挡在回归门槛外
这类行为型指标,通常比单纯“语义像不像对”更容易持续迭代。
07.线上测试和离线测试要用同一套语言描述风险
一个成熟的做法通常是让线下和线上都围绕相同维度记录问题,例如:
- •事实错误
- •结构错误
- •越权动作
- •检索失败
- •任务未完成
这样无论问题来自:
- •本地测试
- •灰度发布
- •用户投诉
- •客服回放
都能更顺畅地回流到同一套回归框架里。
08.评估不要只看通过率,还要看门槛是否真的拦住风险
AI 应用测试的核心评估,更应该看:
- •高风险数据集的通过率
- •历史事故样本是否被稳定拦住
- •模型升级后的回退幅度
- •新增优化是否引入新的失败类型
- •线上人工接管率是否下降
这些指标比“总通过率 95%”更有决策意义。
09.三个常见误区
1. 用几条关键词断言代替测试体系
这类测试通常脆弱、噪音高,而且很难反映真实任务完成度。
2. 只测 happy path,不测坏例子
AI 应用最容易出问题的,恰恰是那些边界和异常样本。
3. 线上问题不回流到样本集
没有回流,测试集就只会越来越像 demo,而不是越来越像生产。
10.总结
AI 应用测试真正可交付的价值,不是多写几条输出断言,而是把契约、样本、评估和回归门槛组织成同一套质量系统:
- •先把确定性部件单独测稳
- •让结构化输出和工具链有可验证契约
- •用离线样本集承接真实风险
- •把线上坏例子持续回流进回归门槛
只要这套闭环成立,AI 应用才更有机会稳定迭代,而不是每次升级都靠感觉验收。