AI测试工程师面试题这几年变化很快。三年前面试官还在问“会不会用 Python 写自动化脚本”,现在更多会问“如何设计一份评估集来衡量大模型输出质量”“AI 自动化测试平台的任务调度怎么做”“AI Agent 多轮调用工具时,断言应该放在哪一层”。面了 5 家 AI 测试相关岗位后,很多候选人反馈,题目看起来零散,但高频考点非常集中:模型评测、数据构造、平台工程、Agent 质量保障、测试提效。这篇文章把这些考点整理成一条可学习、可复现的面试准备主线,从能力模型、高频题目拆解、平台设计、Agent 测试、回答技巧和避坑清单六个方向展开,帮助你把零散面试题转化成可落地的工程能力。
真正能拉开差距的,不是背了多少道题,而是能不能把每个问题接到自己的项目经历里,讲清楚背景、方案、指标和踩过的坑。下面的内容会围绕这个目标展开,所有示例都偏向“可执行”,而不是“可背诵”。
1. AI测试工程师到底在解决什么问题:能力模型先对齐
1.1 从传统测试到AI测试,考察点为什么变了
传统功能测试的核心是“输入是否符合预期输出”。测试人员拿到需求文档,设计用例,执行脚本,断言结果,这套流程适合逻辑确定、行为稳定的系统。但 AI 测试面对的对象变了:模型输出带有概率性,同一个 Prompt 可能因为 temperature 或模型版本不同而返回不同内容;需求中往往没有“唯一正确结果”,只有“合理结果”或“更好结果”。
所以面试官不会只问“你会不会写自动化脚本”,而是会追问“你怎么判断模型输出对不对”“线上没有标准答案怎么测”“模型升级后怎么保证不劣化”。这些问题的背后,是 AI 测试工程师需要具备的整套能力:从结果校验升级到质量体系设计。
这也是为什么同一个候选人,可能在传统测试岗位上表现很好,但在 AI 测试面试中答不上来。不是方法完全变了,而是“预期结果”的定义方式变了。普通接口可以写死状态码和字段,大模型应用需要定义“语义正确”“安全合规”“格式可用”“任务完成”等多个维度。
1.2 面试官真正考察的五项能力
从面试题反推岗位要求,可以提炼出五项能力:
第一,模型评测能力。候选人需要知道准确率、精确率、召回率、F1 这些经典指标,还需要知道在文本生成、检索增强、对话场景中,BLEU、ROUGE、BERTScore、幻觉率、工具调用准确率各自解决什么问题。
第二,数据敏感度。AI 测试离不开数据集。面试中常见的“没有标注数据怎么测”“怎么构造边界样本”“训练集和测试集怎么划分”,其实都在考察数据工程能力。
第三,平台工程能力。很多公司要求测试团队搭建 AI 自动化测试平台,能管理用例、调度执行、回放线上数据、生成报告、接入质量度量。面试中如果只画一个简单的“用例库+执行器”结构,深度不够。
第四,AI Agent 质量保障能力。Agent 相比单次模型调用多了工具调用、多轮记忆、任务规划和异常恢复。面试中会问到“Agent 调错工具怎么办”“多轮对话如何断言”“任务成功率怎么统计”。
第五,工程化思维。能落地的测试方案,必须考虑可复用、可观测、可回滚。面试官会关注你设计的评测集能不能回归,失败日志能不能定位,新模型上线后能不能自动对比。
1.3 高频题领域与能力映射表
| 面试题领域 | 典型问题 | 对应能力 |
|---|---|---|
| 模型评测 | 准确率 95%,业务投诉却很多,怎么排查 | 模型评测、badcase 分析 |
| 数据构造 | 没有标准答案,怎么建评测集 | 数据采样、标注规范 |
| Prompt 测试 | 提示词模板变了,如何验证效果 | 提示词用例设计 |
| 平台设计 | 如何搭建 AI 自动化测试平台 | 架构设计、任务调度 |
| Agent 测试 | Agent 调用工具失败后如何继续 | Agent 链路测试、异常恢复 |
| 测试提效 | 大模型怎么融入现有测试流程 | 工程化落地、成本控制 |
2. 高频面试题拆解:模型、数据、提示词三条主线
2.1 模型效果评估题:准确率很高为什么还有大量 badcase
面试中经常出现这样一道题:“模型在评测集上准确率达到了 95%,但业务方反馈体验很差,你怎么排查?”
很多人第一反应是“增加样本量”或者“调参”,这偏离了问题的考察点。面试官想听的是一套完整的 badcase 分析链路。
合理的回答顺序是:
- 先确认评测集和线上分布是否一致。评测集可能来自历史数据,但线上用户近期输入的句式、主题已经变化。
- 按业务维度拆解评估结果。把准确率按意图、输入长度、语言、设备、用户类型分层统计,找出差异最大的分组。
- 查看错误样本集中在哪类输出。是漏召回、误判,还是格式不对、包含敏感内容。
- 人工抽检。用抽样代替全量人工标注,估算线上真实准确率。
- 把 badcase 沉淀为回归用例,再迭代模型或提示词。
这段回答的价值在于体现“准确率是汇总指标,不能直接指导迭代”。为了在面试中把这个问题讲得更具体,可以准备一个小脚本,用分类报告和混淆矩阵观察结果分布。
from sklearn.metrics import classification_report, confusion_matrix y_true = [0, 1, 1, 0, 1, 1, 0, 0] y_pred = [0, 1, 0, 0, 1, 0, 0, 1] print(classification_report(y_true, y_pred, target_names=["negative", "positive"])) print(confusion_matrix(y_true, y_pred))这段代码演示了基本评估方法。实际项目中要替换成真实预测结果,并按业务属性分组计算。只给准确率不够,还要给混淆矩阵和分层结果,才能定位是哪一类样本出了问题。
面试时如果能补充一句“评估脚本只用于生成报告,最终诊断还是靠 badcase 聚类和人工复盘”,会显得更有工程经验。
2.2 数据与标注题:没有现成评测集怎么办
AI 应用上线时经常没有标准数据集。面试官会问:“业务方没有标准答案,测试怎么建评测集?”
这道题考察的是测试人员能不能主动构造质量基准。推荐思路是从真实日志中采样,再经过标注和去重形成回归集。真实数据源包括:线上用户会话、客服反馈、搜索词、历史工单,以及同类系统的公开语料。采样时注意覆盖高频场景和边界场景,不能只挑好回答的问题。
标注阶段需要明确标注规范,比如“回答是否解决用户问题”“是否包含错误事实”“是否输出完整 JSON”。不同标注员之间的分歧要计算一致性,常见做法是随机抽取一部分样本由两人以上标注,比对结果。如果分歧过大,说明标注标准不清晰,需要重新定义。
下面是一个典型的评测样本结构,可以用来保存单条用例:
{ "id": "case_001", "input": "帮我取消今天下午的会议", "expected_behavior": "调用日历工具,取消会议,并返回确认信息", "category": "工具调用", "difficulty": "high", "adversarial": false }字段说明如下:
id:唯一标识,用于回放和追踪。expected_behavior:描述预期行为,不一定要写死答案。category:业务分类,用于分层评估。adversarial:是否对抗样本,用于安全测试。
生产环境的数据集一定要做脱敏,不能直接把用户真实信息放入评测清单。学习环境可以用公开数据集或构造数据,先跑通完整流程。
2.3 提示词测试题:怎么给 Prompt 写用例
提示词模板是很多 AI 应用的“变更加载点”。面试官通常这样问:“开发改了一个 Prompt 模板,你应该怎么验证它没有损坏现有功能?”
不要只回答“把模板跑一遍,看看输出正不正常”。更完整的方案是围绕模板变量和输出约束设计用例。
提示词用例至少覆盖以下几种类型:
| 用例类型 | 示例输入 | 检查内容 |
|---|---|---|
| 正常输入 | 标准问题 | 输出能回答问题且格式正确 |
| 边界输入 | 空字符串、超长文本 | 不崩溃、不截断关键内容 |
| 缺失变量 | 模板中某个字段为空 | 有默认值或明确报错 |
| 安全输入 | 越狱提示、注入指令 | 不输出系统内部信息 |
| 一致性输入 | 相同输入连续调用 5 次 | 结果方差可接受 |
如果面试中继续追问“一致性怎么验证”,可以回答:把 temperature 固定为 0 或较低值,重复调用若干次,计算输出之间的相似度。文本生成场景可以使用 BERTScore 或字符串距离,分类场景可以对比预测结果是否一致。
3. AI自动化测试平台搭建:面试必考的工程架构题
3.1 平台分层设计:从用例到质量报表
“如何搭建 AI 自动化测试平台”几乎是 AI 测试工程师面试的必问题。很多候选人能说出“测试用例管理”“执行”“报告”三层,但缺少工程深度。
推荐的分层结构是:
- 接入层:接收代码仓库、Prompt 配置、模型版本、数据集变更事件。
- 数据层:管理评测集、回归集、线上回放数据、标注结果。
- 执行层:调度测试任务,运行模型调用、工具调用、断言脚本。
- 评估层:计算指标、生成 badcase 聚类、对比新旧模型。
- 报表层:输出趋势、告警、质量门禁结果。
面试中要能讲清数据流。比如模型版本更新后,平台自动从模型管理服务拿到新版本信息,加载对应 Prompt 模板,从回归集抽取用例,按设定参数执行调用,最后生成对比报告。如果指标下降超过阈值,阻断发布。
图中不一定要画架构图,但要把“谁触发、谁执行、谁收集、谁判定”讲清楚。
3.2 执行引擎与数据回放:让 AI 测试可复现
AI 测试最大的工程难题是可复现。模型输出可能受 temperature、top_p、模型版本、Prompt 版本、上下文顺序影响。如果执行测试时不记录这些参数,失败用例无法重放。
建议把一条用例的完整上下文保存为 YAML 配置:
case: id: ai_test_001 model: gpt-4o-mini model_version: "2025-06-xx" prompt_template: templates/qa_prompt_v2.jinja params: temperature: 0 max_tokens: 512 top_p: 0.9 input: query: "如何申请退款" session_id: "test_session_001" expected: contains: - "退款" - "人工客服" not_contains: [] threshold: similarity: 0.8这份配置的核心价值在于“把不可控的模型调用变成可追溯的测试记录”。执行器读取配置,调用模型,记录输出、耗时、Token 消耗,然后把结果和 expected 部分做比对。如果两条执行记录用的模型版本不一致,比对结果没有意义。
常见参数的影响如下:
| 参数 | 含义 | 推荐设置 | 影响 |
|---|---|---|---|
| temperature | 控制随机性 | 评测场景尽量设为 0 | 越高输出变化越大 |
| top_p | 核采样 | 0.9 或按场景设置 | 影响候选词范围 |
| max_tokens | 最大输出长度 | 根据业务需求设置 | 过短会截断,过长浪费资源 |
| model_version | 模型版本 | 必须记录 | 版本漂移是回归失败主因之一 |
数据回放也是平台的核心能力。可以把线上真实请求储存在日志或消息队列中,在测试环境回放给新旧模型,比较输出差异。回放时要注意去掉敏感字段,并对请求做采样,不能把全量线上流量直接灌入测试环境。
3.3 平台落地常见问题排查表
实际搭建平台时,面试官也会问“如果平台搭好了,但结果不稳定,你会怎么排查”。下面这张表可以直接作为回答问题时的框架:
| 问题现象 | 常见原因 | 检查方式 | 处理建议 |
|---|---|---|---|
| 同一条用例两次执行结果不一致 | temperature 不为 0,或模型版本变化 | 查看执行记录里的参数和模型版本 | 固定参数,记录版本,多次调用取平均 |
| 用例失败但人工看输出可接受 | 断言过严,只适合作弊情况 | 查看失败日志中的断言类型 | 区分硬断言和软断言,引入相似度阈值 |
| 线上 badcase 没有回流到测试集 | 缺少数据回流机制 | 检查线上日志是否有定时采样 | 在平台中增加“一键加入回归集”功能 |
| 新模型上线后没有对比基线 | 没有保存历史模型结果 | 查看报表中是否只有最新数据 | 平台增加基线版本管理 |
4. AI Agent 测试实战:从单模型到多工具链路
4.1 Agent 测试与普通接口测试的核心差异
Agent 系统通常由大模型、工具列表、记忆系统和循环决策组成。它不再是一次输入一次输出,而是“感知-决策-执行-再感知”的循环。普通接口测试可以精确断言返回 JSON 里的字段,Agent 测试需要同时关注过程与结果。
面试中经常出现这样的问题:“Agent 最终回答正确,但中间调错了一个工具,你要不要判失败?”这就要看质量标准的定义。如果工具调用错误但没有影响最终结果,从用户角度看可能是成功的;从系统稳定性角度看,仍然需要记录告警,因为工具调用错误可能在某些场景下演变成严重故障。
所以 Agent 测试至少包含四层:
- 最终结果层:任务是否完成,回答是否准确。
- 过程决策层:是否调用了正确工具,工具参数是否正确。
- 状态管理层:多轮对话中是否记住关键信息。
- 异常恢复层:工具报错后 Agent 能否继续执行任务。
4.2 工具调用、多轮状态与异常恢复的测试方法
关于工具调用,可以在测试脚本中记录 Agent 每一步的动作,再编写断言。下面是一个示意代码,用来验证 Agent 是否使用了正确的工具和参数。
def test_tool_call_arguments(): dialog = [ {"role": "user", "content": "帮我查询北京的天气"}, ] result = agent.run(dialog) assert result.tool_name == "weather_search" assert result.tool_args["city"] == "北京" assert len(result.tool_calls) <= 2这段代码考察的是 Agent 是否理解用户意图并正确映射到工具。实际落地时,断言要结合业务需求调整,比如“不允许调用删除类工具”“不允许读取无关用户隐私”“多余的无效调用次数不能超过 1 次”。
多轮状态测试需要构造带上下文的会话。常见场景是用户在第一轮提供城市,第二轮才询问天气。测试时要验证 Agent 是否记住了第一轮的信息,并在第二轮正确使用。容易忽略的是用户中途修改意图,比如先问“北京天气”,再追问“那上海呢”,此时不能沿用北京作为城市参数。
异常恢复测试可以模拟工具返回错误。比如天气工具返回 500,Agent 应该告诉用户“暂时无法获取”并提供替代方案,而不是直接崩溃。这类用例必须在测试集中覆盖,因为工具链越复杂,单点故障的影响越大。
4.3 Agent 评估指标建议
Agent 评测不能只看一个指标。上线前至少要看这组指标:
| 指标 | 含义 | 适用场景 |
|---|---|---|
| 任务完成率 | 目标任务是否达成 | 所有 Agent 场景 |
| 工具调用准确率 | 调用的工具和参数是否正确 | 工具型 Agent |
| 步骤冗余度 | 是否用最少步骤完成任务 | 效率测试 |
| 安全合规率 | 是否触发敏感操作或泄露用户信息 | 上线前必测 |
| 恢复率 | 工具报错后能否继续完成任务 | 稳定性验证 |
面试中如果能把这些指标和实际业务场景绑定,比如“我们要求任务完成率不低于 90%,工具调用准确率不低于 95%,安全合规率达到 100%,否则不能发布”,会显得更专业。
5. 面试官要的不是“背答案”,而是“可落地的回答”
5.1 回答技术题的四层结构
AI 测试面试题往往没有标准答案。面试官更在意候选人能不能把问题拆开,讲到可执行程度。推荐使用“结论先行、依据补充、案例落地、风险说明”的结构。
第一层是结论。先回答“你会怎么做”,不要铺垫太多背景。第二层是依据。解释为什么这么做,比如“因为模型输出不确定,所以评测时固定 temperature 和模型版本”。第三层是案例。讲一个自己经历过的项目,哪怕是小项目,也要说清楚输入、过程、输出。第四层是风险。主动说这个方案的局限,比如“回放数据需要脱敏,否则有隐私风险”。
这个结构的好处是:即使遇到不会的问题,也能先给一个合理的思考方向,再逐步细化。面试官通常愿意顺着候选人的思路继续追问,而不是一上来就否定。
5.2 一道“AI测试提效”题的示范回答
比如面试官问:“你们怎么用 AI 做测试提效?”很多候选人会回答“用 AI 生成测试用例”,但这太宽泛。
一个更落地的回答是:结论是用大模型处理测试前的生成和测试后的分析,而不是直接替代断言。依据是大模型擅长归纳和生成,但容易出错,不适合做精确判断。案例中,可以把接口历史请求导入脚本,让 GPT 根据 OpenAPI 文档生成测试用例和校验规则,再经过人工评审进入测试平台。风险是生成内容可能漏掉边界条件,所以需要追加覆盖率检查,并建立 badcase 回流机制。
这个回答把 AI 定位成“辅助工具”,而不是“全自动决策器”,更符合当前工程实践,也更容易说服面试官。
5.3 面试前要准备的项目故事模板
面试前不要只背知识点,要准备至少两个能讲成故事的项目。每个项目围绕下面几个问题展开:
- 项目背景:这个测试项目要解决什么问题。
- 我的职责:负责哪些内容,是独立完成还是团队协作。
- 数据来源:评测集或测试数据怎么来的,数量多少。
- 使用的指标:怎么判断成功或失败。
- 遇到的最大问题:比如用例不稳定、模型版本漂移、数据缺失。
- 排查过程:如何定位问题。
- 最终结果:是否落地,带来了什么改变。
- 还可以改进的点:比如还有哪些测试场景没有覆盖。
6. 常见误区、30天准备清单和学习路径
6.1 六个高频误区
AI 测试面试准备中,很多候选人会掉进同样的坑。
| 误区 | 错误表现 | 正确做法 |
|---|---|---|
| 只会讲准确率 | 面试中只会说“准确率到了 95%” | 补充召回率、F1、badcase 分析 |
| 把 AI 测试当功能测试 | 只验证返回内容,不关注工具调用和状态 | 区分模型评估和系统链路测试 |
| 平台设计只画图 | 只有用例、执行、报告三层 | 讲数据流、版本管理、回放机制 |
| 答不出失败排查 | 说“重新跑一次就好了” | 讲“固定参数、看日志、对比版本” |
| 忽略数据和标注 | 认为数据是算法团队的事 | 明确测试人员要参与数据集建设 |
| 只背题不落地 | 能说概念,但代码跑不通 | 至少准备一个最小评估脚本 |
6.2 30天面试准备计划
如果准备时间只有一个月,可以按周拆解学习计划。
| 周次 | 目标 | 具体内容 |
|---|---|---|
| 第 1 周 | 补齐基础概念 | 熟悉准确率、召回率、F1、ROUGE、BERTScore、幻觉率;学会区分离线评测和线上评测 |
| 第 2 周 | 写一个最小评估脚本 | 用 Python 加载一组测试数据,调用模型或 API,计算指标,输出 badcase 列表 |
| 第 3 周 | 准备项目材料 | 整理两个项目案例,补齐数据来源、指标、问题排查过程 |
| 第 4 周 | 模拟面试和复盘 | 每天做 3 到 5 道高频题,用自己的项目例子回答,并记录卡壳的地方 |
如果在工作中没有 AI 测试项目,可以从公共数据集构造一个小场景。比如做一个“客服问答评估”脚本,输入用户问题,比对一个预设的回答模板,计算相似度,再把失败样本输出成 JSON 文件。整个过程不需要生产环境,跑通后就能成为面试素材。
6.3 面试前一天的检查清单
面试前最后一天,推荐按这个清单自检:
- 能白板写出一个评估指标的定义,以及它适用于什么场景。
- 能讲清“准确率 95% 但业务投诉多”的完整排查流程。
- 能画出一个 AI 自动化测试平台的分层结构,并说明数据流。
- 能描述 Agent 工具调用错误时的测试方案。
- 准备了一个可运行的评估脚本,哪怕是本机小示例。
- 准备了一个项目故事,包含背景、问题、指标、结果。
- 准备了两到三个反问面试官的问题,比如“当前团队最缺哪类测试能力”。
如果这些都能做到,面试时的状态会比盲目背题稳定得多。AI 测试是一个变化很快的领域,面试官真正想看到的,是你面对不确定性问题时的分析路径和落地能力。把注意力从“100 道题”转移到“评测链路、数据回流和平台工程”上,效果会更好。