平时测试工作里,最耗时间的是什么?我干了不少年,答案很固定,不是写自动化脚本,也不是搭环境,而是设计测试用例。需求一多,边界条件一杂,脑子就转不动。后来我开始把这一块交给AI辅助测试用例生成,用大模型先给我产出一版初稿,我再做筛选和补全,整个节奏一下就变了。这篇教程就是把我这段时间用AI生成测试用例的完整套路整理出来,包括提示词怎么写、需求怎么丢给AI、结果怎么验收、哪些坑一定要躲,适合所有想用AI测试开发来提效的QA和测试工程师。
1. 为什么要用AI辅助生成测试用例:先算清这笔账
先说结论,AI在这个场景里不是取代你,而是把你的工作重心从“从零硬想”挪到“审核判断”。这个定位想不清楚,后面用起来就会很别扭。
1.1 测试用例设计为什么又累又容易漏
做过几年功能测试的人应该都有这种体验:一个模块拿到手,正常的业务流程还好写,麻烦的是那些非正常场景——密码输错怎么办、网络超时怎么办、金额为负数怎么办、重复提交怎么办。这些情况写少了怕漏测,写多了又怕冗余,最后往往靠经验硬凑。
人脑在短时间内的思考带宽是很有限的,几十条用例设计下来,注意力一定会滑坡。我自己就经常在第三轮用例评审时被开发反问“这个字段还有长度限制吧”,才发现漏了一条边界值。AI辅助生成测试用例刚好补的就是这个短板,它没有疲劳感,可以在一个提示词里同时覆盖正常路径、异常路径、边界条件、权限类场景,产出量大,且视角相对完整。
1.2 AI辅助的长处与不能碰的禁区
用下来,AI在这几件事上确实比人快得多:
- 穷举边界值。只要你在提示词里给定好规则的字段范围,它能把0、1、负数、超长、特殊字符这些值给你列全。
- 批量生成异常流。一个接口十几个参数,每个参数出错的情况它都能生成用例,人工写这些真的写到吐。
- 按模板规整输出。我让它按“用例编号、优先级、前置条件、测试数据、操作步骤、预期结果”六列输出,一次成型,基本不用改格式。
但它也有完全不能碰的地方。业务规则很强的领域知识,比如复杂的财务结算逻辑、医疗术语、行业合规要求,AI很容易一本正经地编错。还有它的“预期结果”很多时候是脱离真实系统的猜测,如果一个功能的历史行为没有明确文档,它给的预期结果就应该只当成参考,不能直接抄进用例里。
1.3 什么人适合马上上手
如果你是做业务功能测试,手头有需求文档或者接口文档,日常工作模式是“看需求-写用例-评审-执行”,那你非常适合。如果你的需求基本靠产品口头说、完全没有文字记录,AI辅助你会觉得它答非所问,因为它的输入质量取决于你的需求描述。还有一批适合的人是做回归测试的,存量用例几百上千条,想让AI帮忙查漏,这种用法比从零生成还更实用,后面我会专门讲到。
提示:AI辅助测试用例生成不是银弹,它更像一个记性好、速度快但偶尔会说谎的实习生。你得给它讲清楚背景,再严格验收它的产出。
2. 工具选型与提示词设计:把AI当成一个“懂测试的新人”
工具选型这件事,网上讨论很多,我实际用过之后发现核心看你的使用深度。并不是工具越贵越好,而是要看你能不能把需求描述清楚。
2.1 三条技术路线怎么选
我归纳下来,当前做AI测试开发有三条路子,各有优劣,适合不同的人:
| 路线 | 典型用法 | 优点 | 缺点 | 适用人群 |
|---|---|---|---|---|
| 通用大模型对话式生成 | 把需求粘贴进主流的大模型对话助手,用提示词约束输出 | 零门槛、灵活、免费或低成本 | 需要自己审核和整理格式 | 个人测试工程师、小团队 |
| 商业测试平台内置AI能力 | 在成熟测试管理平台里直接发起“AI生成用例” | 输出直接贴合平台的用例模板,还能自动回填 | 规则相对固定,不好深度定制 | 已经在使用成熟测试工具的团队 |
| AI Agent自动分析代码 | 让Agent读取代码仓库、接口定义,自动推理生成用例 | 能贴合实现细节,覆盖代码分支 | 配置成本高,误报率高,需要有一定技术底子 | 测试开发、后端回归场景 |
我的建议是第一次尝试从第一条路线开始,花半小时跑通一个模块,建立体感后再决定要不要上平台方案或Agent方案。别一上来就追求复杂,工具链越重,维护成本越高,反而容易放弃。
2.2 一份能直接抄的提示词模板
很多人让AI生成用例时只丢一句“帮我想一些登录功能的测试用例”,这种问法拿到的结果基本没法用。因为AI的生成质量高度依赖你的输入信息量,你必须把角色、任务、输入、规则、输出格式、约束条件全给到位。我目前用的提示词模板长这样:
你是一名有10年经验的资深测试工程师,擅长功能测试用例设计。 请根据以下需求,设计一套完整的测试用例。 【需求描述】 用户输入手机号和密码,点击登录按钮后,系统校验登录信息。 校验通过后跳转到首页,并显示用户昵称。 校验失败时,提示“账号或密码错误”。 同一账号连续失败5次,账号锁定30分钟,锁定期间无法登录。 【用例设计规则】 1. 用例编号规则为 TC_LOGIN_001,按顺序递增。 2. 每条用例必须包含:用例编号、用例标题、优先级、前置条件、测试数据、操作步骤、预期结果。 3. 优先级分为P1/P2/P3,P1为影响核心流程的用例,P2为重要功能,P3为一般场景。 4. 请按正常流程、异常流程、边界值、安全合规4个分组输出。 5. 不要凭空编造需求中未提到的功能或规则。 【输出格式】 使用Markdown表格输出,每组之间用标题分隔。这个模板最核心的是第5条“不要凭空编造需求中未提到的功能或规则”。不写这条,它经常会自己脑补一个“短信验证码登录”或者“记住密码”功能,虽然看着严谨,但没经过产品确认,回填到用例库里会有大麻烦。
2.3 控制输出质量的四个附加指令
基础模板能保证用例“能看”,但想让结果更贴近你团队的实际风格,还得加指令。我建议按需追加下面几条:
- 指定用例粒度。不追加的话,它可能把“点击登录按钮”拆成“输入手机号再点登录”“输入密码再点登录”“不输入直接点登录”三条,导致用例数量膨胀。我希望的是登录校验作为一个流程用例,就让它按“一个完整业务动作”为最小粒度生成。
- 指定优先级定义。不同公司对P1/P2/P3的定义不一样。我司的P1是主流程挂了必须马上修,P3是体验类问题可延后,我会把定义直接写进提示词里。
- 增加负面约束。比如“不需要兼容性用例”“不需要性能测试用例”,避免它发散到你暂时不关心的领域。
- 要求给出用例间的关联关系。在最后加一句“如果某条用例是另一条的前置依赖,请在‘前置条件’中注明”,这能让生成的用例在后续执行时直接串成有序的测试集。
实践下来,提示词越“啰嗦”,AI的产出越能用。这跟带新人一模一样,你把规则定得越清楚,他上手就越快。
3. 从需求到用例:一步步带你跑通全流程
工具和提示词都准备好了,下面我带你把一个真实模块完整跑一遍。我拿“登录功能”举例,因为这个场景大家都有体感,容易对照。
3.1 第一步:喂给AI的需求输入要做什么预处理
AI的输入质量直接决定输出质量,需求文档复制粘贴前,先做一个整理动作。我一般会把需求拆成四块:业务描述、规则清单、字段约束、异常约定。
拿登录功能来说,我会整理成这样的输入:
- 业务描述:用户输入手机号和密码进行登录,成功进入首页,失败提示错误信息。
- 规则清单:连续失败5次锁定30分钟;锁定期间登录无论密码是否正确都提示账号锁定;密码错误与账号不存在统一返回“账号或密码错误”。
- 字段约束:手机号为11位数字,开头为1;密码为8-20位,必须包含字母和数字。
- 异常约定:网络异常时提示“网络不给力,请稍后重试”,不消耗失败次数。
这段整理看着麻烦,但实际做一次只要5分钟。你别小看这5分钟,它能把AI生成结果的可用率从50%拉到80%以上。第一版需求文本往往包含产品经理的口语化表达、冗余信息甚至自相矛盾的内容,直接丢进去,AI就会在错误的基线上进行推理。
3.2 第二步:按模块分组提问,一次只干一件事
很多人喜欢把整个系统的需求一次性丢给AI,让它生成全部测试用例。试过一次你就知道,上下文一长,AI的注意力就会分散,后面输出的用例明显变得敷衍。我现在的做法是“一次一个功能点”,比如登录模块单独来一轮,首页展示单独来一轮,改密码单独来一轮。
登录模块我会这样分四组来问:
- 第一轮:正常流程组。让AI基于主路径给出用例,包括首次登录、记住密码、登录成功跳转。
- 第二轮:异常流程组。密码错误、账号不存在、手机号格式非法、密码格式非法、锁定状态登录。
- 第三轮:边界值组。密码长度8位和20位的临界点、手机号11位边界、失败4次后再次登录。
- 第四轮:安全合规组。密码错误提示是否泄露账号存在性、登录接口是否有验证码、会话超时处理。
每一轮都给同样的需求输入,只是把“用例设计规则”里的分组要求改一下。这样做的好处是我可以在每一轮之后快速浏览结果,发现某一组的逻辑理解有偏差,可以立刻在当前轮内修正,而不是等全部生成完再看,那会儿错误已经被扩散得到处都是。
3.3 第三步:生成结果的筛选、补全与格式化回填
AI生成完后,我绝不会直接全盘接收,而是做三轮处理。第一轮是去伪,把它脑补出来的产品或字段删掉,比如登录功能它可能编一个“手机号一键登录”,需求没提,直接删。第二轮是去重,AI生成的用例经常出现“标题不同但步骤相同”的情况,我会按操作步骤合并。第三轮是补全,前置条件不明确的补上,测试数据不具体的补上具体值。
处理完后的用例我做格式化回填,模板按团队长期使用的字段来。假设AI给出的原始结果是下面这种:
| 编号 | 标题 | 步骤 | 预期 |
|---|---|---|---|
| TC_LOGIN_003 | 密码错误提示 | 输入错误密码点击登录 | 提示账号或密码错误 |
我会把它加工成:
| 用例编号 | 用例标题 | 优先级 | 前置条件 | 测试数据 | 操作步骤 | 预期结果 |
|---|---|---|---|---|---|---|
| TC_LOGIN_003 | 输入错误密码登录失败并提示 | P1 | 系统已启动,用户已注册 | 手机号13800138000,密码Abc123456 | 1. 打开登录页 2. 输入正确手机号和错误密码 3. 点击登录 | 页面提示“账号或密码错误”,停留登录页 |
这一步是把AI的“草稿”改成正式用例的关键。千万不要嫌麻烦去省略,因为执行用例的人可能不是你,用例写得不够细,执行者就会反复问你确认,反而更耗时。
3.4 第四步:让用例在后续迭代里持续更新
用例不是一次性资产,只要有需求变更,它就得跟着改。AI辅助在这里同样有用,但用法要换一下。当产品说“登录失败连续5次锁定,改成3次锁定”,我不会让AI重新生成全部用例,而是把老的用例集粘贴给它,同时给它一句话:“原规则是失败5次锁定30分钟,现改为失败3次锁定15分钟,请找出所有涉及该规则的用例,并给出修改建议。”
这会得到一个修改列表,我再人工确认后直接在用例库里替换,比逐条去翻快得多。这个工作流的本质是把AI当成用例库的“变更分析员”,它负责精准定位,我负责最终拍板。
4. 实操中的翻车现场:这些问题我全都踩过
AI辅助测试用例生成看着简单,实际跑起来翻车点一个接一个。我把自己踩过的坑整理成表格,方便你对照排查。
4.1 高频问题速查表
| 问题现象 | 根本原因 | 解决对策 |
|---|---|---|
| 生成的用例数量爆炸,全是碎步骤 | 没有指定用例粒度 | 在提示词中写明“按完整业务动作生成,最小粒度为一次操作闭环” |
| 预期结果过于笼统,例如“页面正常显示” | 没有要求给具体判断点 | 强制要求预期结果必须包含具体文案、状态码或页面跳转目标 |
| 编造需求中不存在的功能 | 需求输入缺少“负面约束” | 增加“不要生成需求描述中未提到的功能” |
| 用例之间存在大量重复 | 场景隔离不足 | 要求按分组输出,并提示“同一条件场景合并” |
| 优先级全是P1 | 没有给出P1/P2/P3定义 | 在提示词中写明每个优先级的业务含义和例子 |
| 前置条件和测试数据写得很模糊 | 提示词模板缺字段 | 明确列出每条用例必须包含的字段名,并给字段示例 |
这张表我打印贴在工位上,后来团队其他测试同学用AI生成用例遇到问题,也直接照这张表排查,大部分情况都能解决。
4.2 三个印象最深的坑
第一个坑是我刚开始用AI时,让它生成“订单退款”用例,它自己编出了一个“退款金额不能超过订单实付金额”的规则。我心里知道有这个逻辑,但产品文档里没写,我当时偷懒没去确认,直接把用例传给了执行同事。结果执行时开发说“这规则还没上线”,用例直接标注失败。这一下就明白了,AI生成的内容永远只能当“候选”,不能当“事实”。
第二个坑是没有控制用例数量。我一个购物车模块,AI按字段逐个穷举,生成了两百多条。看着覆盖率很高,但执行了一遍发现大量用例测的是同一个逻辑,浪费了整整一天执行时间。后来我每轮都限制它的输出条数,比如“每个分组最多输出8条用例”,产出立刻干净很多。
第三个坑是AI生成的用例里用了大量“不存在的断言”。比如测试数据是“输入特殊字符”,预期结果是“系统不允许特殊字符”,但实际系统是“允许特殊字符但自动过滤”。AI不知道系统真实行为,只会按常识推定。所以凡是预期结果里涉及具体业务规则的地方,我都必须拿旧用例或者向开发确认后才能放行。
4.3 人工智能生成内容的四个必查点
吃了那么多亏,我现在养成了强制审核习惯,不管AI来得多快,我都会按四个点过一遍。
- 查需求对应性:每条用例是否能回溯到需求里的某一条描述。溯源不上的,先怀疑是脑补。
- 查数据准确性:手机号、邮箱、金额、长度上限这些测试数据,要逐条和文档核对。
- 查断言有效性:预期结果必须是可以直接观察和判断的,不要出现“正常”“成功”这类模糊词。
- 查关联一致性:如果用例之间有依赖关系,修改了前置用例,后置用例也要同步改,AI不会自动帮你维护这种链路。
这四个必查点做完,基本可以把AI生成的用例质量拉高到接近老测试工程师的初稿水平,剩下的只是风格的统一和细节的打磨。
5. 效果怎么评估:AI辅助到底帮你省了多少时间
用了一段时间后,不能只凭感觉说“快了”,得拿出数字来评估。我给团队定了一套轻量指标,不需要额外工具,看三个数据就行。
5.1 用三个指标算投入产出
第一个是单模块用例设计耗时。以前登录这种模块,我从看需求到写完用例大概需要半天,现在把需求整理成输入给AI、再审核修正格式,约半天时间一半都用不完,重点是这段“腾出来”的时间可以拿去做更复杂的业务探索。
第二个是初稿留存率。我统计过,AI生成的第一版用例,经过我筛选去重补全后,最终进入用例库的留存率大概在六成到七成。剩下三四成被删掉的,基本都是脑补功能、重复场景和错误断言。随着我把团队的需求写得越来越结构化,这个留存率还在往上走。
第三个是漏测率相关的间接反馈。以前因为用例覆盖不全,在测试后期被开发反问“这个场景你测了吗”的情况还挺多。现在AI在异常流和边界值上生成得很全,这种被反问的情况明显变少。唯一的代价是“用例库变大”,但配合好筛选动作,不至于失控。
5.2 什么样的测试任务最适合先落地
不是所有模块都适合直接让AI来。根据我的经验,适合的有三类:接口字段清晰的模块、规则描述明确的业务、高频回归的系统核心链路。这几种场景需求文档相对完整,AI有足够的上下文去推理。
不适合的也有三类:需求文档完全是空白的新项目、业务规则特别强但基本靠口口相传的模块、需要大量视觉和交互判断的UI类测试。这些场景强行用AI,你光是解释背景和清理错误结果耗时,可能比直接写用例还慢。测量一下第一次尝试的时间就知道我有没有说错,这种反差是很真实的。
5.3 更进一步:把AI嵌进用例维护的工作流
最后聊一个进阶思路,我最近正在尝试把AI从“用例生成器”升级成“用例维护助手”。具体做法是:把存量用例全部导出,按模块切成片段,做成一个小型知识库。每次需求变更时,不再靠人肉搜索有哪些用例受影响,而是直接问AI“涉及订单状态的规则变更会影响哪些用例,请列出”。这个思路本质上属于AI工程实践的一部分,让AI参与到测试资产的管理与维护闭环中,而不只是一次性产出。
另一个正在用的点是“用例转自动化脚本初稿”。我把生成好的用例粘贴给AI,让它按项目里的测试框架生成Python或JavaScript脚本骨架。虽然断言部分还得我自己校准,但元素定位、请求构造、数据准备这些重复劳动已经省掉了大半。注意,这个做法要求你对自动化框架已经有成熟的约定,AI才能顺着约定生成。
从我自己的体会出发,AI辅助测试用例生成这件事,最大的价值不是让你“少干活”,而是让你把同样的时间和脑子花在更值钱的地方。真正持续投入精力审核AI产出的同学,一两个月后基本都会形成一套自己的提示词和审核清单,那才是把工具用到极致的表现。我在这里分享的模板和表格,只是帮你省掉最初那段摸索弯路。后续你也可以试着把团队的历史用例整理后丢给AI做差异分析,让它帮你找出覆盖率盲区,这个方法我试过,往往能找到一些连老测试都没想到的边角场景。