用 AI 做测试设计 ·(一)
做测试这些年,我最慌的时刻从来不是"写不完用例",而是上线后冒出一个我压根没想到的场景——那种"这个点我当时怎么漏了"的后背发凉。
漏掉测试点,几乎从来不是因为不仔细,而是一个人对着需求,思维很难一次铺开。正常流程顺下来谁都会,偏偏是边界、异常、逆向那些"犄角旮旯"最容易从指缝里滑走。
我现在拿到一段需求,第一步不急着写用例,而是先把需求丢给 AI,让它帮我做一次"测试点脑暴",30 秒铺开一张大网,我再在这张网上增、删、收口。
但在讲怎么操作之前,我想先把一件更重要的事讲透:AI 为什么能帮你把测试点铺全,又为什么一定会漏掉一些——搞懂这个,你才知道怎么用它才不翻车。
先说一个反直觉的事实:AI 并不是在"推理"你的需求,它更像是在"回忆和重组"成千上万工程师见过的场景。
大模型在训练时读过海量的需求文档、测试用例、缺陷库、测试经验帖。当你丢给它一句"账号密码登录",它做的事本质是:
"登录"这个东西,历史上无数工程师测过,他们踩过空值、超长、爆破、锁定、互踢、弱网……我把这些高频出现的维度,按概率从高到低给你列出来。
所以它在通用、公共的维度上,几乎一定比单个普通人想得全——因为它背后是成千上万个测试大脑的经验叠加,而且它没有思维定式、不会疲倦、不会"我觉得这种情况不可能发生"。
同样的原理,决定了它的死穴:它不懂"你的"系统。
它列的所有东西,都是"通用登录"的经验。但你项目里真正最容易出 bug 的,往往是那些只存在于你们业务里、需求里没写透、外人根本不可能知道的规则,比如:
这些东西,全网搜不到、训练数据里没有,AI 再强也变不出来。
我建议你这样定位 AI 在这一步的角色:
把它当成一个"经验极丰富、但今天第一天来上班、还完全不懂咱们系统"的资深同事。
这个比喻能解释一切:
记住这句话,下面所有"怎么做到更好"的技巧,本质都是同一件事:想办法让这个新人快速了解你们系统。
就拿最常见的需求来演示:
用户输入账号和密码,点击登录,校验通过则进入首页。
我把它原样丢给主流 AI(ChatGPT / Claude / DeepSeek 都可以,这个发散任务对模型要求不高)。
你是一名有10年经验的资深测试工程师。
下面是一段功能需求,请帮我做"测试点脑暴",而不是直接写详细用例。
需求:
"""
用户输入账号和密码,点击登录,校验通过则进入首页。
"""
要求:
1. 按维度分类列出测试点(正常流程、输入校验、边界值、异常场景、
安全性、兼容性、性能、交互与状态等);
2. 重点补充人容易漏掉的异常、逆向、边界场景;
3. 每个测试点一句话即可,不展开步骤;
4. 最后单列一节:这段需求里"描述不清晰、需要找产品确认"的疑点。
正常流程:正确账号密码登录成功跳首页;已登录再进登录页的处理。
输入校验 / 边界:账号或密码为空;只填一项;前后带空格;大小写策略;超长、特殊字符、Emoji、中文;粘贴带入的不可见字符。
异常场景:账号不存在;密码连续错误 N 次的锁定 / 验证码;锁定期间与到期解锁;断网 / 弱网 / 超时;服务端报错提示;多端同时登录互踢;快速连点导致重复提交。
安全:密码是否明文、有无"小眼睛";防爆破限制;刷新能否回看密码;是否 HTTPS;SQL 注入、万能密码。
兼容 / 性能 / 交互:机型系统浏览器分辨率;键盘遮挡、回车提交;响应慢时有无 loading 和防重复;会话有效期与失效。
30 秒,一张比大多数人第一版全得多的网就铺开了。
90% 的人停在"丢一句话、拿一屏结果",然后抱怨"AI 也就那样"。真正拉开差距的是下面这几个动作——它们都来自前面那个原理:你给的上下文和约束,决定它的上限。
这是收益最大、也最少人做的一步。除了那句需求,再附上你能拿到的:
同一个登录需求,加了"账号是工号、存在跨租户同名、有新老两套密码加密"这些背景后,它列出来的点立刻从"通用清单"变成"你项目的清单"。信息质量决定输出质量,没有捷径。
一个视角必然有盲区。可以在同一轮里要求它切换身份:
请分别从以下视角补充测试点:
1. 恶意攻击者(想盗号、爆破、绕过校验);
2. 完全不懂电脑的老年用户(误操作、异常输入);
3. 产品经理(关注规则边界和异常提示文案);
4. 运维 / 风控(关注高频、异常 IP、设备指纹)。
正常流你自己能想到,但"攻击者视角"和"小白误操作视角"是普通人最容易漏、却最容易出线上事故的两类。 这一步常常能捞出你第一版完全没有的点。
别指望一次问完。第一轮结果出来后,连续追问:
你会发现每追问一轮,它都能再挤出几条——人脑是越想越累,它是你不喊停就一直能补。 一般追问 2~3 轮,边际收益就开始递减,那时收口刚好。
纯文字清单不便于评审和归档。在提示词最后加一句:
请用 Markdown 表格输出,列:模块 | 测试点 | 优先级(高/中/低) | 类型(正常/异常/边界/安全);
或者用缩进大纲输出,方便我转成思维导图。
带优先级和类型的表格可以直接贴到用例管理工具;缩进大纲复制到 XMind / 幕语 / ProcessOn 一键转思维导图,评审时投屏讲,专业度和效率完全不一样。
让它自己挑自己的毛病,比你从头肉眼过一遍快得多,也常常能抓出"为了凑数而列的废点"。
不用每次手动拼,下面这段把"喂背景、换视角、结构化输出、自检"全整合了(多轮追问留到结果出来后单独发)。你只需替换方括号里的内容:
你是一名有10年经验的资深测试工程师,请帮我对下面的需求做"测试点脑暴",
不要直接写详细用例。
【业务背景】
- 产品/模块:[这是什么产品、核心功能]
- 目标用户:[谁会用,有哪些角色]
- 关键规则/历史包袱:[如账号体系、新老逻辑、风控、上游依赖等]
- 已知历史问题:[这个模块以前在哪出过bug,没有可写"暂无"]
【需求】
"""
[把需求原文贴这里]
"""
请按以下步骤完成:
1. 先按维度分类列出测试点:正常流程、输入校验、边界值、异常场景、
安全、兼容、性能、交互与状态;每个点一句话。
2. 再分别从【恶意攻击者】【小白/老年用户误操作】【产品经理】
【运维/风控】四个视角,补充容易被漏掉的测试点。
3. 单列一节"需求疑点":描述不清、必须找产品确认的问题。
4. 用 Markdown 表格输出,列为:模块 | 测试点 | 优先级(高/中/低)
| 类型(正常/异常/边界/安全)。
5. 最后以审核员身份自检:指出上表中可能重复、不现实、或你们业务里仍可能遗漏的点。
跑完这一轮,再单独发一句做多轮深挖(对应做法 3):
针对【异常场景】,再补充更极端、更罕见的情况;
并考虑:上游服务宕机、数据库主从延迟、缓存失效时分别会怎样?
对比一下你就看出差别:基础版只让 AI"凭一句通用需求列点",得到的是网上随处可见的通用清单;进阶版通过【业务背景】把它变成"懂你们系统的新人",再强制换视角、结构化、自检——同样一个模型,输出的针对性和完整度完全不在一个档次。
别忘了提示词最后那条要求。AI 通常会给出这样一节:
需要找产品确认的疑点:
账号是用户名 / 手机号 / 邮箱?密码复杂度规则?输错几次锁定、锁多久?是否单点登录互踢?会话保持多久、要不要"记住我"?账号被禁用 / 注销后提示什么?
这一节的性价比极高。 在写用例前就把这些问题抛给产品,能省掉后面大量"我以为是这样、结果不是"的返工。AI 在这里像一个不知疲倦的反问机器,帮你把一句话需求里的窟窿提前照出来。
1. 它会列"看起来对、但你们项目根本不涉及"的点(比如凭空给你加"微信登录""人脸登录")。这是通用经验在补,不是读了你的系统——逐条问"我们有这回事吗",没有就划掉。
2. 满满一屏会给你虚假的安全感。 它能保证通用维度全,保证不了业务专属规则全,而后者恰恰最容易出事。AI 给的是底盘,不是全部。
3. 这是"测试点",不是"用例"。 要不要测、用什么数据、优先级、和已有用例去重,都还要你工程化收口。它替代的是你"对着空白文档冷启动"的那十分钟,不是你的专业判断。
拿到需求 → 喂足背景料,让 AI 脑暴测试点 + 需求疑点 → 换视角、追问 2~3 轮、自检 → 输出成表格 / 脑图 → 删掉不相关、补上业务专属、找产品确认 → 再写正式用例。
整个过程也就几分钟,但能把"漏整块维度"的概率压下去一大截。关键不是 AI 有多强,是你愿不愿意多花两分钟,把它从"通用新人"变成"了解你们系统的新人"。
这是「AI for Testing 提效实战 · 测试设计(一)」。
如果这个动作对你有用,欢迎转给那个总被说"又漏测了"的同事。