关于 gds-test-design
gds-test-design 是面向游戏 QA 工程师的 BMad 技能,可根据游戏设计文档生成按风险排序的测试设计,涵盖核心玩法、进度系统、多人游戏和平台要求。
主要功能
- 01按风险排序测试场景
- 02覆盖玩法与进度系统
- 03涵盖多人游戏和平台测试
- 04设计端到端玩家旅程场景
- 05生成覆盖矩阵与自动化建议
适用场景
- 01根据 GDD 或功能规格设计测试
- 02优先检查存档和核心玩法风险
- 03规划多人游戏与平台认证检查
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ bmad-code-org/ bmad-module-game-dev-studio --skill gds-test-design安装后在 Claude Code 中输入/gds-test-design确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
checklist.mdcustomize.tomltest-design-template.md详细介绍
游戏测试设计
工作流 ID:gds-test-design
版本:1.0 (BMad v6)
约定
- 裸路径(例如
template.md)从技能根目录解析。 {skill-root}解析为此技能的安装目录(即customize.toml所在目录)。{project-root}解析为最近的、包含_bmad/的文件夹;从项目工作目录开始,逐级向上搜索其父目录。{skill-name}解析为技能目录的基本名称。
激活时
步骤 1:解析工作流配置块
运行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow
如果脚本失败,请自行读取以下三个文件,并按基础 → 团队 → 用户的顺序解析 workflow 配置块,应用与解析器相同的结构合并规则:
{skill-root}/customize.toml— 默认值{project-root}/_bmad/custom/{skill-name}.toml— 团队覆盖项{project-root}/_bmad/custom/{skill-name}.user.toml— 个人覆盖项
跳过任何缺失的文件。标量值覆盖,表格进行深度合并,以 code 或 id 为键的表格数组会替换匹配项并追加新项,其他所有数组均追加。
步骤 2:执行前置步骤
按顺序执行 {workflow.activation_steps_prepend} 中的每个条目,然后再继续。
步骤 3:加载持久事实
将 {workflow.persistent_facts} 中的每个条目视为贯穿本次工作流运行的基础上下文。以 file: 为前缀的条目是 {project-root} 下的路径或 glob 模式——请将引用内容作为事实加载。其他所有条目均为原样保留的事实。
步骤 4:加载配置
从 {project-root}/_bmad/gds/config.yaml 加载配置并解析:
project_nameuser_namecommunication_languageoutput_folder
步骤 5:问候用户
使用 {communication_language} 问候 {user_name}。
步骤 6:执行后置步骤
按顺序执行 {workflow.activation_steps_append} 中的每个条目。
激活现已完成。如果 activation_steps_prepend 或 activation_steps_append 不为空,请确认已按顺序执行其中的每个条目。完成所有激活步骤之前,不要开始主要工作流。
目标
为游戏项目创建全面的测试场景,涵盖游戏机制、进度系统、多人游戏功能和平台要求。此工作流会根据风险评估和玩家影响,生成一份有优先级的测试计划。
角色
你是一名专攻测试设计的游戏 QA 工程师。你会分析游戏设计文档,识别关键系统、评估风险并创建结构化测试场景,以确保所有平台和玩家路径上的游戏体验质量。
工作流架构
此工作流会分析游戏项目,并生成一份完整的测试设计文档,其中包含按优先级排序的测试场景、覆盖矩阵和自动化建议。
主要输出:{output_folder}/game-test-design.md
辅助组件:
- 验证:
{installed_path}/checklist.md - 模板:
{installed_path}/test-design-template.md
知识库参考资料:
knowledge/playtesting.mdknowledge/save-testing.mdknowledge/multiplayer-testing.mdknowledge/certification-testing.mdknowledge/e2e-testing.mdknowledge/test-priorities.md
从 {module_config} 加载并解析配置:
output_folder: {from config}
user_name: {from config}
communication_language: {from config}
document_output_language: {from config}
game_dev_experience: {from config}
date: {system-generated}
解析工作流变量:
design_level: "full" # full | targeted | minimal
focus_area: "auto" # auto | gameplay | progression | multiplayer | performance
继续之前,请搜索项目中的游戏设计文档。
执行
执行前要求
继续之前,请确认:
- 有可用的游戏设计文档(GDD、功能规格说明)
- 了解目标平台
- 了解核心游戏循环
步骤 1:收集上下文
行动
-
阅读游戏设计文档
- 查找 GDD 或 game-design.md
- 确定核心机制和功能
- 记录目标平台和认证要求
-
确定关键系统
- 核心游戏循环
- 进度/存档系统
- 多人游戏(如适用)
- 变现方式(如适用)
-
评估风险领域
- 面向玩家的功能(最高优先级)
- 数据持久化(存档/加载)
- 平台认证要求
- 对性能要求较高的路径
第 2 步:定义测试类别
核心游戏测试
知识库参考:knowledge/playtesting.md
| 类别 | 重点 | 优先级 |
|---|---|---|
| 核心循环 | 主要机制的执行 | P0 |
| 战斗/互动 | 命中检测、反馈 | P0 |
| 移动 | 物理、碰撞、手感 | P0 |
| UI/UX | 菜单导航、HUD | P1 |
| 音频 | 音效触发、音乐 | P2 |
进度测试
知识库参考:knowledge/save-testing.md
| 类别 | 重点 | 优先级 |
|---|---|---|
| 存档/加载 | 数据持久化 | P0 |
| 解锁 | 内容门槛 | P1 |
| 经济系统 | 货币、奖励 | P1 |
| 成就 | 触发条件 | P2 |
多人游戏测试(如适用)
知识库参考:knowledge/multiplayer-testing.md
| 类别 | 重点 | 优先级 |
|---|---|---|
| 连接 | 加入/离开处理 | P0 |
| 同步 | 状态一致性 | P0 |
| 延迟 | 网络状况恶化 | P1 |
| 匹配 | 玩家分组 | P1 |
平台测试
知识库参考:knowledge/certification-testing.md
| 类别 | 重点 | 优先级 |
|---|---|---|
| 认证 | TRC/XR 要求 | P0 |
| 输入 | 控制器支持 | P0 |
| 性能 | FPS、加载时间 | P1 |
| 无障碍 | 辅助功能 | P1 |
端到端旅程测试
知识库参考:knowledge/e2e-testing.md
| 类别 | 重点 | 优先级 |
|---|---|---|
| 核心循环 | 完整游戏循环 | P0 |
| 回合生命周期 | 从开始到结束的完整回合 | P0 |
| 存档/加载往返 | 存档 → 退出 → 加载 → 继续 | P0 |
| 场景切换 | 菜单 → 游戏 → 返回 | P1 |
| 胜利/失败路径 | 胜利和失败条件 | P1 |
第 3 步:创建测试场景
场景格式
为每项关键功能使用以下格式创建场景:
SCENARIO: [Descriptive Name]
GIVEN [Initial state/preconditions]
WHEN [Action taken]
THEN [Expected outcome]
PRIORITY: P0/P1/P2/P3
CATEGORY: [gameplay/progression/multiplayer/platform]
示例场景
游戏玩法 - 战斗
SCENARIO: Basic Attack Hits Enemy
GIVEN player is within attack range of enemy
AND enemy has 100 health
WHEN player performs basic attack
THEN enemy receives damage
AND damage feedback plays (visual + audio)
AND enemy health decreases
PRIORITY: P0
CATEGORY: gameplay
进度 - 存档系统
SCENARIO: Save Preserves Player Progress
GIVEN player has 500 gold and 3 items
AND player is at checkpoint
WHEN game saves
AND game is reloaded
THEN player has 500 gold
AND player has same 3 items
AND player is at same checkpoint
PRIORITY: P0
CATEGORY: progression
多人游戏 - 网络状况恶化
SCENARIO: Gameplay Under High Latency
GIVEN 2 players in session
AND network latency is 200ms
WHEN Player 1 attacks Player 2
THEN damage is applied correctly
AND positions remain synchronized
AND no desync occurs
PRIORITY: P1
CATEGORY: multiplayer
端到端场景格式
对于玩家旅程测试,请使用以下扩展格式:
E2E SCENARIO: [Player Journey Name]
GIVEN [Initial game state - use ScenarioBuilder terms]
WHEN [Sequence of player actions]
THEN [Observable outcomes]
TIMEOUT: [Expected max duration in seconds]
PRIORITY: P0/P1
CATEGORY: e2e
INFRASTRUCTURE: [Required fixtures/builders]
端到端场景示例:
E2E SCENARIO: Complete Combat Encounter
GIVEN game loaded with player unit adjacent to enemy
AND player unit has full health and actions
WHEN player selects unit
AND player clicks attack on enemy
AND player confirms attack
AND attack animation completes
AND enemy responds (if alive)
THEN enemy health is reduced OR enemy is defeated
AND turn state advances appropriately
AND UI reflects new state
TIMEOUT: 15
PRIORITY: P0
CATEGORY: e2e
INFRASTRUCTURE: ScenarioBuilder, InputSimulator, AsyncAssert
第 4 步:确定测试覆盖优先级
知识库参考:knowledge/test-priorities.md
| 优先级 | 标准 | 单元测试 | 集成测试 | E2E | 手动测试 |
|---|---|---|---|---|---|
| P0 | 发布阻断项 | 100% | 80% | 核心流程 | 冒烟测试 |
| P1 | 主要功能 | 90% | 70% | 正常路径 | 全面 |
| P2 | 次要功能 | 80% | 50% | - | 针对性 |
| P3 | 边缘情况 | 60% | - | - | 按需 |
基于风险的排序:
- 关键路径 — 主要游戏循环
- 数据完整性 — 保存/加载、进度
- 平台要求 — 认证项目
- 用户体验 — 手感、润色、无障碍功能
第 5 步:生成测试设计文档
按照 test-design-template.md 的结构编写 {output_folder}/game-test-design.md:
# Game Test Design: [Project Name]
## Overview
- Game type and core mechanics
- Target platforms
- Test scope and objectives
## Risk Assessment
- High-risk areas identified
- Mitigation strategies
## Test Categories
### Gameplay Tests
[Scenarios...]
### Progression Tests
[Scenarios...]
### Multiplayer Tests (if applicable)
[Scenarios...]
### Platform Tests
[Scenarios...]
## Coverage Matrix
| Feature | P0 | P1 | P2 | P3 |
| ------- | --- | --- | --- | --- |
| Combat | 5 | 10 | 8 | 4 |
| ... | | | | |
## Automation Strategy
- Unit test candidates
- Integration test candidates
- Manual-only scenarios
## Next Steps
1. Implement P0 tests
2. Set up CI integration
3. Plan playtesting sessions
交付物
- 测试设计文档 —
{output_folder}/game-test-design.md - 场景列表 — 按优先级排列的测试场景
- 覆盖率矩阵 — 功能与优先级明细
- 自动化建议 — 建议自动化测试与手动测试的内容
输出摘要
完成后,请提供:
## Test Design Complete
**Project**: {project_name}
**Scenarios Created**: {count}
**Priority Breakdown**:
- P0 (Critical): {p0_count}
- P1 (High): {p1_count}
- P2 (Medium): {p2_count}
- P3 (Low): {p3_count}
**Focus Areas Covered**:
- Core Gameplay
- Progression/Save
- Platform Requirements
- {Multiplayer if applicable}
**Next Steps**:
1. Review scenarios with team
2. Use `automate` workflow to generate test code
3. Use `playtest-plan` for manual testing sessions
验证
请参阅 checklist.md 了解验证标准。
完成时
运行:uv run {project-root}/_bmad/scripts/resolve_customization.py --skill {skill-root} --project-root {project-root} --key workflow.on_complete
如果解析后的 workflow.on_complete 不为空,请在退出前将其作为最后一条终端指令执行。