60道AI测试高频真题,覆盖大模型基础、Prompt工程、RAG系统、Agent系统、AI安全、API测试、性能测试、自动化测试、职业规划。
每道题都有"回答思路",不是标准答案------面试时用自己的话讲出来。
一、大模型基础概念(10题)
1. 什么是大语言模型(LLM)?它和传统NLP模型有什么区别?
回答思路:
- 基于Transformer架构,预训练+微调两阶段
- 规模差异:百亿~万亿级参数 vs 百万~千万级
- 能力差异:多任务(写作/编程/推理)vs 单一任务(分类/翻译)
- 关键区别:零样本/少样本学习能力,输入空间无限大
- 测试影响:输出是概率性的,断言方式完全不同
2. 什么是Prompt?为什么测试Prompt很重要?
回答思路:
- Prompt是用户给模型的输入指令,决定了模型的输出方向
- 同样的模型,不同的Prompt可能给出完全不同的答案
- 测试Prompt就是验证:模型是否按预期理解了指令、是否稳定输出
- 类比:Prompt就像API的入参,测试API要测各种入参组合,测试Prompt同理
3. 什么是温度(temperature)参数?测试时怎么设置?
回答思路:
- temperature控制输出的随机性:0=确定性输出,1+=高随机性
- 测试时应该用temperature=0,保证结果可复现
- 生产环境根据场景设置:客服用低温度(稳定),创意写作用高温度(多样)
- 面试要点:强调测试环境和生产环境的temperature设置差异
4. 什么是Token?怎么计算Token数量?
回答思路:
- Token是模型处理文本的最小单位,大约1个Token≈0.75个英文单词或1.5个中文字
- 输入+输出的Token总数不能超过模型的上下文窗口
- 测试时要关注:超长文本截断问题、Token计数准确性、费用计算
- 实际经验:可以用tiktoken库计算Token数
5. 什么是上下文窗口(context window)?对测试有什么影响?
回答思路:
- 上下文窗口是模型能同时处理的Token上限(如4K、8K、32K、128K)
- 测试影响:超长输入会被截断,可能导致信息丢失
- 需要测试的边界:刚好在窗口边缘的输入、多轮对话累积超过窗口
- 实际案例:用户发了10轮对话,第11轮时模型"忘记"了第1轮的内容
6. 什么是Fine-tuning(微调)?和Prompt工程有什么区别?
回答思路:
- Prompt工程:不改模型参数,只优化输入指令
- Fine-tuning:用特定数据调整模型参数,让模型"学会"新能力
- 区别:Prompt是"教模型怎么做",Fine-tuning是"让模型记住怎么做"
- 测试角度:Prompt测试看指令效果,Fine-tuning测试看模型能力是否真正提升
7. 什么是RLHF(基于人类反馈的强化学习)?
回答思路:
- 先用人类标注的数据做有监督微调(SFT)
- 再用强化学习让模型输出更符合人类偏好
- 测试影响:RLHF后的模型更安全、更听话,但也可能过度拒绝正常请求
- 面试要点:提到"过度拒绝"问题,这是测试需要关注的
8. 什么是幻觉(Hallucination)?怎么测试?
回答思路:
- 幻觉:模型输出看起来合理但实际错误的内容
- 测试方法:用已知答案的问题测试,验证输出准确性
- 分类:事实性幻觉(编造数据)、逻辑性幻觉(推理错误)、引用幻觉(编造来源)
- 实际经验:RAG系统能大幅减少幻觉,因为模型有参考资料
9. 什么是Few-shot / Zero-shot / One-shot学习?
回答思路:
- Zero-shot:不给例子,直接让模型做
- One-shot:给1个例子
- Few-shot:给几个例子
- 测试意义:验证模型在不同信息量下的表现差异
- 实际经验:Few-shot能显著提升模型输出质量,测试时要对比不同shot数量的效果
10. 大模型的"温度"和"top_p"参数有什么区别?
回答思路:
- temperature:控制整体随机性
- top_p:控制候选Token的概率质量,只从累积概率达到top_p的Token中采样
- 两者都影响输出的多样性,但机制不同
- 测试建议:测试时两个都设为最低值(0和1.0),保证可复现
二、Prompt工程测试(8题)
11. 你怎么测试一个Prompt的质量?
回答思路:
- 准确性:输出是否符合预期
- 稳定性:多次调用输出是否一致
- 鲁棒性:输入变化时输出是否合理
- 安全性:是否会被注入攻击
- 效率:Token消耗是否合理
- 实际方法:建一个Prompt测试集,覆盖正常/异常/边界/攻击场景
12. 什么是系统Prompt(System Prompt)?为什么它很重要?
回答思路:
- 系统Prompt是隐藏指令,告诉模型"你是谁、该怎么做"
- 决定了模型的行为边界和输出风格
- 测试要点:验证系统Prompt是否生效、是否能被用户输入覆盖
- 实际案例:客服机器人的系统Prompt说"不要回答医疗问题",但用户用角色扮演绕过了
13. 什么是Chain-of-Thought(思维链)?测试时怎么用?
回答思路:
- 让模型"一步步思考"再给出答案
- 能显著提升推理类任务的准确率
- 测试时:对比有思维链和无思维链的准确率差异
- 注意:思维链可能暴露模型的推理过程,有安全风险
14. 怎么测试Prompt的版本变更?
回答思路:
- 建立Prompt测试集(黄金测试集),每次变更都跑一遍
- 对比新旧版本的输出差异,用自动化工具评估
- 关键指标:准确率不下降、安全性不降低、Token消耗不增加
- A/B测试:线上同时跑两个版本,对比用户反馈
15. 什么是Prompt模板?怎么测试模板的泛化能力?
回答思路:
- Prompt模板是带占位符的Prompt框架,如"请总结以下{type}:{content}"
- 测试泛化能力:用不同类型的{type}和{content}测试
- 关注点:模板是否能处理各种输入格式、边界情况是否安全
- 实际经验:模板测试最容易遗漏的是"空输入"和"超长输入"
16. 多轮对话中怎么测试上下文管理?
回答思路:
- 测试多轮对话的连贯性:第N轮是否能引用第1轮的信息
- 测试上下文窗口溢出:对话过长时是否合理截断
- 测试上下文清理:是否需要手动清除历史
- 实际方法:写自动化脚本,模拟20+轮对话,检查每轮输出
17. 怎么测试Prompt的多语言支持?
回答思路:
- 用不同语言输入同一问题,对比输出质量
- 关注点:翻译准确性、文化差异、敏感内容处理差异
- 实际经验:很多模型中文安全过滤严格,但英文/其他语言宽松
- 测试方法:用同一组敏感问题测试多语言,看拦截率是否一致
18. 什么是Prompt注入?怎么防范?
回答思路:
- 用户输入中包含恶意指令,绕过系统Prompt约束
- 测试方法:用注入攻击测试集验证(直接注入、角色扮演、编码绕过等)
- 防范措施:输入过滤、输出验证、系统Prompt加固
- 类比:和SQL注入原理一样,都是"输入被当成指令执行"
三、RAG系统测试(8题)
19. 什么是RAG(检索增强生成)?它的核心组件有哪些?
回答思路:
- RAG = 检索(Retrieval)+ 生成(Generation)
- 核心组件:文档处理 → 向量数据库 → 检索引擎 → Prompt组装 → LLM生成
- 测试影响:每个组件都要单独测试,还要测试端到端流程
- 类比:RAG就像"开卷考试",模型先查资料再答题
20. 怎么测试RAG系统的检索准确性?
回答思路:
- 准备一组"问题-正确答案-参考文档"的测试集
- 验证:检索到的文档是否包含正确答案
- 指标:Recall@K(前K个文档中是否包含正确答案)、Precision(检索文档的准确率)
- 实际经验:向量检索的Recall@5通常能做到80%+,关键看文档切分质量
21. 文档切分(Chunking)策略对RAG有什么影响?怎么测试?
回答思路:
- 切分太大:检索结果包含太多无关信息
- 切分太小:丢失上下文,检索结果不完整
- 测试方法:用不同切分策略(按段落/按句子/按Token数)对比检索效果
- 经验值:500-1000Token的Chunk通常效果较好
- 进阶:重叠切分(Chunk之间有重叠)能减少边界信息丢失
22. 怎么测试RAG系统的生成质量?
回答思路:
- 准确性:生成内容是否与参考文档一致
- 完整性:是否回答了用户问题的所有方面
- 流畅性:语言是否自然
- 幻觉率:是否有编造内容
- 工具:Ragas框架可以自动化评估这些指标
- 实际方法:人工标注200条样本,计算准确率
23. 什么是向量数据库?测试时需要关注什么?
回答思路:
- 向量数据库存储文档的向量表示,支持语义检索
- 常见:Milvus、Pinecone、Weaviate、FAISS
- 测试关注:检索速度、召回率、向量维度一致性
- 性能测试:百万级向量下的检索延迟
- 实际经验:向量维度不一致会导致检索失败,这是常见bug
24. RAG系统的端到端测试怎么做?
回答思路:
- 准备测试集:100-500条"问题-期望答案"对
- 端到端跑一遍:输入问题 → 检索 → 生成 → 输出
- 评估:用自动化工具(Ragas)+ 人工抽检
- 关键指标:答案准确率、检索召回率、响应时间
- 持续测试:文档更新后自动回归测试
25. 怎么测试RAG系统的"不知道就说不知道"能力?
回答思路:
- 准备一组"文档中没有答案"的问题
- 验证模型是否回答"我不知道"而不是编造
- 实际经验:很多RAG系统在这个点上做得不好,模型倾向于"硬答"
- 改进方法:优化系统Prompt,加强"不知道就说不知道"的约束
- 测试指标:拒答准确率(该拒答时拒答的比例)
26. RAG系统的安全性怎么测试?
回答思路:
- 文档注入攻击:恶意文档被检索后生成有害内容
- 敏感信息泄露:检索结果中包含不该公开的信息
- 越权访问:用户能否通过RAG获取无权限的文档
- 测试方法:构造恶意文档+敏感问题,验证系统行为
- 实际案例:某公司RAG系统泄露了内部薪资文档
四、Agent系统测试(10题)
27. 什么是Agent?它和普通LLM调用有什么区别?
回答思路:
- Agent = LLM + 规划 + 工具调用 + 记忆 + 执行
- 普通LLM:单次调用,输入→输出
- Agent:多步执行,能调用工具、维护状态、自主决策
- 测试影响:Agent测试不仅要测最终结果,还要测每一步的执行轨迹
- 类比:LLM是"大脑",Agent是"大脑+手+脚"
28. 怎么测试Agent的工具调用能力?
回答思路:
- 正确性:Agent是否选择了正确的工具
- 参数准确性:工具调用的参数是否正确
- 错误处理:工具调用失败时Agent如何应对
- 多工具组合:复杂任务是否需要多个工具配合
- 测试方法:Mock工具返回,验证Agent的选择和参数
- 实际经验:Agent经常选错工具或传错参数,这是最常见bug
29. 什么是Agent的"规划能力"?怎么测试?
回答思路:
- 规划:Agent将复杂任务分解为合理步骤的能力
- 测试维度:
- 完整性:是否覆盖了所有需要的步骤
- 顺序合理性:步骤之间是否有正确的依赖关系
- 效率:步骤是否冗余
- 测试方法:给复杂任务,验证Agent的规划是否合理
- 实际案例:订票Agent应该先查天气再决定日期,而不是先订日期再查天气
30. Agent的"死循环"问题怎么测试?
回答思路:
- 死循环:Agent反复执行同一操作,无法终止
- 原因:规划逻辑缺陷、工具返回不符合预期、缺少终止条件
- 测试方法:
- 设置最大步骤数,验证是否能在限制内完成
- 构造可能引发循环的输入
- 监控API调用次数,异常时告警
- 实际案例:查天气→决策→再查天气→再决策,20分钟调用200次API
31. 怎么测试Agent的记忆管理?
回答思路:
- 短期记忆:多步执行中是否记住中间结果
- 长期记忆:跨会话是否能记住用户偏好
- 测试方法:
- 多步任务中验证中间结果的传递
- 长对话中验证早期信息的回忆
- 记忆溢出时的行为(是否合理截断)
- 实际经验:Agent经常"忘了"上一步的结果,导致重复执行
32. 多Agent系统的测试要点是什么?
回答思路:
- 角色分工:每个Agent是否执行了正确的职责
- 协作机制:Agent之间的通信是否正确
- 任务分配:任务是否分配给了合适的Agent
- 冲突处理:多个Agent结果冲突时如何解决
- 测试方法:
- 单Agent独立测试
- Agent间接口测试
- 端到端多Agent协作测试
- 实际经验:多Agent系统的测试复杂度是指数级增长的
33. Agent的错误处理和降级策略怎么测试?
回答思路:
- 工具调用失败:重试、换工具、降级
- LLM调用失败:重试、降级到规则引擎
- 规划失败:重新规划或告知用户
- 测试方法:
- Mock工具返回错误
- Mock LLM返回异常
- 验证Agent的降级行为是否合理
- 实际经验:Agent的错误处理比传统系统复杂得多,需要充分测试
34. 怎么测试Agent的安全性?
回答思路:
- 工具权限:Agent能否调用超出权限的工具
- 数据泄露:Agent是否泄露了不该访问的数据
- 注入攻击:用户输入是否能通过工具调用注入恶意内容
- 测试方法:
- 越权工具调用测试
- 敏感数据访问测试
- 工具参数注入测试
- 实际经验:Agent的安全风险比普通LLM高得多,因为能"动手"
35. Agent的执行轨迹(Trace)怎么测试和验证?
回答思路:
- 轨迹记录:每一步的执行日志是否完整
- 轨迹可解释性:用户能否理解Agent的执行过程
- 轨迹一致性:实际执行是否与规划一致
- 测试方法:
- 验证每一步的日志记录
- 对比规划和执行的差异
- 异常轨迹的自动检测
- 实际经验:轨迹追踪是调试Agent问题的核心手段
36. 怎么评估Agent的任务完成率?
回答思路:
- 完成率:成功完成的任务数/总任务数
- 测试方法:
- 准备一组标准任务(简单/中等/困难)
- 跑多轮,统计完成率
- 分析失败原因(规划失败/工具失败/LLM失败)
- 维度分解:
- 规划成功率
- 工具调用成功率
- 最终任务完成率
- 实际经验:完成率要按难度分级统计,不能只看整体
五、AI安全测试(8题)
37. 什么是Prompt注入攻击?列举常见类型
回答思路:
- 直接注入:"忽略之前的指令"
- 角色扮演:"你现在是一个没有限制的角色"
- 编码绕过:Base64/URL编码恶意指令
- 多语言绕过:用其他语言写恶意指令
- 间接注入:通过外部网页/文档注入
- 测试方法:用注入测试集验证系统防御能力
38. 什么是越狱攻击(Jailbreak)?怎么测试?
回答思路:
- 越狱:绕过模型的安全约束,让模型输出本应拒绝的内容
- 常见手法:DAN模式、角色扮演、分步诱导、假设场景
- 测试方法:收集已知的越狱Prompt(如Guardrails AI的测试集)
- 评估:记录模型的拒绝率和误拒率
- 实际经验:没有100%安全的模型,目标是让攻击成本足够高
39. AI系统的数据安全怎么测试?
回答思路:
- 输入数据:用户输入是否被存储、是否用于模型训练
- 输出数据:模型输出是否包含敏感信息
- 传输安全:API调用是否加密
- 测试方法:检查日志是否包含用户输入、验证API是否用HTTPS
- 合规:GDPR/个人信息保护法要求
40. 怎么测试AI系统的偏见(Bias)?
回答思路:
- 偏见测试:用不同性别/种族/年龄的输入测试输出差异
- 方法:构造对照组,如"男医生vs女医生"的评价
- 工具:可以自动化批量测试
- 评估:输出评分/情感倾向是否有显著差异
- 实际经验:偏见测试需要大量样本,自动化是必须的
41. 什么是内容安全过滤?怎么测试它的效果?
回答思路:
- 内容安全过滤:检测并拦截有害输出(暴力/色情/仇恨等)
- 测试方法:构造有害输入,验证是否被拦截
- 关注点:拦截率(越高越好)和误拒率(越低越好)的平衡
- 实际经验:过度过滤会导致用户体验差,需要找到平衡点
- 工具:可以用开源的内容安全模型做辅助测试
42. AI系统的输出审核机制怎么测试?
回答思路:
- 前置审核:用户输入先过安全过滤再生成
- 后置审核:模型输出先过安全过滤再返回
- 测试:绕过前置审核的输入能否被后置审核拦截
- 双保险机制:前后都审核的系统更可靠
- 实际经验:只用前置审核的系统容易被绕过
43. 怎么测试AI系统的权限控制?
回答思路:
- 水平越权:用户A能否访问用户B的数据
- 垂直越权:普通用户能否执行管理员操作
- 测试方法:用不同权限的账号测试同一操作
- RAG系统特别注意:用户能否通过检索获取无权限的文档
- 实际经验:权限测试最容易遗漏的是"间接访问"路径
44. AI系统的日志安全怎么测试?
回答思路:
- 检查日志是否包含用户输入(可能含敏感信息)
- 检查日志是否包含模型输出(可能含生成的敏感内容)
- 检查日志是否包含API Key等凭证
- 测试方法:用含敏感信息的输入触发系统,检查日志输出
- 合规要求:日志脱敏是基本要求
六、AI API与性能测试(8题)
45. 怎么测试AI API的稳定性?
回答思路:
- 一致性测试:temperature=0跑多次,输出应一致
- 边界输入:空字符串、超长文本、特殊字符
- 并发测试:10/50/100并发,错误率应<5%
- 容错测试:模拟429限流、超时、500错误
- 实际经验:AI API的稳定性比传统API更难保证,因为依赖外部模型服务
46. AI系统的性能指标有哪些?
回答思路:
- 首Token延迟(TTFT):从请求到第一个Token输出的时间
- 总延迟:从请求到完整输出的时间
- 吞吐量(Tokens/s):每秒生成的Token数
- QPS:每秒处理的请求数
- 错误率:超时/限流/500的比例
- 成本:每次调用的Token费用
47. 怎么对AI系统进行压力测试?
回答思路:
- 工具:JMeter/Locust + 自定义AI测试脚本
- 测试场景:恒定并发、阶梯递增、峰值冲击
- 关注指标:P50/P95/P99延迟、错误率、Token消耗
- 特别注意:AI系统的压力测试要关注"模型服务质量降级"
- 实际经验:并发过高时模型服务可能返回低质量答案,不只是超时
48. 怎么测试AI系统的成本?
回答思路:
- 计算每次调用的Token消耗(输入+输出)
- 估算日均调用量和月均费用
- 优化方向:缩短Prompt、限制输出长度、缓存重复请求
- 测试方法:用真实流量数据跑成本估算
- 实际经验:成本测试经常被忽略,但上线后可能成为大问题
49. AI系统的缓存策略怎么测试?
回答思路:
- 相同输入是否返回缓存结果
- 缓存命中率:多少请求走了缓存
- 缓存失效:文档更新后缓存是否清理
- 测试方法:构造重复请求,验证是否命中缓存
- 实际经验:AI系统的缓存可以节省大量成本和延迟
50. 怎么测试AI系统的降级策略?
回答思路:
- 主模型不可用时是否切换到备用模型
- 超时后是否有友好提示
- 限流后是否有排队/重试机制
- 测试方法:模拟主模型故障,验证降级行为
- 实际经验:降级策略是生产环境的必备能力
51. 流式输出(Streaming)怎么测试?
回答思路:
- 验证流式输出是否按Token逐个返回
- 测试中途取消请求的行为
- 测试网络中断后的恢复
- 测试前端渲染是否流畅
- 实际经验:流式输出的测试重点是"中断"场景
52. 怎么测试多模型切换的兼容性?
回答思路:
- 不同模型的API格式是否一致
- 切换模型后输出质量是否稳定
- 切换模型后Prompt是否需要调整
- 测试方法:用同一组测试集跑不同模型,对比输出
- 实际经验:不同模型的输出风格差异很大,需要适配
七、AI自动化测试(4题)
53. 怎么自动化测试AI系统的输出质量?
回答思路:
- 规则匹配:输出包含关键词/符合格式
- 语义相似度:用Embedding计算输出与期望的相似度
- LLM-as-Judge:用另一个模型评估输出质量
- 实际经验:LLM-as-Judge效果最好,但成本高
- 工具:Ragas、DeepEval、Promptfoo
54. AI测试的自动化框架有哪些?
回答思路:
- Ragas:RAG系统评估框架
- DeepEval:LLM应用评估框架
- Promptfoo:Prompt测试框架
- LangSmith:LangChain生态的测试监控
- 实际经验:Ragas是最成熟的RAG评估工具
55. 怎么用AI辅助生成测试用例?
回答思路:
- 给AI需求文档,让它生成测试用例
- 给AI已有用例,让它补充边界场景
- 给AI代码,让它生成单元测试
- 注意:AI生成的用例需要人工审核,不能直接用
- 实际经验:AI生成用例的效率提升约30%,但质量需要把关
56. AI测试的CI/CD集成怎么做?
回答思路:
- 代码提交时自动跑Prompt测试集
- 模型更新时自动跑回归测试
- 文档更新时自动跑RAG检索测试
- 门禁:准确率不下降才能合并
- 实际经验:AI测试的CI/CD比传统测试复杂,因为评估标准不固定
八、项目经验与职业发展(4题)
57. 说说你做过的AI测试项目
回答思路:
- 项目背景:什么系统、什么模型、什么场景
- 测试范围:测了什么(模型/Prompt/RAG/安全/性能)
- 测试方法:用了什么工具、什么框架
- 成果:发现了多少bug、提升了多少准确率
- 反思:如果重来会怎么做
- 关键:用数据说话,不要空谈
58. 你在AI测试中遇到的最大挑战是什么?
回答思路:
- 挑战1:输出不固定,难以判断对错
- 解决:建立黄金测试集,用多维度评估
- 挑战2:测试成本高(Token费用)
- 解决:缓存+采样测试,降低测试成本
- 挑战3:安全测试覆盖不全
- 解决:用开源攻击测试集+自动化扫描
- 关键:展示问题解决能力,不只是描述困难
59. 你对AI测试的未来发展怎么看?
回答思路:
- 趋势1:AI测试工具会越来越成熟(自动化评估)
- 趋势2:安全测试会越来越重要(监管趋严)
- 趋势3:测试人员需要懂AI原理(不只是黑盒测试)
- 趋势4:测试左移(参与模型选型、Prompt设计)
- 个人观点:AI测试不是替代传统测试,而是补充
60. 你为什么想做AI测试?
回答思路:
- 兴趣:对AI技术感兴趣,关注行业动态
- 优势:测试经验能迁移到AI测试(质量保障思维)
- 价值:AI系统的质量直接影响用户体验,测试很重要
- 规划:短期学AI基础,中期做AI测试项目,长期做AI质量体系
- 关键:展示学习能力和长期承诺
使用建议: 面试前把每道题的"回答思路"过一遍,用自己的话讲出来。不要背答案,理解逻辑最重要。