AI 自动生成测试用例完整指南

📋 概要

基于产品原型 + UI设计图 + 历史代码自动生成测试用例文档
借助 Cursor + Chrome MCP Server 实现智能化测试用例生成
转载请注明出处

🎯 整体设计理念

输入源分析

博主所在公司,产品原型及UI设计图都放在 codesign 中,因此需要一个能够获取浏览器内容的 MCP。Chrome MCP Server 以及 Playwright 均可支持。

历史代码处理策略

由于历史需求文档难以追寻,且就算都存在也需要花费大量时间去整理,因此选择让 AI 从历史代码去反向得出历史需求。

⚡ 快速开始(3分钟搞定)

第一步:下载 Chrome MCP Server 扩展

  1. 下载扩展程序

    • 访问 GitHub Releases 页面:https://github.com/hangwin/mcp-chrome/releases
    • 下载适合您系统的版本
  2. 安装扩展

    • Chrome 地址栏输入:chrome://extensions/
    • 开启右上角的"开发者模式"
    • 点击"加载已解压的扩展程序"
    • 选择下载的扩展文件夹

第二步:安装网桥服务

# 全局安装 Chrome MCP Bridge
npm install -g mcp-chrome-bridge

# 或者使用 yarn
yarn global add mcp-chrome-bridge

第三步:连接服务

  1. 启动桥接服务

    mcp-chrome-bridge
    
  2. 配置 MCP 客户端

    • 打开 Cursor 设置
    • 添加 MCP 服务器配置
    • 复制 Chrome MCP Server 的配置内容
  3. 验证连接状态

    • 确保扩展正常运行
    • 检查桥接服务状态
    • 在 Cursor 中验证 MCP 功能

MCP 连接状态示意图

🔧 Cursor 配置 MCP 服务

配置步骤

  1. 打开 Cursor 设置

    • 快捷键:Ctrl/Cmd + ,
    • 进入 “Extensions” 或 “MCP” 配置页面
  2. 添加 MCP 服务器

    {
      "mcpServers": {
        "chrome": {
          "command": "mcp-chrome-bridge",
          "args": []
        }
      }
    }
    
  3. 复制官方配置

    • 直接复制 Chrome MCP Server 提供的标准配置
    • 粘贴到 Cursor 的 MCP 配置中

Cursor MCP 配置界面

📝 测试用例生成提示词

创建 CLAUDE.md 配置文件

在项目目录创建 CLAUDE.md 文件:

# CLAUDE.md
本文件为在此目录下生成测试用例提供指导

## 角色设定
你是一名资深测试专家,擅长根据多源输入生成结构化测试用例,并发现界面交互细节和业务逻辑漏洞。

## 执行流程

### 输入源评估矩阵
| 输入源 | 必需性 | 获取优先级 | 评估标准 | 降级方案 |
|--------|--------|------------|----------|----------|
| 产品原型 | 必需 | P0 | 需求文档、功能说明、交互流程 | 基于文字描述分析 |
| UI设计稿 | 可选 | P1 | 界面布局、交互原型、设计规范 | 参考现有界面模式 |
| 历史代码 | 必需 | P0 | 相关功能模块、接口定义、数据模型 | 基于文档补充 |

### 生成触发条件
- **完整模式**:3个输入源就绪 → 生成完整测试用例
- **简化模式**:仅产品原型+历史代码 → 生成核心功能用例
- **补充模式**:后续获取UI设计稿 → 增补交互相关用例

## 用例等级说明与分配规则

### 优先级定义
| 等级 | 优先级 | 定义 | 触发条件 | 测试时机 |
|------|--------|------|----------|----------|
| **#0** | P0-致命 | 核心功能、阻塞性问题 | 影响主流程、系统崩溃、数据丢失 | 冒烟测试、每轮必测 |
| **#1** | P1-严重 | 重要功能、影响用户体验 | 功能异常、性能下降、兼容性问题 | 回归测试、发布前必测 |
| **#2** | P2-一般 | 优化功能、边缘场景 | 次要功能、特殊场景、UI细节 | 功能测试、阶段性验证 |
| **#3** | P3-轻微 | 增强功能、非关键问题 | 错别字、样式美化、建议性优化 | 时间允许时测试 |

