最近不少测试同学都在讨论AI生成测试用例这个话题。有的团队直接用ChatGPT、Cursor或者专门的AI测试用例生成平台,让AI按需求描述输出一版用例,结果拿回来一看,结构确实漂亮,步骤也清晰,但真拿着去执行的时候,总差点意思——要么断言写得太模糊,要么边界条件完全漏掉,更离谱的是AI会一本正经地描述一个系统里根本不存在的按钮。所以“AI生成测试用例怎么人工审核”就成了绕不开的实操问题。
这篇文章不聊虚的,直接讲清楚:AI生成的测试用例到底有哪些坑、人工审核该按什么流程走、不同维度用例(功能、接口、安全、登录)分别该盯哪些重点,以及怎么避免AI幻觉对用例质量的污染。适合正在试用AI辅助测试的QA、测试开发,也适合想给团队搭建“AI生成+人工审核”流程的测试负责人。
1. 为什么AI生成的测试用例必须先过一遍人工审核
很多团队上AI生成测试用例,初衷是省时间。AI确实快,给一段需求描述,几十秒就能输出几十条用例,省掉从0到1的起草成本。但省时间的前提是“有人兜底”。AI生成用例不是终态,只是初稿,它有三个绕不开的缺陷。
1.1 AI生成的测试用例看着全,其实暗藏三类坑
第一类坑叫“结构完整但内容失真”。AI很擅长模仿测试用例模板,前置条件、测试步骤、预期结果写得有模有样,但里面的细节可能是它自己脑补的。比如需求里说的是“用户输入手机号”,AI默认手机号是11位,但实际项目里可能支持港澳地区8位号码;再比如需求写“上传图片”,AI自动生成“支持jpg/png格式”,而实际系统只允许jpg。这些细节不人工核对,执行时就是一堆失败用例。
第二类坑叫“覆盖率高但深度不足”。AI能覆盖正常流程、异常流程、权限校验这些常见维度,但等价类划分、边界值选取、业务规则组合这些靠“业务理解”才能做好的事,它做得并不好。比如金额字段只测了正整数,漏了0、负数、小数、超大数、科学计数法;列表分页只测了第一页,漏了最后一页和空数据场景。表面看AI生成了50条用例,真正有价值的可能只有20条。
第三类坑最隐蔽,叫“幻觉”。AI会把不存在的功能写进用例,比如系统根本没有“记住密码”选项,AI却生成了一条“勾选记住密码后重新打开App验证登录状态”的用例;再比如AI把接口返回字段名写错,导致断言根本无法对上。这类用例如果直接流到执行环节,纯属浪费人力,甚至误导开发修一个不存在的bug。
1.2 审核不是“重写”,而是“过滤+补全+校准”
听到这里有人会问:既然AI生成这么多问题,为什么还要用?我的看法是:AI的价值在于“批量出稿”,人工的价值在于“判断和修正”,两者根本不是替代关系。
人工审核的定位应该是三道工序。第一道叫过滤,把幻觉用例、重复用例、无效用例直接删掉或标记废弃,这一步能砍掉大约30%到40%的垃圾条目。第二道叫补全,AI漏掉的边界条件、业务规则冲突、异常场景,由审核人手动补充进去。第三道叫校准,把模糊的步骤改清晰,把不明确的预期结果改成可验证的断言,把缺失的前置条件和测试数据补上。
换句话说,审核人是“主编”,AI是“实习生”。实习生交来的稿子,主编当然要改,但不是全部推翻重写,而是圈出问题、改掉硬伤、补充视角。这样才能既享受AI的效率,又不牺牲用例质量。
1.3 哪些测试用例可以放心交给AI,哪些必须谨慎
不是所有测试用例都适合AI生成,这一点审核前就要有判断。拿我自己的经验来说,低风险、高重复、强规范的用例,可以大胆让AI生成然后快速审核。典型的是接口字段校验用例、登录页面的基础输入校验、表单必填项校验、CRUD的常规操作路径。这类用例有固定套路,AI生成的准确率很高,人工只需要扫一眼关键断言。
高风险、强业务、多系统交互的用例,就必须谨慎。典型的是涉及订单金额计算的用例、优惠券叠加规则、支付回调状态流转、多角色权限交叉场景。这类用例依赖业务知识,AI很容易“想当然”。比如AI可能默认所有优惠券都能叠加,但业务规则是“满减券和折扣券互斥”。这种场景下,AI生成的用例只能当参考大纲,审核人必须用真实业务规则逐条校正。
另外还要警惕一点:如果需求文档本身写得就很模糊,AI生成的用例质量会更差。那种情况下,审核的重心反而要先放在“需求澄清”上,而不是急着改用例。需求都飘着,用例改得再精细也是空中楼阁。
2. 人工审核的高效流程:先结构化,再逐条过
人工审核最怕的是拿到AI生成的用例就从头到尾一条条看,看完整个人都麻了。没有结构化的审核流程,很容易漏掉关键问题,而且效率低。
2.1 审核前准备:明确准入标准和测试需求上下文
开始审核之前,有两件事必须先做。第一件事是准备需求基线,把需求文档、原型图、接口文档、验收标准全部放在手边。AI生成用例时往往只看了一段模糊的需求描述,它看到的上下文远不如审核人完整。审核人手里有完整的需求文档,才能判断AI生成的用例是否偏航。
第二件事是确定“可接受标准”。也就是什么样的用例算合格,这可以做成一份内部checklist。比如:是否覆盖正常流程?是否覆盖主流程分支?是否包含至少一条异常输入用例?预期结果是否明确可验证?是否包含前置条件和测试数据要求?如果AI生成的用例能通过这份checklist,基本可以进入执行;通不过的,才需要逐条修改。
这份checklist最好根据实际项目不断迭代,比如支付类项目要加“金额精度是否一致”,登录类项目要加“是否包含锁定策略验证”,接口类项目要加“断言是否包含状态码和关键业务字段”。有了checklist,审核就不再是凭感觉,而是有依据的流程。
2.2 核心审核五步法
我习惯把审核拆成五步,按顺序走下来基本不会漏大问题。
第一步,做整体通读。先花5分钟把AI生成的用例从头到尾扫一遍,不要急着改。扫的过程中重点感受三点:用例是否覆盖了需求的各个功能点?是否明显存在大量重复?是否出现了与系统现状完全不符的内容?这一步能筛掉最明显的幻觉和重复,相当于拿到医生写的报告先看个大概,而不是直接盯着某个指标。
第二步,对照需求逐条核对功能点。拿需求文档里的功能列表,逐项和用例比对。比如需求里有“修改密码”“忘记密码”“退出登录”三个功能点,AI只生成了“修改密码”和“退出登录”,漏了“忘记密码”,就标记缺失;需求里说“支持第三方账号登录”,AI默认只写了手机号登录,也标记缺失。这一步主要解决覆盖率问题。
第三步,用设计方法补全边界。针对AI生成的用例,主动用等价类划分、边界值分析、错误推测方法去检查。比如接口有个参数“pageSize”,AI生成的用例只测了pageSize=10和pageSize=20,就应该补上0、-1、字符串、超大值、空值这些边界。这是AI最薄弱的地方,也是人工审核最能体现价值的地方。
第四步,逐条检查步骤和断言的“可执行性”。所谓可执行,是指一个不了解系统的新人照着用例也能操作。AI经常写出“输入有效用户名”“点击相应按钮”这种话,这种描述等于没说。审核时要改清楚:用户名具体是什么,是phone字段还是email字段;按钮名称是什么,是“登录”还是“立即登录”;断言是“系统提示成功”还是“跳转到首页且右上角显示用户名”。
第五步,标注优先级和依赖关系。AI有时会把优先级标混,把核心流程标成P2,把边缘场景标成P1。审核时要根据业务风险重排优先级,顺便标注用例前置依赖。比如“下单用例”依赖“登录用例”的先执行,“使用优惠券用例”依赖“创建优惠券”的前置数据。这些标注在自动化执行时尤其重要。
2.3 审核结果的记录与反馈闭环
审核完不能把结果憋在肚子里,尤其是AI生成的用例,一定要把修改记录反馈给AI,形成闭环。怎么反馈?最简单的做法是:准备一份“常见审核修改记录”,每次审核后把AI的错误类型、修改方式、正确示例整理出来,作为后续生成时的few-shot样本。比如上次AI总是把“提现金额必须为100的倍数”写成“提现金额任意”,就把这个错误和修正后的正确描述写进提示词,下次生成就会好很多。
这里有个小技巧:与其让AI完全自由发挥,不如在生成阶段就给它约束。比如明确告诉AI“只生成与需求文档相关的用例,不得虚构功能”“所有预期结果必须描述为可验证的表现”“每条用例必须包含前置条件和测试数据要求”。生成端多花10秒,审核端就能省10分钟。
3. 不同维度测试用例的审核重点
AI生成的测试用例通常不区分功能、接口、安全这些维度,一股脑全给你。审核时如果眉毛胡子一把抓,效率很低。建议按维度分开审,每个维度盯不同的关键点。
3.1 功能测试用例审核,最容易忽略的是业务规则边界
功能测试用例是AI最擅长生成也最容易出问题的领域。AI能列出“点击按钮→输入内容→点击提交→验证结果”这种标准路径,但业务规则边界是它的死穴。
举例来说,一个“注册”功能,AI会生成:输入正确信息注册成功;输入已存在用户名注册失败;两次密码不一致注册失败;必填项为空注册失败。看起来已经不错了,但业务规则里如果写了“用户名不能包含特殊字符”“密码必须包含大写字母和数字”“手机号不能以0开头”,AI大概率会漏掉,或者只写一部分。
审核功能用例时,我建议重点看三块:一是业务规则是否有遗漏,这个只能靠审核人对照需求文档逐条查;二是状态流转是否完整,比如订单从“待支付”到“已支付”到“已发货”,AI可能只测了正常流转,漏了“支付成功后回调失败”这种分支;三是并发和重复操作,比如用户快速点击两次“提交订单”,AI基本不会主动生成这种用例,需要人工补上。
另外一个容易忽略的点是“前置数据和系统状态”。功能用例的执行往往依赖环境的初始化数据,AI生成的用例经常不写这一步。比如“验证已支付订单可以申请退款”,前提是环境里有一条已支付的订单,这条数据怎么来?是通过预置SQL还是通过界面操作创建?审核时必须把数据准备步骤补上,否则用例落到执行阶段根本没法跑。
3.2 接口测试用例审核:参数、边界和鉴权一个都不能少
接口测试用例是AI生成质量相对较高的领域,因为接口测试有明确的协议规范、参数列表和返回结构,AI学习起来更容易。但正因为接口测试偏技术,审核时更需要关注细节。
接口用例审核,我锁定的第一个重点是参数组合。AI通常能对单个参数做边界值测试,但对参数之间的组合关系不够敏感。比如一个查询接口,参数有“开始时间”和“结束时间”,AI只会分别测这两个字段的边界,但漏了“开始时间晚于结束时间”这个组合场景。再比如“城市ID”和“业务类型ID”存在依赖关系时,AI不会主动生成“城市ID属于北京但业务类型ID只允许上海使用”的冲突用例。这类组合逻辑,必须人工补。
第二个重点是鉴权和权限。AI生成的接口用例往往默认用户已登录,不关心token怎么来、过期了怎么办、无权限角色能否访问。审核时要补上:未登录访问接口返回什么;token过期后刷新token的机制是否验证;普通用户请求管理员接口是否被拦截;越权访问他人数据是否被禁止。说白了,接口测试不能只测“正常请求”,鉴权体系是安全底线。
第三个重点是断言设计。AI生成的接口用例,预期结果经常写得像散文——“返回成功”“数据正确”“提示异常”。这种断言没法落地。审核时要把断言改写成具体的检查点:HTTP状态码是否为200;响应中的code字段是否为0;data.total是否大于0;错误信息是否包含指定的errorMsg。断言的颗粒度决定了这条用例能不能直接转成自动化脚本。
3.3 安全类测试用例(SQL注入、登录用例)审核的严谨性
安全类用例是最不能完全信任AI的领域。AI可能会生成类似“输入含有SQL注入字符的字符串,验证系统是否报错”这样的用例,但这远远不够。因为安全测试讲究的是“在正确的位置用正确的方法”,不是随便塞一个单引号就叫SQL注入测试。
先说SQL注入登录测试用例。审核时要关注的不是“有没有测试SQL注入”,而是“注入点是否合理”“数据是否脱敏”“是否覆盖常见注入类型”。比如在一个登录接口上,不仅要测用户名参数和密码参数,还要注意把注入载荷放在URL编码后的位置和JSON结构体中是否表现一致。同时,AI生成的载荷可能包含真实的系统目录路径、真实的表名信息,这类敏感数据在用例文档里必须脱敏处理,不能直接明文贴到用例库里。
另一个关键是登录测试用例的完整性。AI生成的登录用例,常见问题包括:只测正常登录和密码错误,漏了账号锁定策略;只测输入校验,漏了验证码时效;只测单点登录成功,漏了会话并发和退出后重放;只测手机验证码正确场景,漏了验证码过期、验证码错误超过次数限制、同一验证码多次使用等。
更要警惕的是,安全用例涉及实际攻击载荷,如果团队的安全水位不够高,建议不要直接把AI生成的载荷脚本贴进用例库,而是把它作为“设计参考”。审核人需要判断:这条用例能不能在当前测试环境安全执行?有没有可能污染数据库?执行后如何恢复数据?这些风险评估比用例本身更重要。
4. AI测试用例中的“幻觉”排查与工具实操
前面反复提到“幻觉”,这是AI生成测试用例最让测试人员头疼的问题。这一章展开说清楚幻觉的具体表现,以及怎么在审核中用工具和提示词技巧把幻觉压制到最低。
4.1 什么是AI幻觉,在测试用例里的具体表现
AI幻觉可以简单理解成:AI在生成内容时,为了“回答得像那么回事”,编造了它认为合理但实际不存在的信息。在测试用例场景里,幻觉有三种典型表现。第一种是虚构功能和字段,比如系统压根没有“记住密码”选项,AI在用例里写了;接口文档里没有callbackUrl字段,AI在断言里用了这个字段。第二种是编造业务规则,比如需求里没提“同一手机号只能注册一个账号”,AI却生成了“重复手机号注册时提示已被占用”,你以为测的是系统行为,实际上测的是AI的想象。第三种是臆造数据格式,比如AI默认日期格式是“YYYY-MM-DD”,但系统实际要求“YYYY/MM/DD”,这类用例执行时必然失败,但又没有定位价值。
排查幻觉最直接的方法是把AI生成的用例和需求文档、接口文档放在一起交叉比对。需求文档里没有提到的功能点,接口文档里没有定义的字段,用例里出现了,就要高度怀疑是幻觉。核对时不要只看用例标题,还要看步骤和断言里的每一个细节。
4.2 如何用提示词工程减少AI幻觉
与其在审核阶段费力排查幻觉,不如在生成阶段就减少幻觉。AI生成测试用例的幻觉,很大程度上是因为提示词给的信息太少。给AI一个模糊的需求标题,它就只能靠训练数据里的“常识”来脑补细节,脑补越多幻觉越多。
所以我建议生成用例的提示词至少包含这几层信息:系统模块和功能点列表、用户角色说明、核心业务规则、已知的字段约束、明确要求“不得虚构”。拿登录功能举例,提示词可以写成:
你是资深测试工程师。请为“手机号+验证码登录”功能设计测试用例。 约束条件: 1. 手机号仅支持中国大陆11位号码,以1开头。 2. 验证码为6位数字,有效期5分钟,单日最多发送10次。 3. 用户连续输错5次验证码,账号锁定30分钟。 4. 只测试上述需求中描述的功能,不得虚构其他功能。 5. 每条用例必须包含:前置条件、操作步骤、预期结果。加了这些约束后,AI生成用例的幻觉量会明显下降。不是说完全不会出现,但至少它“脑补”的空间被压小了。对审核人来说,好审核的前提是好生成,这个思路很关键。
另外,迭代反馈也很有效。第一次生成后,把审核中发现的幻觉示例和正确写法整理成“修订说明”放进提示词,让AI学习修正。我试过连续三轮反馈之后,AI生成的登录用例基本不需要大改,幻觉率从最初的40%降到5%左右。这说明AI生成测试用例这件事,本身的“调教成本”并不高,关键是要形成反馈闭环。
4.3 审核时如何用好AI Agent、Cursor这类工具提升效率
审核AI生成的测试用例,不一定非要靠纯人力。市面上常见的AI Agent和AI编程工具,如果用法对路,也能帮上忙。
我常用的一个做法是:把AI生成的用例导入到支持AI辅助审阅的工具里,让AI先做一轮“自动预审”。比如让Cursor或者支持批量提示词的AI Agent读取用例文档,按照预设的规则去标记可疑项。给它的规则可以是“找出步骤中出现的、需求文档中不存在的功能描述”“找出预期结果中没有具体行为描述的用例”“找出重复覆盖的用例”。这样AI先把明显问题标出来,审核人再对着标记逐条确认,效率能提升不少。
这里要提醒一句:AI预审的结果只能当线索,不能当结论。因为预审AI也是AI,它可能在标记问题的同时又制造新的幻觉。比如它看到用例里写了“验证用户能收到短信”,就标记“需求文档没有提到短信”,但实际上短信是产品另一个模块的环节。所以,AI预审的定位永远是“缩小审核范围”,不是“替代审核”。
用AI Agent做审核还有一个很实用的场景:生成“需求追踪矩阵”。把AI生成的用例按功能点打标后,自动汇总成一张“功能点vs用例覆盖”的表格,哪个功能点用例稀疏一目了然。这样审核人就能快速定位覆盖盲区,而不是在几十条用例里一条条数。
5. 常见问题与排查技巧实录
AI生成测试用例加上人工审核,这套模式在实践中会遇到一些重复出现的问题。我把常见问题和对应的排查思路整理成一份速查表,方便团队直接对照。
5.1 常见问题速查表
| 现象 | 可能原因 | 排查与处理建议 |
|---|---|---|
| AI生成的用例明显偏离需求 | 需求描述不完整,提示词上下文太少 | 在提示词中补充功能清单和业务规则;审核时对照需求文档逐项核对 |
| 大量用例步骤重复 | 需求里多个功能点本身相似,AI未做合并 | 审核时按功能点归类,先将重复用例合并,再检查是否有必要拆成不同数据组合 |
| 预期结果写得太笼统 | 提示词未约束断言格式 | 在提示词中要求“预期结果必须描述可验证表现”;审核时逐条改写成具体检查点 |
| 用例中出现了需求里不存在的功能 | AI幻觉,脑补了系统行为 | 先核对需求文档,确认不存在则直接删除;将幻觉案例加入反馈,约束后续生成 |
| 接口用例缺少鉴权验证 | AI默认接口都“已登录” | 审核时单独过一遍鉴权 checklist:未登录、无权限、token过期、越权访问 |
| 登录用例覆盖不足 | AI只做常规输入校验和成功路径 | 用错误推测法补充:验证码过期、验证码错误次数限制、账号锁定、并发会话 |
| 安全测试用例携带敏感信息 | AI使用真实路径或明文载荷生成用例 | 对用例中的敏感信息统一脱敏;安全载荷只做设计参考,不在用例库明文保存 |
| 审核太耗时 | 缺少checklist,逐条从头读 | 先按设计方法快速扫描边界,再按优先级抽查;对耗时过长的用例标记,优化提示词 |
这张表不是一次就能建全的,每跑完一个项目的“AI生成+人工审核”,都可以往表里增加一条。后面团队再遇到类似问题,直接在表里查,不用重新踩坑。
5.2 审核成本控制:既要质量也要效率
最后想聊一下审核成本。很多人不敢用AI生成测试用例,就是担心审核比从零写还慢。这个担心有一定道理,如果审核流程设计得不好,确实可能得不偿失。所以控制审核成本,本质上是两件事:让AI生成更可用的用例,以及让审核操作更有节奏。
我的经验是分两层。第一层,按用例风险等级分配审核深度。P0级别的核心流程用例,一条条过,步骤、断言、数据准备全查;P2级别的边缘场景用例,抽查20%,重点看有没有幻觉和明显错误;其余的批量扫描,只统计覆盖率和缺失项。这样一来,审核时间能压到从零手写用例的三分之一左右。
第二层,对AI生成的“可复用性”做评价,形成团队的“AI用例质量分”。每次审核完,给这一轮AI生成的用例打个分数,比如“可直接执行占比50%”“需修改占比35%”“废弃占比15%”。连续打几轮分之后,就能清楚知道当前提示词方案和业务场景的匹配度。匹配度低,就回头优化提示词;匹配度高,就可以逐步加大AI生成的用例比例,把人工精力集中在真正的业务难点上。
从我自己的实践看,AI生成测试用例这套模式跑通之后,团队在常规用例上的产出速度至少提升了一倍,而核心用例的质量并没有下降,甚至因为人工审核环节更聚焦,反而把以前容易遗漏的业务边界补得更全了。
最后再分享一个我踩过几次坑之后养成的习惯:审核AI生成的测试用例时,永远保留一份“原始生成版本”,不要直接在原文档上覆盖修改。这样既能随时对比AI和人工的差异,也方便沉淀反馈给它做优化。只要把“AI生成+人工审核”当成一条需要持续调优的流水线,而不是一次性动作,这套流程就会越跑越顺。