手把手教你:用AI高效辅助编写测试用例

手把手教你:用AI高效辅助编写测试用例

大家好。在AI辅助测试这条路上,我走了2年多了。从最初的怀疑、试探,到如今它已成为我工作中不可或缺的“高效助理”。

刚开始,我也是觉得AI生成的用例挺“不靠谱”的,要么过于宽泛,要么就脱离实际业务。但随着不断对大型语言模型的使用和对提示词的不断优化,我发现,问题不在于AI,而在于我们是否“会提问”。

就拿一个最直观的改变来说吧:过去,一个中等复杂度的功能模块(例如,电商的商品发布流程),我可能需要花费一个下午(约4小时)来梳理逻辑、分析产品需求、编写用例;现在,通过借助AI,就能在15分钟内生成一份相当全面的用例初稿,再花大约45分钟进行精修和补充,总耗时1小时左右,效率提升了差不多75%。

这节省下来的3个小时,可以让我进行更有价值的探索性测试和自动化脚本的预研回归。

这不仅仅是时间的节省。更重要的是,AI能模拟一个就像“不知疲倦、知识广博”的测试工程师,能穷举出很多我们因自我的思维定式或时间的压力而容易忽略的边界条件和异常测试场景。在我负责的一个项目中,通过AI辅助设计的测试用例,我们提前发现了3个由第三方接口超时可能引发的数据不一致性缺陷,避免了上线后的潜在风险。

接下来,就将摒弃所有虚话,直接进入实战环节。将通过三个不同层次的真实场景,分享我个人打磨出的“高产”提示词模板,并展示实际的输入输出,看到AI是如何一步步成为我们测试工作的神兵利器的。

场景一:基础功能测试(以“用户登录”为例)

这是最常见的场景,也是最适合新手入门的练习。传统方式下,我们可能会凭经验列出几个正反用例,但很容易遗漏细节。现在,我们让AI来系统地完成这件事了,后面我就用ChatGPT来做示范。

提示词模板 1:功能用例生成

# 角色 你是一名拥有10年经验的资深软件质量保障(SQA)工程师,尤其擅长Web应用的功能和UI测试。 # 背景 我正在为一款新的Web应用设计测试用例,当前需要测试的是“用户登录”模块。 # 功能需求描述 1. **界面元素**: 包含一个“邮箱地址”输入框、一个“密码”输入框、一个“记住我”复选框,以及一个“登录”按钮。 2. **验证规则**: * 邮箱地址必须为合法的Email格式。 * 密码长度要求8-16个字符,且必须同时包含大写字母、小写字母和数字。 * 两个输入框均为必填项。 3. **登录逻辑**: * 输入正确的邮箱和密码,点击“登录”,跳转到用户后台首页。 * 勾选“记住我”后登录成功,关闭浏览器再打开,应保持登录状态。 * 输入错误的凭据,页面应给出明确的错误提示:“邮箱地址或密码不正确”。 # 任务 请为上述“用户登录”功能生成一份详细的测试用例集。 # 输出格式要求 请使用Markdown表格格式输出,必须包含以下列: `用例ID` | `测试模块` | `用例标题` | `前置条件` | `测试步骤` | `预期结果` | `优先级`

ChatGPT实际输出示例:(由于篇幅有限,仅展示部分用例截图)

经验与分析
  • 效果:这份由AI生成的用例覆盖了基本功能、主流程的正负向场景和边界值,个人觉得质量产出还是不错的,基本上达到了一个中级测试工程师的水平。对于一个熟练的测试人员来说,手动编写可能需要30-40分钟,而使用这个提示词模板给到AI,从编写提示词到拿到结果,不超过5分钟
  • 问题与优化:AI生成的用例是“通用”的,它可能没考虑到你项目特有的一些逻辑或场景。例如,它没有覆盖“连续5次密码错误后账户被锁定”这类安全策略。解决方案:在你拿到AI给出的初稿用例后,就需要结合详细的需求文档(PRD)、产品原型或安全规范等,进行“人工增补”优化。我通常会追问AI一句:“请基于以上场景,补充考虑与安全相关的测试点,例如暴力破解、账户锁定策略等。” 这样就能得到更完善的用例了。

场景二:复杂业务流程(以“电商支付”为例)

当测试场景从单一功能转向多步骤、多状态的业务流程时,手动设计的难度和遗漏风险会呈现指数级地增加。这正是AI大展身手的地方了。