### 等级分配策略
- **新功能**: 主要流程#0,辅助功能#1,异常处理#2
- **功能改动**: 受影响核心#0,关联功能#1,兼容性#2
- **边界测试**: 极值场景#1,异常输入#2,容错处理#2
- **回归测试**: 历史P0/P1用例降级处理,新增相关等级

## 用例格式规范

### 标准模板
## 模块:模块名称

### 测试点:测试点描述
#### 用例:用例名称#n    (其中#n为等级,0-3)
  - 前置条件:测试前置条件(非必需)
  - 步骤:1.操作步骤1<br>2.操作步骤2<br>3.操作步骤
    - 预期:预期结果描述

### 用例设计检查清单
- [ ] **需求覆盖**: 每个功能点至少有1个正向用例
- [ ] **异常场景**: 每个输入点至少有2个异常用例
- [ ] **边界值**: 数值输入包含最小值、最大值、临界值
- [ ] **权限控制**: 不同角色用户的访问权限验证
- [ ] **数据一致性**: 增删改查后的数据状态验证
- [ ] **界面交互**: 按钮、表单、弹窗的操作反馈
- [ ] **性能指标**: 响应时间、并发处理、资源占用
- [ ] **兼容性**: 浏览器、设备兼容测试
- [ ] **错误处理**: 异常信息的准确性和友好性
- [ ] **回归影响**: 历史功能是否受影响

## 测试覆盖要求

### 覆盖维度矩阵
| 测试类型 | 覆盖内容 | 用例占比 | 重点场景 |
|----------|----------|----------|----------|
| **功能测试** | 正常流程、核心业务逻辑 | 86% | 主流程、关键业务、数据流转 |
| **边界测试** | 极值输入、异常场景 | 12% | 数值边界、异常输入、资源限制 |
| **回归测试** | 已有功能保护 | 统计在P0/P1 | 关联功能、接口兼容、数据迁移 |
| **安全测试** | 权限控制、数据保护 | 1% | 越权访问、SQL注入、敏感数据 |
| **性能测试** | 响应时间、并发处理 | 1% | 大数据量、高并发、资源占用 |

### 测试深度策略
- **烟云级别**: 验证核心功能可用性(P0用例)
- **功能级别**: 完整功能验证(P0+P1用例)
- **系统级别**: 端到端集成测试(全等级用例)
- **验收级别**: 用户场景全覆盖(基于实际使用)

## 输出标准

### 文档规范
- **格式**:Markdown文档,支持标题层级、表格、代码块
- **命名**:`[项目名称]_[模块]_[版本]_测试用例_[日期].md`
- **版本**:文档版本号,支持变更追踪

### 内容分布要求
| 用例类型 | 占比目标 | 最低要求 | 重点覆盖 |
|----------|----------|----------|----------|
| **功能用例** | 86% | 80% | 核心流程、业务规则、数据处理 |
| **边界用例** | 12% | 10% | 极值输入、异常场景、资源限制 |
| **安全用例** | 1% | 1% | 权限控制、数据保护、输入验证 |
| **性能用例** | 1% | 1% | 响应时间、并发处理、大数据量 |

### 范围控制原则
- **主要范围**:本次迭代新增/改动的功能模块
- **影响分析**:识别受影响的历史功能和接口
- **回归范围**:与改动点有直接依赖关系的功能
- **排除范围**:稳定功能、无关模块、第三方服务

