前段时间有位粉丝去参加面试,回来总觉得答得不太好,找到我,想让我帮他复盘一下。题目拿过来一看,里面有几道问题挺典型的,挑几道出来,跟大家分享一下。

面试聊的是他做的测试用例 Agent 项目,面试官问得挺细,从提效数据怎么统计,一直问到方案本身有什么短板。每道题我都站在面试官的角度拆了一下,这道题面试官到底想听什么,怎么答能答到点子上。大家可以先自己想想,再对照我的思路看。

候选者的回答,应粉丝要求,就不展示了~

面试题一

面试官问:测试用例 Agent,用例编写从 68 小时缩短到 23 小时(简历中有提到),这个数据怎么统计的?

这道题面试官想考什么?

面试官问这个问题,不是单纯要计算公式,这是一道典型的 “数据真实性/严谨性” 追问题。面试官想考察的不是数字本身,核心考察的是,你是不是拍脑袋编的数字,有没有清晰、可复现的统计口径,以及你是否诚实对待数据的局限性,有没有盲目夸大收益。

面试口述完整思路

面试官您好,这个时长我们是有针对同等复杂度需求做过对照统计的:

基线 68 小时: 是我们在引入 Agent 之前的基线,取自项目管理平台(如 Jira/禅道)中同一类任务的历史工时。我们选了引入前 2~3 个迭代、同一团队、同类复杂度的需求作为样本,比如 50 个需求、累计 500 条用例,统计的是从需求评审完成到用例评审通过的端到端耗时,而不是只算 ‘打字’ 的时间——包括用例设计、编写、自查、评审返工。”

23 小时:是引入 测试用例 Agent 之后,我们在相同口径下度量:同样的团队、相近复杂度的需求,同样从需求评审完成到用例评审通过。数据来自任务工时记录 + 用例评审记录。统计的是人在这个链路里的实际投入工时,Agent 自动生成的耗时不计入人工工时。

并且,为了尽量减少干扰,我们特意做了几件事保证可比性:

这里在回答时,还可以主动拆解时间去哪了(体现深度)

比如,原来 68 小时里,设计约 20h、编写约 30h、评审返工约 18h。Agent 主要压缩的是编写环节(30h→8h),设计和评审环节仍以人为主。所以提升的本质是人机分工,而不是 AI 替代了全部。

如果候选者,能主动拆解一下,是很能打动面试官的——说明你理解提效来源,而不是甩一个数字。

可能的追问

68h →23h,节省了这么多,那能不能继续往下压?瓶颈在哪?

建议回答:现在瓶颈不在打字、结构化罗列,而是需求里没有写清楚的隐性规则、业务耦合场景、风险判断,这些 Agent 目前阶段很难自动识别,必须靠测试人员理解业务、和产品对齐。这部分工时很难再大幅压缩。

面试题二

面试官问:AI 生成的测试用例,怎么保证可执行、场景覆盖完整?边界、分支场景怎么保证不漏?

这道题面试官想考什么?

这是上一题的延伸,面试官在考察你对 AI 生成内容的质量工程的理解。核心答题思路:不要说 “我们靠人工看”,AI Agent 本身不能自动保证全覆盖,它擅长结构化、显性规则;边界、分支、隐性业务约束是短板。我们主要是靠「多层约束 + 校验机制 + 人工兜底闭环」来保障可执行性和场景覆盖,而不是信任模型一次性输出。

面试口述完整思路

我们是主要分四层来保障:输入约束、生成时的推理引导、自动化校验、人工评审 + 持续反馈闭环,同时会分开解决【可执行】和【覆盖完整】两个问题。

第一,先解决可执行性。

  1. 给 Agent 固定输出规范:强制对齐我们内部测试用例模板,包含前置条件、操作步骤、预期结果、断言、数据准备、环境依赖,禁止自由文本;
  2. 接入元数据:接口文档、字段枚举、参数类型、数据库字典、接口返回结构,Agent 生成断言的时候直接引用字段,而不是写模糊描述(比如不能写 “返回成功”,要写 code=0);
  3. 内置校验规则:生成后先做轻量静态检查,比如参数是否合法、前置条件是否冲突、有没有缺少测试数据、断言和接口返回字段是否匹配,不符合规则直接打回重生成;
  4. 可执行标准定义:这条用例交给自动化脚本或者测试人员,不需要额外猜业务、不需要二次脑补就能直接跑。