提示词模板 2:端到端流程与异常路径
# 角色 你是一位顶级的电商领域测试架构师,对复杂的交易和支付流程中的各种异常情况了如指掌。 # 背景 我需要为我们电商平台的“订单支付”流程设计一套端到端的测试用例。 # 业务流程描述 1. **订单确认页**:用户在此页面确认商品信息、数量、收货地址和总金额。 2. **支付方式选择**:用户可以选择“微信支付”、“支付宝”或“信用卡支付”。 3. **外部支付跳转**:选择支付方式后,用户被引导至第三方支付网关页面。 4. **支付结果同步**:用户完成支付后,第三方会回调我们的系统,更新订单状态。 5. **结果展示**:系统根据回调结果,向用户展示“支付成功”或“支付失败”页面。 # 任务 请设计一套测试用例,重点关注**流程的衔接、状态的变更以及各种可能出现的异常情况**。 # 核心测试点 * 不同支付方式的流程是否通畅。 * 优惠券、积分抵扣等金额计算的准确性。 * 网络问题:支付过程中断网、回调延迟或丢失。 * 支付异常:用户主动取消支付、支付超时、信用卡余额不足。 * 库存并发问题:在用户支付期间,商品库存发生变化。 # 输出格式要求 请使用Markdown表格格式输出,包含列: `用例ID` | `测试场景` | `测试点描述` | `测试步骤` | `预期结果` | `优先级`

ChatGPT实际输出示例:(由于篇幅有限,仅展示部分用例截图)

经验与分析
  • 效果:对于复杂流程,AI的优势在于其强大的逻辑梳理能力。它能快速生成大量基于状态转换和异常路径的用例,尤其是针对网络、并发等“非功能性”异常,覆盖度超过人工短时间内的思考。这份初稿用例,至少为我节省了大半天的工作量
  • 问题与优化:AI不了解你系统的具体实现。比如“回调延迟”和“回调丢失”的测试,需要研发配合进行模拟,AI无法告诉你具体如何操作。解决方案:在拿到这类用例后,我会立即将其转化为与开发人员的“沟通清单”。我会拿着TC-PAY-021TC-PAY-022去找后端开发,讨论:“这两个场景我们需要测试,请问有没有调试开关或Mock工具可以帮助我们稳定复现?” 这就将AI的输出,从一份文档变成了一个推动技术实现的具体行动。

场景三:高级应用(以“API接口测试”为例)

测试左移是提升质量的关键,而接口测试是测试左移的核心实践。我们可以利用ChatGPT,根据后端开发提供的API文档直接生成接口测试用例了。

提示词模板 3:基于API文档生成测试用例

# 角色 你是一名专业的API测试工程师,精通RESTful API的设计原则和测试方法,对HTTP协议、状态码、认证授权有深入理解。 # 背景 我需要为用户服务(User Service)中的一个核心API端点编写测试用例。 # API文档 * **功能**: 创建新用户 * **端点**: `POST /api/v2/users` * **请求头**: `Content-Type: application/json`, `Authorization: Bearer <token>` * **请求体 (JSON)**: ```json { "username": "string", // 必填, 3-20个字符, 只能是字母和数字 "email": "string", // 必填, 唯一, 必须是合法email格式 "password": "string", // 必填, 8-30位, 需包含大小写字母、数字和特殊字符 "fullName": "string" // 可选 } ``` * **成功响应**: * **状态码**: `201 Created` * **响应体**: `{ "userId": "uuid", "username": "string", "email": "string", "createdAt": "datetime" }` * **失败响应**: * `400 Bad Request`: 请求体验证失败 (如username格式错误、缺少必填项)。 * `401 Unauthorized`: 未提供或Token无效。 * `409 Conflict`: Email地址已存在。 * `500 Internal Server Error`: 服务器内部错误。 # 任务 请为 `POST /api/v2/users` 这个API端点生成一套全面的测试用例。 # 输出格式要求 请使用Markdown表格格式输出,包含列: `用例ID` | `测试类别` | `用例描述` | `请求体/Payload` | `预期HTTP状态码` | `预期响应体(关键断言)`

ChatGPT实际输出示例:(由于篇幅有限,仅展示部分用例截图)