### 质量控制清单
- [ ] **完整性检查**: 需求点100%覆盖,无遗漏
- [ ] **准确性检查**: 用例步骤可执行,预期结果可验证
- [ ] **一致性检查**: 术语统一,格式规范,等级合理
- [ ] **可读性检查**: 描述清晰,步骤明确,逻辑连贯
- [ ] **覆盖率检查**: 达到预设的用例分布和深度要求

## 生成规则

### 详细用例生成流程

**第一步:分析产品原型内容**
- 输入:产品原型文档(包括图片和文字描述)
- 分析内容:
  - 解析功能点:识别本次迭代新增或改动的功能模块
  - 提取业务逻辑:梳理操作流程、数据流转、状态变更
  - 识别接口需求:API调用、数据校验规则、异常处理
- 输出:本次迭代需求清单,包含功能点、业务规则、接口定义

**第二步:分析UI原型内容(如有)**
- 输入:UI设计稿、交互原型图
- 分析内容:
  - 界面元素布局:输入框、按钮、表格、弹窗等组件
  - 操作路径:点击流程、页面跳转、交互逻辑
  - 状态响应:成功/失败状态、加载状态、错误提示
- 输出:UI交互矩阵,包含元素定位、操作路径、状态验证点

**第三步:阅读历史代码分析相关功能**
- 输入:与本次需求相关的历史代码文件
- 分析内容:
  - 接口定义:现有API的参数、返回值、错误码
  - 数据模型:数据库表结构、字段约束、关联关系
  - 业务逻辑:现有功能的处理流程、校验规则
  - 异常处理:错误捕获、异常提示、回滚机制
- 输出:回归测试清单,包含受影响的历史功能、接口兼容性、数据一致性

**第四步:综合生成测试用例**
- 输入:产品原型分析结果 + UI原型分析结果 + 历史代码分析结果
- 生成策略:
  - 新功能用例:基于需求规格和交互设计生成正向和异常场景
  - 回归用例:针对受影响的历史功能生成保护性测试
  - 边界用例:基于代码约束和数据校验规则生成极值测试
- 输出:完整的测试用例文档

### 用例设计原则
1. **产品原型解析**:提取操作流程和API校验点
2. **UI原型解析**:识别可操作元素和状态验证
3. **代码驱动用例**:分析影响点,生成边界值用例
4. **范围约束**:专注本次改动,排除稳定功能,覆盖级联影响

## 示例用例与最佳实践

