它不能帮你做测试设计决策,但它能帮你:
省时间 少写重复代码 少做重复劳动
简单说:能交给AI写的,就交给AI;需要人判断的,人来。
一、自动生成测试用例:需求 → 用例
这是最多人关注的场景。
传统做法:读需求文档 → 手工写用例 → 整理到Excel
LLM做法:
请根据以下需求,生成完整的测试用例
需求描述:
用户登录功能
1. 支持手机号+验证码登录
2. 支持账号密码登录
3. 连续输错5次密码锁定账号
4. 验证码有效期5分钟
要求:
- 包含:用例编号、测试模块、前置条件、测试步骤、测试数据、预期结果、优先级
- 覆盖:正常场景、异常场景、边界值场景LLM 会直接输出一版完整的测试用例,涵盖:
正常登录(验证码登录、密码登录) 异常场景(手机号格式错误、验证码错误、密码错误) 边界值(连续输错4次、5次、6次) 权限场景(token过期、异地登录)
实测效果:一个登录模块的用例,从2小时缩短到5分钟。
二、自动写自动化脚本:Python、Selenium、Playwright、接口
这波操作直接解放双手。
1. Web 自动化脚本(Selenium/Playwright)
用 Python + Playwright 写一个自动化测试脚本:
测试场景:搜索功能
1. 打开百度首页
2. 输入关键词"软件测试"
3. 点击搜索按钮
4. 验证搜索结果页面标题包含"软件测试"
5. 截图保存结果LLM 直接输出完整脚本:
from playwright.sync_api import sync_playwright
def test_search():
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page()
page.goto("https://www.baidu.com")
page.fill("#kw", "软件测试")
page.click("#su")
page.wait_for_load_state("networkidle")
assert "软件测试" in page.title()
page.screenshot("search_result.png")
browser.close()2. 接口自动化脚本
用 Python + requests + pytest 写接口测试脚本:
测试目标:用户登录接口
- URL: http://api.example.com/login
- 方法: POST
- 参数: {"username": "test", "password": "123456"}
- 期望: 返回 token 和 user_id3. 断言规则自动生成
LLM 还能根据响应结构自动生成断言:
# 断言响应状态
assert response.status_code == 200
# 断言必填字段
assert "token" in response.json()
assert "user_id" in response.json()
# 断言数据类型
assert isinstance(response.json()["token"], str)
assert isinstance(response.json()["user"], dict)三、分析日志、报错、定位问题
这简直是调试救星。
场景1:分析报错日志
报错信息:
java.lang.NullPointerException
at com.example.service.UserService.getUser(UserService.java:45)
at com.example.controller.UserController.getUserById(UserController.java:23)直接丢给 LLM:
请分析这个Java报错:
1. 报错原因是什么?
2. 可能出现在哪一行?
3. 如何修复?LLM 会告诉你:
NullPointerException 通常是因为对象为 null 时调用了方法 UserService.java:45 行可能获取的用户对象为 null 需要加空值判断,或检查数据库查询逻辑
场景2:分析接口返回异常
接口返回:
{"code": 500, "message": "System error", "data": null}LLM 分析:
500 是服务端错误 可能是数据库超时、服务异常、业务逻辑报错 需要查看服务端日志定位具体原因
场景3:日志分析
把大段日志丢给 LLM:
请分析以下日志,找出:
1. 异常堆栈
2. 可能的根因
3. 建议的排查方向LLM 会提取关键信息,过滤噪音,给你清晰的排查思路。
四、生成测试数据、造 Mock 数据
这是最容易被忽视但巨好用的功能。
1. 生成正向测试数据
生成10条用户注册测试数据,包含:
- 用户名(3-20位字母数字)
- 邮箱(有效格式)
- 手机号(11位数字,以13/15/18开头)
- 密码(6-20位)2. 生成异常测试数据
生成边界值测试数据:
- 空字符串
- 超长字符串(200字符)
- 特殊字符(<>{}"/')
- HTML标签
- SQL注入尝试3. Mock 数据生成
用 Python 的 faker 库,生成100条用户数据,包含:
姓名、邮箱、手机号、地址、公司、身份证号五、写测试计划、测试总结、缺陷描述
文书工作交给 LLM,测试工程师专注核心。
1. 测试计划
请根据以下信息,生成测试计划:
项目:电商APP v2.0
测试范围:用户模块(注册、登录、个人信息)
测试类型:功能测试、兼容性测试
测试周期:2024.1.1 - 2024.1.7
测试资源:2人2. 测试总结
请根据以下测试结果,生成测试总结:
- 执行用例数:150
- 通过:145
- 失败:5
- 阻塞:0
- 缺陷分布:UI问题2个、功能问题3个3. 缺陷描述(Bug Report)
请优化以下缺陷描述,使其更规范:
缺陷描述:
系统出问题了,用户登录不了,提示错误LLM 优化后:
【缺陷标题】
登录接口返回500错误,导致用户无法登录
【缺陷描述】
用户在客户端输入正确的手机号和密码后,点击登录按钮,接口返回500 Internal Server Error
【复现步骤】
1. 打开APP
2. 输入手机号 13800001001
3. 输入密码 Test123456
4. 点击登录按钮
【预期结果】
登录成功,跳转至首页
【实际结果】
返回500错误,提示"系统错误,请稍后重试"
【环境】
APP版本:v2.0.1
系统:iOS 16.3
网络:WiFi六、接口自动化、回归测试辅助
这才是真正的效率放大器。
1. 接口用例批量生成
根据以下Swagger接口定义,生成完整的接口测试用例:
GET /api/user/{id} - 获取用户信息
- 参数:id(必填,整数)
- 响应:{id, name, email, phone, status}
POST /api/order - 创建订单
- 参数:{user_id, product_id, quantity, address}
- 响应:{order_id, status, total_price}LLM 一次性生成:
正常场景用例 参数缺失用例 参数类型错误用例 边界值用例 异常业务场景用例
2. 回归测试辅助
这是上次回归测试的用例清单:
[粘贴用例]
本次新增功能:用户个人资料编辑
请帮我:
1. 筛选出可能受影响的用例
2. 生成新增功能的测试用例
3. 评估测试风险3. 测试数据准备
为接口测试准备测试数据:
1. 创建10个有效用户
2. 创建5个订单(不同状态:待支付、已支付、已发货、已完成、已取消)
3. 每个订单关联不同用户七、实战提示词模板库
我把高频场景的提示词整理出来,直接抄:
1. 生成测试用例
请根据以下需求,生成测试用例:
[需求内容]
要求:
- 覆盖正常、异常、边界值
- 包含:用例编号、模块、前置条件、步骤、测试数据、预期结果、优先级
- 用Excel表格格式输出2. 写自动化脚本
用 [Python/Java/Go] + [框架名] 写自动化测试:
[测试场景描述]
要求:
- 包含setup和teardown
- 合理使用断言
- 添加日志输出
- 符合代码规范3. 分析报错
请分析以下报错信息:
[报错日志/堆栈]
请给出:
1. 错误原因
2. 根因分析
3. 修复建议4. 生成测试数据
生成[数量]条[类型]测试数据:
[字段要求]
要求:
- 正向数据+反向数据
- 包含边界值5. 写缺陷报告
请优化以下缺陷描述:
[原始描述]
要求:
- 包含:标题、步骤、预期、实际、环境
- 描述清晰、可复现写在最后
LLM 在测试领域的价值,不是替代测试工程师,而是放大测试工程师的能力。
它擅长:
✅ 重复性工作(写脚本、改用例、造数据) ✅ 信息整理(分析日志、写文档) ✅ 快速生成初稿
它不擅长:
❌ 测试策略设计 ❌ 业务逻辑理解 ❌ 复杂场景判断
最好的使用方式:AI生成初稿 → 人工审核优化 → 最终使用。
把省下来的时间,用在更核心的测试设计和缺陷挖掘上,它不香吗?
你在测试工作中用 LLM 做什么?有什么好用场景评论区聊聊~
夜雨聆风