第二,解决分支、边界、异常场景不漏,这块是重点,也是 AI 最容易翻车的地方:

  1. 生成前做场景拆解前置。不是直接丢需求给大模型,Agent 先做一步控制流 / 业务分支解析:梳理主流程、分支判断点、状态机、枚举值、判断条件(if/else、开关、权限、角色),先输出分支清单,再基于清单生成用例。 比如订单有支付状态、退款开关、用户等级,先把所有组合枚举出来,再生成用例,而不是模型自己脑补;
  2. 内置边界值知识库:对数字、长度、时间、数组、分页、ID 这类通用类型,内置边界策略:正常值、最小值、最大值、临界值、越界、空、null、空字符串、特殊字符、超长;
  3. 风险场景清单注入:把历史缺陷库、高频踩坑点、业务禁忌规则做成 prompt 知识库,比如幂等、并发、重复提交、跨租户、权限越权、事务回滚,强制 Agent 优先覆盖;
  4. 组合爆炸控制:分支太多的时候,不盲目全量枚举,采用等价类 + 正交试验策略,优先覆盖高风险组合,低风险组合做抽样,避免用例泛滥。

第三,覆盖度校验,用来发现漏掉的场景: 生成完用例之后,我们会反向做覆盖率对账:

重点:不是 AI 自己判断有没有覆盖,而是 “拆解清单” 和 “生成用例” 做比对,把遗漏点显性化。

第四,人工闭环 + 持续迭代,解决隐性规则。 需求文档里很多隐性逻辑、业务潜规则、历史兼容逻辑,文档不会写,AI 看不到。所以:

最后我也会主动提局限性: 对于强耦合、复杂业务、多系统联动、产品口头约定的特殊规则,Agent 依然很难自动识别,这部分的兜底责任还得是测试专家,Agent 是辅助拆解和生成,而不是替代覆盖设计。

可能的追问

如果需求本身写得模糊,Agent 会不会生成一堆无效场景?

建议问题:Agent 识别到需求歧义点时,我们设计了一个机制:先抛出疑问清单,而不是自行脑补假设去生成用例,由测试找产品确认之后再继续生成,避免基于错误假设产出一堆错的用例。

面试题三

面试官问:覆盖度检查只能代表需求维度覆盖,不等于逻辑正确,怎么解决?

面试口述完整思路

您说得非常对,这也是我们落地时踩过的坑:覆盖率检查只能解决「有没有覆盖这个分支 / 场景」,也就是覆盖广度;但覆盖上了,不代表用例的逻辑、预期、业务规则是对的。覆盖度 ≠ 正确性。

我们的方案是把两个事情分开:

  1. 【覆盖检查】:管广度 —— 有没有漏掉分支、边界、状态
  2. 【逻辑正确性校验】:管深度 —— 这条用例本身的判断、预期、流转、约束是不是符合业务真实逻辑,这块是另一套独立校验链路,分四层做。

第一层:结构化元数据做硬校验(确定性规则,机器自动卡) 把接口 Schema、枚举字典、数据库约束、状态流转图、配置规则作为知识来源,而不是靠模型脑补。 比如:

这一层的特点:有标准答案,规则可代码化,不依赖大模型主观理解,优先在这里拦截低级逻辑错误。

第二层:业务规则校验器(规则引擎 + 知识库) 针对固定业务约束,我们沉淀了业务规则库,写成规则,不是交给模型自由发挥。 比如:退款金额不能大于原支付金额、未结算订单不能销户。 Agent 生成预期结果之后,会送入规则引擎跑一遍:如果用例的操作 + 预期违反了业务规则,直接标记【逻辑冲突】,返回错误提示给 Agent 重生成。

第三层:用例自洽校验 + 因果推理校验(大模型负责复杂逻辑审查) 适合没有办法写成硬代码规则的复杂业务逻辑,交给一个专门的「评审子 Agent」,它不生成用例,只做审查,固定问 3 类问题:

  1. 前置条件、操作步骤、预期结果之间有没有矛盾?比如前置是订单已取消,操作写发起支付,预期写支付成功,属于自相矛盾;
  2. 这个操作带来的上下游联动是否合理?比如退款成功之后,优惠券、积分、库存的联动是否符合业务逻辑;
  3. 有没有违反隐性风险规则,比如资金类场景是否存在超扣、重复入账。

这里要注意:模型审查只是告警,不能作为判定正确的依据,只输出风险疑点清单,交给人复核。

第四层:人工分级评审 + 回归闭环,解决最核心的 “隐性业务逻辑” 硬规则、规则库、模型审查都只能处理文档化、沉淀过的逻辑。 很多业务逻辑是历史兼容、口头约定、特殊例外场景,没有写进文档,也没有进规则库,机器识别不了。 所以我们做分级评审:

最后补充边界,主动暴露局限性(加分项): 这套体系依然不能做到 100% 自动保证逻辑正确。它的目标是:把低级、确定性的逻辑错误自动化拦截,把人的精力从查分支有没有漏,转移到校验复杂业务逻辑、特殊例外场景上。

面试题四

面试官问:这套测试用例生成 Agent 方案本身存在什么问题?

面试口述完整思路

