QA 测试工程

游戏QA与软件测试的完整知识体系

一、概述

QA(Quality Assurance)测试工程是软件开发生命周期中的关键环节,涵盖从需求分析到发布验证的全流程质量保障。本技能整合自动化代码检查手动测试执行能力,提供完整的测试解决方案。

QA vs QC vs 测试

  • QA(质量保证):预防缺陷的过程导向活动
  • QC(质量控制):发现缺陷的产品导向活动
  • 测试:QC的一种手段,通过执行来发现缺陷

二、核心能力

2.1 测试规划

2.2 自动化代码检查

静态分析游戏代码,检测常见问题:

检查项 说明
HTML结构 检查DOCTYPE声明、基本HTML结构
Canvas初始化 检测2D上下文是否正确获取
游戏循环 检查requestAnimationFrame是否存在
事件监听 检测键盘/鼠标事件监听
音频系统 检查AudioContext配置
代码安全 检测未定义变量风险、无限循环风险

检查结果级别

使用方法

cd /root/.openclaw/workspace/skills/bug-checker
./check-games.sh

已知的设计选择(非BUG)

部分警告是正确的设计选择,而非Bug:

游戏 警告 实际 状态
编程机器人 可能缺少游戏循环 回合制编程游戏,使用事件驱动渲染 ✅ 设计正确
六指迷笛 可能缺少Canvas初始化 使用DOM元素构建界面 ✅ 设计正确

2.3 手动测试执行

核心测试项

测试项 说明
加载测试 游戏能否正常加载,无报错
第一关验证 第一关能否正常开始和完成
控制响应 键盘/鼠标/触摸是否响应
游戏逻辑 核心玩法逻辑是否正常
音频测试 音效和背景音乐是否正常播放
视觉检查 UI显示、动画、特效是否正常

测试清单(20款游戏)

  1. 重力反转跑酷
  2. 记忆迷宫
  3. 颜色匹配射击
  4. 链式反应
  5. 时间回溯
  6. 编程机器人
  7. 资源塔防
  8. 光影谜题
  9. 卡牌合成
  10. 量子分裂
  11. 磁力吸附
  12. 波形战士
  13. 镜像迷宫
  14. 热胀冷缩
  15. 电路连接
  16. 声波迷宫
  17. 像素画
  18. 节奏跑酷
  19. 引力弹弓
  20. 六指迷笛

测试记录模板

游戏名称: [填写]
测试日期: [填写]
浏览器: [填写]

测试结果:
  [ ] 能正常加载
  [ ] 第一关正常
  [ ] 控制响应
  [ ] 逻辑正常
  [ ] 能完成第一关
  [ ] 音频正常

发现问题:
  [填写具体问题]

严重程度: [ ]轻微 [ ]中等 [ ]严重

2.4 Bug跟踪与管理

严重程度分级标准

级别 说明 示例
致命 系统崩溃/数据丢失 游戏启动即崩溃
严重 核心功能不可用 无法保存进度
一般 次要功能异常 UI显示错位
轻微 不影响使用的瑕疵 文字拼写错误

三、测试基础理论

3.1 核心原则

3.2 Shift-Left Testing(左移测试)

尽早开始测试

在需求阶段就介入,发现越早修复成本越低。发布后发现问题的修复成本是开发阶段的 100倍

其他重要原则:

四、测试类型

4.1 功能测试

验证软件功能是否符合需求规格说明。

4.2 兼容性测试

4.3 性能测试

4.4 用户体验测试

五、游戏QA专项

5.1 游戏测试用例框架

🔹 基于场景的测试框架

模拟真实玩家可能遇到的各种情况来设计测试用例。

示例场景:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
场景:玩家在高山顶端遇到敌人
前提:角色HP>50,装备近战武器
步骤:
  1. 角色攀登至最高点
  2. 触发敌人遭遇战
  3. 在狭窄地形进行战斗
预期:
  ✓ 角色移动不受地形阻挡
  ✓ 战斗判定正常
  ✓ 跌落检测生效

🔹 关键路径测试框架

专注于验证游戏中最重要和最常用的功能,确保游戏基本可玩性。

关键路径清单:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
□ 游戏启动 → 主菜单 → 开始游戏
□ 角色创建/选择
□ 新手教程完成
□ 第一个任务/关卡完成
□ 存档功能
□ 读档功能
□ 核心玩法循环验证

🔹 数据驱动测试框架

使用大量预定义数据验证数值系统、平衡性和性能。

角色属性测试数据示例:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
| 等级 | 经验值 | 预期HP | 预期攻击 | 状态 |
|------|--------|--------|----------|------|
| 1    | 0      | 100    | 10       | 通过 |
| 50   | 125000 | 2500   | 150      | 通过 |
| 99   | 999999 | 9999   | 500      | 通过 |
| 100  | MAX    | ?      | ?        | 边界测试 |

