作者:AI测试探索者 | 发布时间:2026年7月20日
前言
大家好,我是AI测试探索者。
从ChatGPT横空出世到现在,大语言模型(LLM)已经深刻改变了软件开发的方式。作为测试工程师,我发现AI不仅能提升效率,更能改变我们思考测试的方式。
今天这篇文章,分享我在AI辅助测试方面的实战经验,不讲虚的理论,只讲能落地的实践。
一、AI能为测试做什么?
1.1 测试用例生成
这是最直接的应用场景。给出需求描述,AI可以帮你生成测试用例。
示例:
需求描述:
用户登录功能: 1. 支持用户名+密码登录 2. 支持手机号+验证码登录 3. 密码错误超过5次锁定账号 4. 登录成功后生成Token,有效期24小时
AI生成的测试用例:
| 用例编号 | 用例名称 | 前置条件 | 测试步骤 | 预期结果 |
|---|---|---|---|---|
| TC-LOGIN-001 | 正确用户名密码登录 | 用户已注册 | 1.输入正确用户名 2.输入正确密码 3.点击登录 | 登录成功,跳转首页 |
| TC-LOGIN-002 | 用户名为空 | – | 1.用户名留空 2.输入密码 3.点击登录 | 提示”请输入用户名” |
| TC-LOGIN-003 | 密码为空 | – | 1.输入用户名 2.密码留空 3.点击登录 | 提示”请输入密码” |
| TC-LOGIN-004 | 用户名不存在 | – | 1.输入未注册用户名 2.输入密码 3.点击登录 | 提示”用户不存在” |
| TC-LOGIN-005 | 密码错误 | 用户已注册 | 1.输入正确用户名 2.输入错误密码 3.点击登录 | 提示”密码错误” |
| TC-LOGIN-006 | 密码错误5次锁定 | 用户已注册 | 连续5次输入错误密码 | 账号被锁定,提示解锁方式 |
技巧:
- 需求描述越具体,生成质量越高
- 可以让AI补充边界值、异常场景
- 生成后务必人工审核,AI可能遗漏业务特例
1.2 接口测试脚本生成
AI可以根据接口文档直接生成测试脚本。
示例:接口文档
接口名称: 创建订单
URL: /api/v1/orders
方法: POST
请求头:
Content-Type: application/json
Authorization: Bearer {token}
请求体:
product_id: string # 商品ID
quantity: integer # 数量
address_id: string # 地址ID
响应:
200:
code: 0
data:
order_id: string
total_price: number
400:
code: 400001
message: "参数错误"
AI生成的Python测试脚本:
import pytest
import requests
class TestCreateOrder:
"""创建订单接口测试"""
BASE_URL = "http://localhost:8080/api/v1"
TOKEN = "your_test_token"
def setup_class(self):
"""测试前置:获取Token"""
self.headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {self.TOKEN}"
}
def test_create_order_success(self):
"""测试:正常创建订单"""
payload = {
"product_id": "prod_001",
"quantity": 1,
"address_id": "addr_001"
}
response = requests.post(
f"{self.BASE_URL}/orders",
json=payload,
headers=self.headers
)
assert response.status_code == 200
data = response.json()
assert data["code"] == 0
assert "order_id" in data["data"]
assert "total_price" in data["data"]
def test_create_order_missing_product_id(self):
"""测试:缺少商品ID"""
payload = {"quantity": 1, "address_id": "addr_001"}
response = requests.post(
f"{self.BASE_URL}/orders",
json=payload,
headers=self.headers
)
assert response.status_code == 400
def test_create_order_without_token(self):
"""测试:未授权访问"""
payload = {"product_id": "prod_001", "quantity": 1, "address_id": "addr_001"}
headers = {"Content-Type": "application/json"}
response = requests.post(f"{self.BASE_URL}/orders", json=payload, headers=headers)
assert response.status_code == 401
1.3 测试数据生成
AI可以快速生成测试所需的模拟数据。
test_users = [
{"username": "zhangsan", "email": "zhangsan@test.com", "age": 25},
{"username": "lisi", "email": "lisi@test.com", "age": 30},
{"username": "wangwu", "email": "wangwu@test.com", "age": 28},
# 边界值
{"username": "a", "email": "a@b.c", "age": 1}, # 最小值
{"username": "x" * 50, "email": "test@test.com", "age": 150}, # 最大值
]
1.4 Bug报告优化
AI可以帮你把模糊的Bug描述转化为规范的报告。
原始描述:
登录有问题,有时候能登,有时候登不上
AI优化后:
Bug报告:登录功能偶发性失败
严重程度: 高
重现步骤:
- 打开登录页面 https://example.com/login
- 输入用户名:testuser
- 输入用户密码:password123
- 点击登录按钮
- 等待响应
预期结果: 登录成功,跳转到首页
实际结果: 偶发性登录失败,提示”网络异常,请稍后重试”
复现概率: 约30%(测试10次,失败3次)
环境信息:
- 浏览器:Chrome 125.0.0
- 操作系统:Windows 11
- 测试时间:2026-07-20 10:30
可能原因:
- 后端服务不稳定
- 数据库连接池耗尽
- 网络超时配置过短
二、AI辅助测试实战技巧
2.1 提示词模板
好的提示词是获得高质量输出的关键。
测试用例生成模板:
请为以下功能生成测试用例,要求:
1. 覆盖正常流程和异常流程
2. 包含边界值测试
3. 考虑安全测试场景
4. 用表格形式输出
功能描述:
{需求描述}
输出格式:
| 用例编号 | 用例名称 | 前置条件 | 测试步骤 | 预期结果 |
2.2 常见问题与解决
| 问题 | 解决方案 |
|---|---|
| AI生成的用例不完整 | 分批生成:先生成正常流程,再追问边界值 |
| 代码有语法错误 | 让AI解释代码逻辑,人工检查修复 |
| 缺少业务上下文 | 在提示词中补充业务背景、用户场景 |
| 生成的内容太泛 | 要求”请给出具体示例”、”请用代码表示” |
三、AI测试工具推荐
| 工具 | 用途 | 特点 |
|---|---|---|
| ChatGPT/Claude | 测试用例生成、脚本生成 | 通用性强,需手动编写 |
| GitHub Copilot | IDE内代码补全 | 提升编码效率 |
| TestGPT | 专门的测试用例生成 | 针对测试场景优化 |
| Applitools | AI视觉测试 | 自动检测UI变化 |
| Mabl | AI自动化测试 | 自愈式测试脚本 |
RunnerGo作为国产全栈测试平台,可以与AI辅助测试很好地结合:
- 用AI生成接口测试脚本 → 导入RunnerGo执行
- 用AI设计测试场景 → 在RunnerGo编排流程
- 用AI分析测试报告 → 定位问题根因
四、AI辅助测试的边界
4.1 AI不能替代的工作
| 工作 | 原因 |
|---|---|
| 业务理解 | AI不了解你的业务特例 |
| 测试策略 | 需要权衡成本和风险 |
| 质量决策 | AI无法承担质量责任 |
| 用户视角 | AI不是真实用户 |
4.2 最佳实践建议
AI辅助测试的正确姿势: ✅ 用AI生成初稿,人工审核完善 ✅ 用AI加速重复劳动,聚焦高价值工作 ✅ 用AI学习新技术,降低学习门槛 ❌ 不要100%信任AI输出 ❌ 不要让AI替代你的思考 ❌ 不要忽视AI的幻觉问题
五、总结
| 方面 | 传统方式 | AI辅助后 |
|---|---|---|
| 用例设计 | 纯手工编写 | AI生成初稿+人工优化 |
| 脚本开发 | 逐行手写 | AI生成框架+细节调整 |
| Bug报告 | 描述模糊 | AI优化为规范报告 |
| 学习效率 | 查文档摸索 | AI实时解答 |
AI不会取代测试工程师,但会取代不会用AI的测试工程师。
拥抱AI,让它成为你的效率倍增器,而不是替代者。
作者:AI测试探索者,5年测试开发经验,专注AI辅助测试实践
参考资料
- 《软件测试AI辅助实践》
- RunnerGo官方文档:https://wiki.runnergo.cn/docs/
- OpenAI GPT Best Practices:https://platform.openai.com/docs/guides/prompt-engineering
- pytest官方文档:https://docs.pytest.org/
讨论话题:你在测试工作中用过AI吗?有什么心得?欢迎评论区分享!