这个 Agent 我们给它的定位,主要是用于解决标准化、显性规则类用例的提效,当然它不是万能的,这套方案我们在落地过程中,确实有几个绕不开的短板,越是复杂、隐性、强业务语义的场景,短板越明显,我一个个说:

1、依赖输入素材质量,输入脏,输出就一定差(最核心痛点)

整套流水线的起点是:需求文档、接口文档、知识库。

2、规则引擎、知识库、Few-shot 样本持续维护成本高,容易变成技术债务

前面我们提到:Schema 校验、状态流转规则、业务约束、缺陷样本库,都是正确性校验的核心。

3、复杂多条件组合、跨系统联动场景,推理能力不稳定

对于单接口、单状态流转、简单分支,效果很好; 但是遇到:多服务联动、分布式事务、异步回调、多角色多配置叠加、时序相关场景(先后操作顺序影响结果),大模型容易出现因果错乱:

4、校验链路有盲区,正确性校验无法做到完全自动化

我们分了三层校验:硬规则、规则引擎、评审 Agent:

5、产出物容易 “形式正确,但脱离实操”,可执行性依然有坑

虽然我们强制绑定模板、接口 Schema,但 AI 容易写出 “纸面可用” 的用例:

6、人的能力退化风险,团队侧软问题

长期依赖 Agent 生成初稿,测试同学会慢慢减少自己主动做等价类、边界、状态分析的习惯; 新人如果直接依赖 Agent 输出,缺少用例设计的训练,识别异常、判断业务风险的能力会变弱; 评审的时候容易变成 “看一眼 AI 写的,直接放行”,把 Agent 的输出当成标准答案,放松审查,反而引入隐性风险。

7、模型本身的不确定性,输出不稳定

同样一份需求、同样的知识库,不同时间生成的清单、用例质量会波动; 这次拆解很完整,下次可能少拆一个分支; 给评审带来额外负担:每次都要重新仔细核验,没办法稳定信任输出。

面试题五

面试官问:用量上来之后,怎么持续保证 AI 生成用例正确?人工审核也有漏审风险怎么办?

面试口述完整思路

规模上来之后,肯定不能再单纯靠 “人工逐行审” 来兜底了,大体可以分成四块来讲:事前准入、事中多层校验(减少流入人工的错误)、评审机制改造(降低漏审概率)、事后观测与自动回流(漏出去的问题自动捕获反哺)

1、事前:分级准入,从源头减少错误流入

规模大了,最忌讳所有需求一股脑丢进 Agent。

  1. 按业务风险、复杂度做准入分级
  2. 基线版本化管理 拆解清单、状态机、业务规则、枚举这些基准数据,做版本记录;需求变更时,先变更基线,再重新生成用例。 避免多人并行改需求、知识库混乱,导致同样的输入,输出随机漂移。
  3. 输入质量门禁 增加前置检查:需求是否有歧义、接口文档是否和线上对齐、状态图是否缺失。识别到输入质量差,直接拦截,不进入生成流程,防止 “错基线批量产出错误用例”。

2、事中:机器校验分层加固,把大部分错误拦在人工评审之前(减少人工压力)

前面提到的硬校验、规则引擎、评审 Agent,规模化之后要做可量化、可告警、可统计,而不是简单输出疑点:

  1. 确定性硬规则(Schema、状态流转、枚举、字段约束):强拦截,不允许进入评审队列,直接打回重生成,这一层零人工介入。
  2. 业务规则引擎:区分阻断型规则(退款金额不能大于原单)和告警型规则(非强约束建议)。阻断型不通过直接驳回;告警型标记风险标签,推给评审人重点看。
  3. 独立评审 Agent 做疑点提取,不丢完整用例给人看,只丢高风险疑点片段 ,比如一份用例 20 条,Agent 只标出 3 条有风险的:“这条状态流转异常”“预期金额和规则冲突”。 人容易漏审,主要是因为枯燥、量大、逐行看,注意力涣散。通过这种方式,可以让评审人员不再通读全部用例,优先核查疑点,疑点无问题再看其余;聚焦式评审,大幅降低疲劳导致的漏审。
  4. 同需求差分对比(非常适合规模化)需求迭代变更时,新版本 Agent 生成的用例,和上一版做 diff,只展示新增、修改、删除的用例和变更点。评审只看变更部分,不变的历史稳定用例免审。 这个手段在版本迭代场景下,对降低漏审效果很明显。

3、评审机制改造:用交叉、抽检、多人复核减少漏审

人工一定会漏,所以不能依赖单人一次评审就放行,靠机制降低概率:

  1. 风险分级匹配评审策略
  2. 评审 checklist 标准化,减少 “凭感觉评审” 给评审人固定检查清单:基线清单是否对齐、状态流转是否合规、上下游联动、异常边界、预期结果、造数依赖。 系统强制勾选,不允许直接一键通过,避免 “闭眼点同意”。
  3. 评审痕迹 + 风险标签沉淀 每一条疑点、每一处修改,都打上标签:【基线错误】【模型推理错误】【业务隐性规则】,方便后续统计哪一类错误高发,定向优化知识库 / 提示词。