🔹 探索性测试框架

自由探索游戏,根据经验和直觉发现潜在问题。

测试人员扮演"破坏者"角色:尝试设计者没预料到的操作,比如在不改跳跃的地方跳跃、以意外顺序完成任务。

🔹 兼容性测试框架

确保游戏在各种硬件、软件环境下正常运行。

测试维度 测试项 优先级
硬件 GPU型号、内存大小、CPU性能 P0
操作系统 Windows 10/11, macOS, Linux P0
分辨率 1080p, 2K, 4K, 超宽屏 P1
外设 手柄( Xbox/PS/Switch ), 键鼠, 触屏 P1

5.2 游戏测试类型

测试类型 测试内容 常用工具
功能测试 核心玩法、UI交互、任务系统 TestRail, Xray
性能测试 帧率、加载时间、内存使用 Unity Profiler, RenderDoc
兼容性测试 多平台、多配置适配 BrowserStack, 真机
本地化测试 翻译质量、文本适配、文化合规 Lokalise, Crowdin
安全性测试 反作弊、数据安全、API安全 Burp Suite, Cheat Engine
用户体验测试 难度曲线、操作流畅度、趣味性 问卷、访谈、数据分析

六、软件QA通用

6.1 测试流程

  1. 需求分析 - 理解用户故事、验收标准
  2. 测试计划 - 范围、资源、排期、风险
  3. 测试设计 - 编写测试用例、准备测试数据
  4. 测试执行 - 手动/自动化测试
  5. 缺陷报告 - 记录、分类、跟踪
  6. 回归测试 - 修复后验证
  7. 发布验证 - 最终确认
  8. 持续监控 - 线上质量跟踪

6.2 Bug报告标准

高质量Bug报告要素

  • 标题:简明扼要描述问题
  • 环境:版本、系统、配置
  • 重现步骤:精确到每一步操作
  • 预期结果:应该发生什么
  • 实际结果:实际发生了什么
  • 附件:截图、录屏、日志
  • 严重级别:Blocker/Critical/Major/Minor
  • 优先级:P0/P1/P2/P3
Bug报告示例:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
标题:结算界面金币数值显示为负数

环境:
  - 版本:v1.2.3
  - 平台:Windows 11
  - 分辨率:1920x1080

重现步骤:
  1. 进入第5关
  2. 收集所有金币(共150枚)
  3. 完成关卡进入结算界面
  4. 快速连续点击"下一关"按钮

预期结果:
  金币显示为150,点击下一关正常跳转

实际结果:
  金币显示为-4294967146(溢出)
  点击下一关无响应

附件:screenshot_01.png, game_log.txt

严重级别:Major
优先级:P1
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

6.3 测试设计技术

等价类划分

将输入数据划分为若干等价类,每类选取一个代表值测试。

示例:年龄输入框(要求18-60岁)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
有效等价类:18-60岁 → 选30岁测试
无效等价类:
  - 小于18 → 选10岁测试
  - 大于60 → 选70岁测试
  - 非数字 → 选"abc"测试
  - 空值 → 选""测试

边界值分析

边界是最容易出错的地方,重点测试边界值及其附近值。

接上例:年龄输入框(18-60岁)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
边界值测试:17, 18, 19, 59, 60, 61

状态转换测试

适用于有明确状态流转的系统(如订单、任务)。

四、自动化测试

4.1 自动化策略

什么应该自动化?

  • ✅ 重复执行的回归测试
  • ✅ 数据驱动的大量组合测试
  • ✅ 性能/负载测试
  • ✅ API接口测试

什么不应该自动化?

  • ❌ 只执行一次的测试
  • ❌ UI频繁变化的功能
  • ❌ 需要主观判断的UX测试
  • ❌ 探索性测试

4.2 常用工具

用途 工具 适用场景
UI自动化 Selenium, Playwright, Cypress Web应用
移动端 Appium, Espresso, XCUITest iOS/Android App
API测试 Postman, REST Assured, JMeter 接口验证、性能测试
单元测试 Jest, pytest, JUnit 代码级测试
游戏专用 Unity Test Framework, Unreal Automation Unity/Unreal项目

五、质量指标

5.1 常用度量

六、最佳实践

  1. 测试即文档:清晰的测试用例就是最好的功能文档
  2. 可重复性:任何人按步骤执行都能复现结果
  3. 独立性:一个测试失败不影响其他测试
  4. 原子性>/strong>:一个测试只验证一个概念
  5. 及时反馈:发现问题立即报告,不要等待
  6. 持续学习:每个缺陷都是改进测试的机会