### 完整示例
```markdown
## 模块:用户管理-角色权限功能测试

### 测试点:用户角色分配与权限验证
#### 用例:管理员分配不同角色用户权限#0
  - 前置条件:系统已配置角色权限矩阵,测试账号具备管理员权限
  - 步骤:1.管理员登录系统<br>2.进入用户管理页面<br>3.选择用户并分配角色权限<br>4.保存配置并退出<br>5.使用该用户账号重新登录
    - 预期:1.角色分配成功<br>2.用户权限与分配角色一致<br>3.无权限的功能点不可访问<br>4.界面显示与权限匹配

#### 用例:同时拥有多角色用户权限优先级验证#1
  - 步骤:1.为用户分配建设单位和施工单位双重角色<br>2.用户登录系统<br>3.验证功能权限范围<br>4.验证数据访问范围
    - 预期:按角色优先级建设单位>施工单位>监理单位显示权限,数据访问范围取并集

### 测试点:权限边界与安全控制
#### 用例:越权访问敏感信息拦截#0
  - 步骤:1.使用普通用户账号登录<br>2.直接访问管理员URL<br>3.尝试修改其他用户信息<br>4.尝试访问系统配置页面
    - 预期:1.越权访问被拦截<br>2.返回403权限不足提示<br>3.记录安全日志<br>4.不泄露敏感信息

#### 用例:并发权限冲突处理#2
  - 前置条件:需要两个管理员同时在线操作
  - 步骤:1.管理员A修改用户权限<br>2.管理员B同时修改同一用户权限<br>3.保存权限变更<br>4.验证最终权限状态
    - 预期:系统采用乐观锁或时间戳机制,后提交的修改给出冲突提示或覆盖警告

### 用例设计最佳实践

#### 1. 测试点划分原则
- **功能导向**: 按业务功能模块划分,便于管理
- **场景聚合**: 相关场景放在同一测试点下
- **等级区分**: 高等级用例放在前面,便于执行优先级排序

#### 2. 用例编写技巧
- **动作动词**: 使用明确的操作词汇(点击、输入、选择、验证)
- **数据驱动**: 明确测试数据和预期结果
- **状态描述**: 清晰描述系统状态和用户状态
- **异常覆盖**: 每个功能点都要考虑异常情况

#### 3. 复杂场景处理
#### 用例:完整业务流程测试#0
  - 前置条件:完整的测试账号、业务数据、权限配置
  - 步骤:1.用户注册并激活账号<br>2.完善个人信息<br>3.申请相关权限<br>4.执行核心业务操作<br>5.生成业务报表<br>6.数据导出与归档
    - 预期:全流程无异常,数据完整性保证,各环节状态正确

#### 4. 常见错误避免
❌ **错误示例**:
- 步骤描述模糊:"测试功能是否正常"
- 预期结果不明确:"系统响应正确"
- 缺少前置条件:直接操作复杂功能

✅ **正确示例**:
- 步骤描述具体:"点击保存按钮,查看数据保存成功"
- 预期结果量化:"页面显示'保存成功'提示,数据写入数据库"
- 前置条件完整:"用户已登录,具备编辑权限"

💡 使用建议

最佳实践
  1. 先分析后生成:确保输入信息完整准确
  2. 分阶段验证:先生成核心功能,再补充边界测试
  3. 持续优化:根据生成质量调整提示词细节
  4. 版本管理:保留不同版本提示词,适应不同场景

🔄 需求解析流程

自动化需求分析

此步骤也可以直接写在生成测试用例的提示词文档中:

  1. 指令 AI 访问产品原型

    • 通过 Chrome MCP 打开 codesign 产品原型页面
    • 逐页面分析功能点、操作流程、业务规则
    • 截图并保存关键界面和交互说明
  2. 分析 UI 设计图

    • 查看设计稿中的界面布局、组件规范
    • 识别可操作元素和状态变化
    • 分析交互路径和用户体验设计
  3. 扫描历史代码

    • 搜索相关功能模块的代码实现
    • 分析接口定义、数据模型、业务逻辑
    • 识别潜在的风险点和兼容性问题

建议优化步骤

个人在使用过程中发现,先让 AI 分析完需求后在本地生成产品原型和 UI 设计说明文档,生成的测试用例会更为优质:

  1. 生成产品原型分析文档

    # 产品原型分析报告
    
    ## 功能模块清单
    - 新增功能:xxx
    - 改动功能:yyy
    - 影响范围:zzz
    
    ## 业务流程图
    [流程图或文字描述]
    
    ## 关键业务规则
    1. 规则一:xxx
    2. 规则二:yyy
    
  2. 生成 UI 设计分析文档

    # UI 设计分析报告
    
    ## 界面变更点
    - 页面布局调整
    - 新增组件说明
    - 交互流程优化
    
    ## 关键交互元素
    - 按钮操作
    - 表单验证
    - 状态反馈
    
  3. 生成代码分析报告

    # 代码影响分析报告
    
    ## 涉及文件列表
    - 核心逻辑文件
    - 接口定义文件
    - 数据模型文件
    
    ## 兼容性风险评估
    - 接口变更影响
    - 数据库结构变更
    - 前端组件依赖
    

📊 用例格式转换

转换为 XMind 格式

  1. 打开 XMind 软件

  2. 导入 Markdown 文件

    • 选择左上角:文件 → 导入 → Markdown
    • 选择生成的测试用例 .md 文件
    • 点击导入完成转换
  3. 调整格式(可选)

    • 调整主题样式
    • 设置优先级颜色
    • 添加测试状态标记

其他格式支持

  • Excel 格式:可使用 Markdown 转 Excel 工具
  • TestRail:通过 API 批量导入
  • TAPD:复制粘贴或格式化导入
  • Jira:使用 Zephyr 或 Xray 插件

📈 效果评估与优化建议

适用场景分析

✅ 推荐使用场景

  • 新功能模块:完整的新功能开发,业务逻辑相对简单
  • 标准化界面:遵循统一设计规范的界面改动
  • API 接口测试:有明确接口文档和返回格式
  • 数据迁移测试:结构化数据变更验证

⚠️ 谨慎使用场景

  • 迭代小需求:改动范围小,用例生成成本可能高于手动编写
  • 复杂业务流程:涉及多个系统协同,边界条件复杂
  • 强依赖性功能:与历史功能耦合度高,影响分析困难
  • 性能相关需求:需要专业的性能测试经验和工具

优化建议

1. 输入源质量提升
  • 产品原型:确保原型完整、逻辑清晰、标注详细
  • UI 设计:提供完整的设计规范和交互说明
  • 代码质量:保持良好的代码注释和文档
2. 提示词优化
  • 明确范围:清晰界定测试范围和重点关注点
  • 上下文补充:提供业务背景和历史约束条件
  • 质量要求:明确用例质量标准和验收标准
3. 流程改进
  • 分阶段生成:先生成核心功能,再补充边界和异常
  • 人工审核:AI 生成后进行人工审核和调整
  • 持续优化:根据实际效果调整提示词和流程
4. 工具集成
  • 版本控制:将生成的用例纳入版本管理
  • 自动化集成:与 CI/CD 流程集成,自动执行相关测试
  • 质量监控:建立用例质量和缺陷发现率的监控机制

🚀 进阶应用

1. 批量用例生成

# 批量处理多个功能模块
for module in module1 module2 module3; do
  echo "生成 $module 测试用例..."
  cursor --generate-tests --module $module
done

2. 用例模板化

创建不同类型功能的用例模板:

  • 表单类功能模板
  • 列表查询类功能模板
  • 数据导入导出模板
  • 权限控制类模板

3. 自动化程度分级

  • Level 1:完全人工编写
  • Level 2:AI 辅助生成 + 人工审核
  • Level 3:AI 自动生成 + 关键点人工检查
  • Level 4:完全自动化生成和验证

📝 总结与建议

核心价值

  1. 效率提升:大幅减少重复性的用例编写工作
  2. 覆盖全面:多维度分析,减少遗漏
  3. 质量保证:基于代码分析,确保用例可执行
  4. 标准化:统一的格式和规范,便于管理

使用建议

对于新功能测试
  • 强烈推荐:AI 生成 + 人工审核
  • 可以快速建立完整的测试用例体系
  • 覆盖度高,质量相对稳定
对于迭代优化
  • ⚠️ 选择性使用:影响范围大时使用
  • 小改动可能手动编写更高效
  • 重点评估变更影响和回归范围
对于复杂业务
  • 🔧 辅助使用:AI 生成基础框架
  • 需要资深测试专家深度参与
  • 重点关注异常场景和边界条件

技术发展趋势

  1. 多模态输入:支持语音、图像、视频等多种输入形式
  2. 智能学习:基于历史用例优化生成质量
  3. 自动化验证:自动验证生成的用例可执行性
  4. 协作增强:多人协作编辑和版本管理

未来展望

随着 AI 技术的不断发展,测试用例自动生成将更加智能化和精准化。但需要注意的是,AI 工具始终是辅助手段,测试工程师的专业判断和业务理解仍然是保证测试质量的关键。

建议在实际应用中,根据项目特点、团队能力和时间要求,合理选择自动化程度,找到效率与质量的平衡点。


文档版本:v2.0
更新日期:2025-12-16
适用工具:Cursor + Chrome MCP Server

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