这里要坦诚:这套机制只能降低漏审概率,无法彻底消灭漏审,所以必须有事后兜底。

4、事后:执行侧、线上侧的观测闭环,捕获漏审出去的问题,自动回流

这是规模化持续保证正确最关键一环,也是很多方案缺失的:

  1. 测试执行阶段的反馈采集 用例执行时,如果出现【预期结果和实际返回不一致】,区分原因:
  2. 线上漏测缺陷反向归因 线上出现缺陷,回溯:是不是属于应该覆盖的分支、是不是用例预期写错。 如果是 Agent 生成 + 评审漏审导致,归入负样本,同时检查基线、规则是否缺失。
  3. 持续指标看板,监控 Agent 质量趋势,而不是只看单次结果 规模化之后要盯趋势指标,而不是单点:

面试题六

面试官问:大模型本身存在幻觉,为什么还用大模型做用例质量校验,而不是纯规则?这个矛盾点有没有考虑过?

面试口述完整思路

这个矛盾我们有重点考虑过的。

我们的策略是分层:能固化成确定性规则的,全部用规则引擎校验,优先用规则,避免大模型幻觉;只有那些复杂联动、业务因果、语义自洽这类很难写成规则的场景,才交给大模型评审 Agent。

也就是说,我们并不是用大模型替代规则校验,而是二者分工互补,各自只干自己擅长的事,并且有明确的权责边界。

下面还可以分层展开讲一下:

第一层:先分清两类校验对象,哪些适合纯规则,哪些规则很难写

  1. 适合纯规则引擎(优先用,能写规则绝不交给大模型) 这类是确定性、硬约束: 字段类型、枚举范围、金额不能为负、退款金额≤原支付金额、必填参数校验、接口 Schema 约束。 这些条件边界清晰、不会经常变,写成代码 / DSL 规则, 在我们流水线里,这一层是强阻断层,优先跑,不经过大模型。只要命中违规,直接打回,不流入评审环节。
  2. 很难写成纯规则,或者写规则成本极高的场景(才交给大模型评审 Agent) 这就是纯规则的短板:
  3. 多服务联动、异步回调、上下游连锁影响;
  4. 业务隐性约束、多条件交叉的业务因果;
  5. 语义层面的自洽性检查:前置条件、步骤、预期之间有没有逻辑冲突;
  6. 需求里的自然语言业务意图校验、风险场景识别(比如有没有越权、资损风险)。

第二层:怎么隔离幻觉风险

核心设计有三条:

  1. 大模型只有 “疑点上报权”,没有 “放行 / 驳回的决定权” 规则引擎的结果是判定:通过 / 不通过,直接生效。而大模型评审输出给的是【风险疑问清单】。

  2. 对大模型的疑点做分级,并且统计它的幻觉(误报)指标,用于持续收敛 :

  1. 模型评审的输出,作为补充信号,不是唯一信号 一个用例最终能不能往下走,决策来源是:

第三层:讲清楚边界和兜底,主动暴露局限,体现思考深度

我们有明确的红线: 凡是资损、权限、核心交易类的强校验,绝不依赖大模型评审,全部下沉到规则引擎。 大模型只用来处理那些:规则不好写、变更频繁、属于业务语义、因果推理类的软校验。

当然这个方案确实也存在短板,比如: 大模型有概率漏报(幻觉的另一种形式:看不出明显错误),所以我们不会因为模型没报疑点,就认为这条用例没问题。 所以配套了:抽样复核、变更 diff 评审、事后执行反馈闭环。

可能的追问

既然大模型会漏报,那它的价值是不是很低?

建议回答:价值体现在提前发现大量规则覆盖不到的隐性逻辑问题。很多跨模块联动、隐性业务约定,我们很难提前预知、提前写成规则。模型可以低成本批量扫描,帮人聚焦可疑点;它不能替代人,但可以降低人漏掉复杂因果问题的概率。

写在最后

最后从面试官的角度,说说这类问题该怎么答,侧重什么。

这类围绕 AI 项目的追问,问来问去想确认的就是一件事,这东西你有没有真做过。

数字被追问时,把口径和对照讲清楚,比提升百分比本身更重要;聊质量保障,说清机器拦哪层、人守哪层;问到方案短板时,大胆承认,能主动说出局限的候选人,面试官反而放心。别一味的甩出结论,记得要把过程讲出来、期间遇到什么问题又是怎么解决的,这些反而比结论更重要。


↙↙↙阅读原文可查看相关链接,并与作者交流