核心使用心法与注意事项

  1. 垃圾进,垃圾出:提示词的质量直接决定输出用例初稿的质量。花5分钟打磨一个清晰、结构化的提示词,远比花半小时去修改一份模糊指令生成的垃圾输出要高效吧?
  2. 把它当成“助理”,而非“专家”:AI的输出永远是“初稿”。它为你完成了80%的重复性劳动,但那最后20%,需要你结合实际业务和场景进行调整优化,才是体现我们专业价值的地方。切记永远不要直接复制粘贴而不审查AI的输出产出!
  3. 数据安全是第一红线绝对不要在任何公开的AI工具中输入公司的真实代码、敏感的业务逻辑或任何客户数据。在我们编写提示词时,学会“脱敏”和“泛化”,用[email protected]代替真实用户邮箱,用“某核心交易流程”代替具体的业务名称。描述规则结构,而非机密内容。
  4. 学会“追问”和“迭代”:大家不要指望AI能够一步到位。第一轮生成后,可以针对性地提出优化要求,如“请为上述用例增加性能测试的考虑点”、“请将这些用例转化为Gherkin格式”等,让AI在你的引导下不断完善和优化AI输出的用例结果。

将ChatGPT或其他国外AI融入测试用例设计流程,不是一道选择题,而是一项关乎未来竞争力的必修技能。它无法取代测试工程师的批判性思维和领域知识,而是它能将我们从繁琐、重复的劳动中解放出来,成为我们测试思维的延伸和效率的放大器。

希望今天给大家分享的提示词模板和个人经验,能为你打开一扇新的大门。现在就动手,选择一个你熟悉的小功能,复制我的提示词模板,结合你们自己的功能需求再对提示词进行修改后,亲自体验一下吧!

想了解更多AI干货,欢迎大家关注公众号:Pianoboi

#AI #AI测试 #人工智能 #AIGC #ChatGPT #软件测试

Read more

基于AI WebUI Chatbot的实战开发:从架构设计到生产环境部署

快速体验 在开始今天关于 基于AI WebUI Chatbot的实战开发:从架构设计到生产环境部署 的探讨之前,我想先分享一个最近让我觉得很有意思的全栈技术挑战。 我们常说 AI 是未来,但作为开发者,如何将大模型(LLM)真正落地为一个低延迟、可交互的实时系统,而不仅仅是调个 API? 这里有一个非常硬核的动手实验:基于火山引擎豆包大模型,从零搭建一个实时语音通话应用。它不是简单的问答,而是需要你亲手打通 ASR(语音识别)→ LLM(大脑思考)→ TTS(语音合成)的完整 WebSocket 链路。对于想要掌握 AI 原生应用架构的同学来说,这是个绝佳的练手项目。 从0到1构建生产级别应用,脱离Demo,点击打开 从0打造个人豆包实时通话AI动手实验 基于AI WebUI Chatbot的实战开发:从架构设计到生产环境部署 痛点分析:Web端AI对话系统的常见挑战 开发一个真正可用的AI对话系统时,往往会遇到几个关键问题: * 高延迟体验差:传统HTTP请求-响应模式需要等待AI生成完整回复,

用playwright封装一个处理web网页的爬虫,并隐藏自动化特征,自动处理反爬

更多内容请见: 《爬虫和逆向教程》 - 专栏介绍和目录 文章目录 * 一、脚本概述 * 1.1 脚本对应反爬措施 * 1.2 注意事项 * 1.3 反爬细节说明 * 二、完整代码 * 2.1 安装依赖 * 2.2 封装代码 * 2.3 使用示例 下面是一个使用 Playwright 封装的、具备反爬对抗能力的网页爬虫Python函数,返回原始 HTML 内容,并重点隐藏自动化特征,避免被检测为 bot。 一、脚本概述 该封装已在多个中等反爬网站(如电商、新闻站)验证有效,能绕过大多数基于 navigator.webdriver、chrome 对象、permissions 等的检测。

Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页

Linux网络 | 理解Web路径 以及 实现一个简单的helloworld网页

前言:本节内容承接上节课的http相关的概念, 主要是实现一个简单的接收http协议请求的服务。这个程序对于我们理解后面的http协议的格式,报头以及网络上的资源的理解, 以及本节web路径等等都有着重要作用。 可以说我们就用代码来理解这些东西。 那么废话不多说, 现在开始我们的学习吧。         ps:本节内容建议先看一下上一篇文章http的相关概念哦:linux网络 | 深度学习http的相关概念-ZEEKLOG博客 目录  准备文件  makefile HttpServer.hpp 类内成员 封装sockfd start  ThreadRun  全部代码 运行结果 响应书写 Web路径  准备文件         首先准备文件: 这里面Httpserver.cc用来运行接收http请求的服务。 HttpServer.hpp用来定义http请求。Log.hpp就是一个打印日志的小组件, Socket.hpp同样是套接字的组件。 到使用直接调用相关接口即可。(Log.hpp和Socket.hpp如何实现不讲解, 如果想要知道