名称: QA测试规划师 描述: 生成全面的测试计划、手动测试用例、回归测试套件和错误报告,供QA工程师使用。包括Figma MCP集成用于设计验证。 触发: 显式
QA测试规划师
一个全面的技能,供QA工程师创建测试计划、生成手动测试用例、构建回归测试套件、验证Figma设计并有效文档错误。
激活: 此技能仅在被显式调用时触发(例如,
/qa-test-planner、qa-test-planner或使用技能qa-test-planner)。
快速开始
创建测试计划:
"为用户认证功能创建测试计划"
生成测试用例:
"为结账流程生成手动测试用例"
构建回归套件:
"为支付模块构建回归测试套件"
验证Figma设计:
"比较登录页面与Figma设计在[URL]处"
创建错误报告:
"为表单验证问题创建错误报告"
快速参考
| 任务 | 获得内容 | 时间 |
|---|---|---|
| 测试计划 | 策略、范围、时间表、风险 | 10-15分钟 |
| 测试用例 | 逐步说明、预期结果 | 每个5-10分钟 |
| 回归套件 | 冒烟测试、关键路径、执行顺序 | 15-20分钟 |
| Figma验证 | 设计-实现比较、差异列表 | 10-15分钟 |
| 错误报告 | 可重现步骤、环境、证据 | 5分钟 |
工作原理
您的请求
│
▼
┌─────────────────────────────────────────────────────┐
│ 1. 分析 │
│ • 解析功能/需求 │
│ • 确定需要的测试类型 │
│ • 确定范围和优先级 │
├─────────────────────────────────────────────────────┤
│ 2. 生成 │
│ • 创建结构化交付物 │
│ • 应用模板和最佳实践 │
│ • 包括边缘情况和变体 │
├─────────────────────────────────────────────────────┤
│ 3. 验证 │
│ • 检查完整性 │
│ • 验证可追溯性 │
│ • 确保可操作步骤 │
└─────────────────────────────────────────────────────┘
│
▼
QA交付物就绪
命令
交互式脚本
| 脚本 | 目的 | 用法 |
|---|---|---|
./scripts/generate_test_cases.sh |
交互式创建测试用例 | 逐步提示 |
./scripts/create_bug_report.sh |
生成错误报告 | 引导输入收集 |
自然语言
| 请求 | 输出 |
|---|---|
| “为{功能}创建测试计划” | 完整测试计划文档 |
| “为{功能}生成{N}个测试用例” | 带步骤的编号测试用例 |
| “构建冒烟测试套件” | 关键路径测试 |
| “与Figma在{URL}比较” | 视觉验证清单 |
| “文档错误: {描述}” | 结构化错误报告 |
核心交付物
1. 测试计划
- 测试范围和目标
- 测试方法和策略
- 环境要求
- 进入/退出标准
- 风险评估
- 时间表和里程碑
2. 手动测试用例
- 逐步说明
- 预期与实际结果
- 前提条件和设置
- 测试数据要求
- 优先级和严重性
3. 回归套件
- 冒烟测试 (15-30分钟)
- 完整回归 (2-4小时)
- 针对性回归 (30-60分钟)
- 执行顺序和依赖关系
4. Figma验证
- 组件逐项比较
- 间距和排版检查
- 颜色和视觉一致性
- 交互状态验证
5. 错误报告
- 清晰重现步骤
- 环境详情
- 证据(截图、日志)
- 严重性和优先级
反模式
| 避免 | 原因 | 替代 |
|---|---|---|
| 模糊测试步骤 | 无法重现 | 具体动作 + 预期结果 |
| 缺失前提条件 | 测试意外失败 | 文档所有设置要求 |
| 无测试数据 | 测试员受阻 | 提供示例数据或生成 |
| 通用错误标题 | 难以追踪 | 具体: “[功能]问题当[动作]” |
| 跳过边缘情况 | 遗漏关键错误 | 包括边界值、空值 |
验证清单
测试计划:
- [ ] 范围明确定义(包括/排除)
- [ ] 进入/退出标准指定
- [ ] 风险识别并缓解
- [ ] 时间表现实
测试用例:
- [ ] 每个步骤有预期结果
- [ ] 前提条件文档化
- [ ] 测试数据可用
- [ ] 优先级分配
错误报告:
- [ ] 可重现步骤
- [ ] 环境文档化
- [ ] 截图/证据附加
- [ ] 严重性/优先级设置
参考
<details> <summary><strong>深入探讨: 测试用例结构</strong></summary>
标准测试用例格式
## TC-001: [测试用例标题]
**优先级:** 高 | 中 | 低
**类型:** 功能 | UI | 集成 | 回归
**状态:** 未运行 | 通过 | 失败 | 阻塞
### 目标
[我们测试什么及原因]
### 前提条件
- [设置要求1]
- [设置要求2]
- [所需测试数据]
### 测试步骤
1. [执行的动作]
**预期:** [应该发生什么]
2. [执行的动作]
**预期:** [应该发生什么]
3. [执行的动作]
**预期:** [应该发生什么]
### 测试数据
- 输入: [测试数据值]
- 用户: [测试账户详情]
- 配置: [环境设置]
### 后置条件
- [测试后系统状态]
- [清理要求]
### 备注
- [考虑的边缘情况]
- [相关测试用例]
- [已知问题]
测试类型
| 类型 | 焦点 | 示例 |
|---|---|---|
| 功能 | 业务逻辑 | 有效凭证登录 |
| UI/视觉 | 外观、布局 | 按钮匹配Figma设计 |
| 集成 | 组件交互 | API返回数据到前端 |
| 回归 | 现有功能 | 先前功能仍工作 |
| 性能 | 速度、负载处理 | 页面加载在3秒内 |
| 安全 | 漏洞 | SQL注入预防 |
</details>
<details> <summary><strong>深入探讨: 测试计划模板</strong></summary>
测试计划结构
# 测试计划: [功能/发布名称]
## 执行摘要
- 测试的功能/产品
- 测试目标
- 关键风险
- 时间表概述
## 测试范围
**在范围内:**
- 要测试的功能
- 测试类型(功能、UI、性能)
- 平台和环境
- 用户流和场景
**不在范围内:**
- 不测试的功能
- 已知限制
- 第三方集成(如适用)
## 测试策略
**测试类型:**
- 手动测试
- 探索性测试
- 回归测试
- 集成测试
- 用户验收测试
**测试方法:**
- 黑盒测试
- 正负测试
- 边界值分析
- 等价类划分
## 测试环境
- 操作系统
- 浏览器和版本
- 设备(移动端、平板、桌面)
- 测试数据要求
- 后端/API环境
## 进入标准
- [ ] 需求文档化
- [ ] 设计定稿
- [ ] 测试环境就绪
- [ ] 测试数据准备
- [ ] 构建部署
## 退出标准
- [ ] 所有高优先级测试用例执行
- [ ] 90%+测试用例通过率
- [ ] 所有关键错误修复
- [ ] 无开放高严重性错误
- [ ] 回归套件通过
## 风险评估
| 风险 | 概率 | 影响 | 缓解措施 |
|------|-------------|--------|------------|
| [风险1] | H/M/L | H/M/L | [缓解] |
## 测试交付物
- 测试计划文档
- 测试用例
- 测试执行报告
- 错误报告
- 测试摘要报告
</details>
<details> <summary><strong>深入探讨: 错误报告</strong></summary>
错误报告模板
# BUG-[ID]: [清晰、具体标题]
**严重性:** 关键 | 高 | 中 | 低
**优先级:** P0 | P1 | P2 | P3
**类型:** 功能 | UI | 性能 | 安全
**状态:** 开放 | 进行中 | 修复 | 关闭
## 环境
- **操作系统:** [Windows 11, macOS 14等]
- **浏览器:** [Chrome 120, Firefox 121等]
- **设备:** [桌面, iPhone 15等]
- **构建:** [版本/提交]
- **URL:** [错误发生页面]
## 描述
[清晰、简洁的问题描述]
## 重现步骤
1. [具体步骤]
2. [具体步骤]
3. [具体步骤]
## 预期行为
[应该发生什么]
## 实际行为
[实际发生什么]
## 视觉证据
- 截图: [附加]
- 视频: [链接如适用]
- 控制台错误: [粘贴错误]
## 影响
- **用户影响:** [多少用户受影响]
- **频率:** [总是、有时、很少]
- **变通方法:** [如存在]
## 附加上下文
- 相关: [功能/票据]
- 回归: [是/否]
- Figma设计: [链接如UI错误]
严重性定义
| 级别 | 标准 | 示例 |
|---|---|---|
| 关键 (P0) | 系统崩溃、数据丢失、安全 | 支付失败、登录中断 |
| 高 (P1) | 主要功能损坏、无变通 | 搜索不工作 |
| 中 (P2) | 功能部分、有变通 | 过滤器缺失一个选项 |
| 低 (P3) | 视觉、罕见边缘情况 | 拼写错误、轻微对齐 |
</details>
<details> <summary><strong>深入探讨: Figma MCP集成</strong></summary>
设计验证工作流
前提条件:
- Figma MCP服务器配置
- 访问Figma设计文件
- Figma URL用于组件/页面
过程:
- 从Figma获取设计规格
"从Figma文件[URL]获取按钮规格"
响应包括:
- 尺寸(宽度、高度)
- 颜色(背景、文本、边框)
- 排版(字体、大小、粗细)
- 间距(内边距、外边距)
- 边框半径
- 状态(默认、悬停、激活、禁用)
- 比较实现
TC: 主按钮视觉验证
1. 在浏览器开发工具检查主按钮
2. 与Figma规格比较:
- 尺寸: 120x40px
- 边框半径: 8px
- 背景颜色: #0066FF
- 字体: 16px 中等 #FFFFFF
3. 文档差异
- 如不匹配创建错误
BUG: 主按钮颜色不匹配设计
严重性: 中
预期(Figma): #0066FF
实际(实现): #0052CC
截图: [附加]
Figma链接: [特定组件]
验证内容
| 元素 | 检查内容 | 工具 |
|---|---|---|
| 颜色 | 十六进制值精确 | 浏览器颜色选择器 |
| 间距 | 内边距/外边距像素 | 开发工具计算样式 |
| 排版 | 字体、大小、粗细 | 开发工具字体面板 |
| 布局 | 宽度、高度、位置 | 开发工具盒模型 |
| 状态 | 悬停、激活、焦点 | 手动交互 |
| 响应式 | 断点行为 | 开发工具设备模式 |
示例查询
"从Figma设计[URL]获取按钮规格"
"比较导航菜单实现与Figma设计"
"从Figma提取仪表板布局间距值"
"列出Figma设计系统中使用的所有颜色令牌"
</details>
<details> <summary><strong>深入探讨: 回归测试</strong></summary>
套件结构
| 套件类型 | 持续时间 | 频率 | 覆盖 |
|---|---|---|---|
| 冒烟 | 15-30分钟 | 每日 | 仅关键路径 |
| 针对性 | 30-60分钟 | 每变更 | 受影响区域 |
| 完整 | 2-4小时 | 每周/发布 | 全面 |
| 健全 | 10-15分钟 | 热修复后 | 快速验证 |
构建回归套件
步骤1: 识别关键路径
- 用户不能没有什么?
- 什么生成收入?
- 什么处理敏感数据?
- 什么使用最频繁?
步骤2: 优先级测试用例
| 优先级 | 描述 | 必须运行 |
|---|---|---|
| P0 | 业务关键、安全 | 总是 |
| P1 | 主要功能、常见流 | 每周+ |
| P2 | 次要功能、边缘情况 | 发布 |
步骤3: 执行顺序
- 先冒烟 - 如失败,停止并修复构建
- P0测试其次 - 必须在继续前通过
- P1然后P2 - 跟踪所有失败
- 探索性 - 发现意外问题
通过/失败标准
通过:
- 所有P0测试通过
- 90%+ P1测试通过
- 无关键错误开放
失败 (阻止发布):
- 任何P0测试失败
- 发现关键错误
- 安全漏洞
- 数据丢失场景
有条件:
- P1失败但有变通
- 已知问题文档化
- 修复计划就位
</details>
<details> <summary><strong>深入探讨: 测试执行跟踪</strong></summary>
测试运行报告模板
# 测试运行: [发布版本]
**日期:** 2024-01-15
**构建:** v2.5.0-rc1
**测试员:** [姓名]
**环境:** 暂存
## 摘要
- 总测试用例: 150
- 执行: 145
- 通过: 130
- 失败: 10
- 阻塞: 5
- 未运行: 5
- 通过率: 90%
## 按优先级测试用例
| 优先级 | 总数 | 通过 | 失败 | 阻塞 |
|----------|-------|------|------|---------|
| P0 (关键) | 25 | 23 | 2 | 0 |
| P1 (高) | 50 | 45 | 3 | 2 |
| P2 (中) | 50 | 45 | 3 | 2 |
| P3 (低) | 25 | 17 | 2 | 1 |
## 关键失败
- TC-045: 支付处理失败
- 错误: BUG-234
- 状态: 开放
## 阻塞测试
- TC-112: 仪表板小部件(API端点关闭)
## 风险
- 2个关键错误阻止发布
- 支付集成需关注
## 下一步
- BUG-234修复后重新测试
- 完成剩余5个测试用例
- 签署前运行完整回归
覆盖跟踪
## 覆盖矩阵
| 功能 | 需求 | 测试用例 | 状态 | 差距 |
|---------|--------------|------------|--------|------|
| 登录 | 8 | 12 | 完成 | 无 |
| 结账 | 15 | 10 | 部分 | 支付错误 |
| 仪表板 | 12 | 15 | 完成 | 无 |
</details>
<details> <summary><strong>QA流程工作流</strong></summary>
阶段1: 规划
- [ ] 审查需求和设计
- [ ] 创建测试计划
- [ ] 识别测试场景
- [ ] 估算努力和时间表
- [ ] 设置测试环境
阶段2: 测试设计
- [ ] 编写测试用例
- [ ] 与团队审查测试用例
- [ ] 准备测试数据
- [ ] 构建回归套件
- [ ] 获取Figma设计访问
阶段3: 执行
- [ ] 执行测试用例
- [ ] 记录错误并有清晰步骤
- [ ] 验证Figma设计(UI测试)
- [ ] 跟踪测试进展
- [ ] 沟通阻塞
阶段4: 报告
- [ ] 编译测试结果
- [ ] 分析覆盖
- [ ] 文档风险
- [ ] 提供去/不去建议
- [ ] 归档测试工件
</details>
<details> <summary><strong>最佳实践</strong></summary>
测试用例编写
做:
- 具体明确
- 每个步骤包括预期结果
- 每个测试用例测试一件事
- 使用一致的命名约定
- 保持测试用例可维护
不做:
- 假设知识
- 使测试用例太长
- 跳过前提条件
- 忘记边缘情况
- 留下预期结果模糊
错误报告
做:
- 提供清晰重现步骤
- 包括截图/视频
- 指定精确环境详情
- 描述对用户影响
- 链接Figma用于UI错误
不做:
- 报告无重现步骤
- 使用模糊描述
- 跳过环境详情
- 忘记分配优先级
- 重复现有错误
回归测试
做:
- 可能时自动化重复测试
- 定期维护回归套件
- 优先级关键路径
- 频繁运行冒烟测试
- 每次发布后更新套件
不做:
- 发布前跳过回归
- 让套件过时
- 每次测试所有
- 忽略失败的回归测试
</details>
示例
<details> <summary><strong>示例: 登录流测试用例</strong></summary>
## TC-LOGIN-001: 有效用户登录
**优先级:** P0 (关键)
**类型:** 功能
**估计时间:** 2分钟
### 目标
验证用户能用有效凭证成功登录
### 前提条件
- 用户账户存在 (test@example.com / Test123!)
- 用户尚未登录
- 浏览器cookies清除
### 测试步骤
1. 导航到 https://app.example.com/login
**预期:** 登录页面显示电子邮件和密码字段
2. 输入电子邮件: test@example.com
**预期:** 电子邮件字段接受输入
3. 输入密码: Test123!
**预期:** 密码字段显示屏蔽字符
4. 点击“登录”按钮
**预期:**
- 加载指示器出现
- 用户重定向到 /dashboard
- 欢迎消息显示: “欢迎回来,测试用户”
- 头像/个人资料图像在头部显示
### 后置条件
- 用户会话创建
- 认证令牌存储
- 分析事件记录
### 考虑的边缘情况
- TC-LOGIN-002: 无效密码
- TC-LOGIN-003: 不存在的电子邮件
- TC-LOGIN-004: SQL注入尝试
- TC-LOGIN-005: 非常长的密码
</details>
<details> <summary><strong>示例: 响应式设计测试用例</strong></summary>
## TC-UI-045: 移动导航菜单
**优先级:** P1 (高)
**类型:** UI/响应式
**设备:** 移动端(iPhone, Android)
### 目标
验证导航菜单在移动设备上正确工作
### 前提条件
- 从移动设备或响应模式访问
- 视口宽度: 375px (iPhone SE) 到 428px (iPhone Pro Max)
### 测试步骤
1. 在移动设备上打开主页
**预期:** 汉堡菜单图标可见(右上角)
2. 点击汉堡图标
**预期:**
- 菜单从右侧滑入
- 覆盖出现在内容上
- 关闭(X)按钮可见
3. 点击菜单项
**预期:** 导航到部分,菜单关闭
4. 与Figma移动设计比较 [链接]
**预期:**
- 菜单宽度: 280px
- 滑动动画: 300ms ease-out
- 覆盖不透明度: 0.5, 颜色 #000000
- 字体大小: 16px, 行高 24px
### 测试的断点
- 375px (iPhone SE)
- 390px (iPhone 14)
- 428px (iPhone 14 Pro Max)
- 360px (Galaxy S21)
</details>
“测试显示错误的存在,而非不存在。” - Edsger Dijkstra
“质量不是行为,而是习惯。” - 亚里士多德