游戏测试教程:如何测试移动/桌面应用程序

⚡ 智能摘要

游戏测试是应用于电子游戏的质量控制过程,旨在发现游戏玩法、图形、音频和网络方面的缺陷,以确保交付给玩家的游戏版本保持稳定、合规且令人愉快。

  • 🔘 生命周期分为三个阶段: 预生产、生产、测试​​和部署各自都有其自身的验证活动。
  • ☑️ 九种核心类型: 功能性检查、兼容性检查、性能检查、一致性检查、本地化检查、浸泡测试、恢复测试、安全性检查和多人游戏检查构成了标准套件。
  • 本质上是重复性的: 每次新版本都可能重新引入缺陷,因此每次原型制作都会重新审视测试文档。
  • 🧪 白盒覆盖: Code 通过检查、焦点测试、数据分析、路径和流量测试、算法和人工智能分析来深入了解发动机内部。
  • 辅助游戏: 自适应技术用音频提示代替视觉刺激,帮助有视觉、听觉、认知或运动障碍的玩家。
  • 📊 指标很重要: DAU/MAU、会话数、下载排名、留存群体和帧率可以量化版本是否真正有效。

移动和桌面应用程序的游戏测试流程涵盖功能、性能和合规性检查。

什么是游戏测试?

游戏测试 游戏测试是一种用于测试电子游戏质量的软件测试流程。游戏测试的主要目标是识别和发现电子游戏中的缺陷和漏洞,并提高其稳定性和性能。游戏测试是游戏开发过程中的一个重要环节,有助于确保最终发布的电子游戏没有漏洞。

在理解各项具体技术之前,了解测试在更广泛的开发周期中的位置会有所帮助。

游戏开发生命周期

预生产: 在此阶段,游戏构思、故事板、功能特性、需求分析和文档都将完成。此阶段包括技术设计文档和功能规格说明、游戏架构、帧叠加和动画。需要考虑以下几个方面:

  • 音乐、镜头(缩放、回放、电影视角)、玩家和动作属性
  • 游戏流程逻辑、规则和条件,以达到下一级别
  • 对象和事件触发器、得分、玩家移动和位置、玩家统计数据
  • 非交互式序列、特效、标题画面、多按钮操作
  • 游戏手柄、电影片段、震动/冲击效果、法律文本、按键功能使用、模拟和数字模式的使用

下面展示了三个阶段以及每个阶段中的活动。

游戏开发生命周期图,展示了预制作、制作、测试和部署阶段。
游戏开发生命周期

生产: 在这个阶段,将进行实际的编码工作。该阶段包括各个模块的编码和集成。

测试和部署: 在此阶段,我们将执行功能测试、回归测试以及 Alpha、Beta 和 Gold 里程碑测试。此外,我们还将使用移动游戏测试工具进行覆盖率和流程测试、数据完整性测试、算法特定测试、路径测试和增量测试。

游戏测试与其他软件测试有何不同

游戏测试是一个重复性的过程——每个新版本都可能存在漏洞,必须进行彻底测试。

无论游戏规模大小或开发所需时间长短,所有游戏测试都遵循基本结构。

质量保证专业人员需要研究游戏规则和需求,并理解游戏的整体组件架构、文件架构、流程、文件结构以及相关的依赖关系。每次推出新的游戏原型时,都需要重新审视测试文档,以反映规范的任何变更、新的游戏测试用例以及新的配置支持。视频游戏测试人员还应确保没有引入任何新的问题。

游戏测试员的工作内容包括:

  • 根据预期目的和目标受众对需求进行分类。
  • 确定用户和系统需求,并将其分类为功能需求、非功能需求和领域需求。
  • 确定功能性需求和非功能性需求的可测试项、不可测试项、目标和衡量标准。
  • 检查功能需求是否完整、一致且易于理解。
  • 识别可定制的需求和相互冲突的需求。
  • 识别相互依赖的需求,这是游戏测试的核心工作之一。
  • 根据独特性、复杂性和关键性对需求进行优先级排序。
  • 确定游戏的主题、角色、动画、人工智能、过场动画、镜头视角和游戏玩法。

如果你想成为一名游戏测试员,这里有一个值得一看的免费教程: 如何成为电子游戏测试员.

游戏测试的类型

以下是一些常用的游戏测试方法。每种方法都针对不同类型的缺陷,而一款准备发布的游戏通常会经过所有这些测试,而不是从中选择一种进行测试。

1)功能测试

功能性质量保证测试人员会查找游戏或其用户界面和图形中的常见问题,例如游戏机制问题、稳定性问题和游戏资源完整性问题。用户界面测试则确保游戏的易用性。这与以下学科相同: 功能测试 在其他任何应用中,都应用于游戏规则而不是业务规则。

计费示例: 检查内容包括颜色和背景、菜单结构、屏幕方向和屏幕分辨率、字体大小、对齐错误、可用性、系统导航(例如加载时间、超时和显示)、排序、确认信息、游戏序列、动画和音频元素、说明和对话信息。此外,还涵盖用户交互、用户界面、交易测试、手机摄像头校准和精度测试、屏幕分辨率、移动响应式设计测试以及音频质量测试。

2)兼容性测试

检查游戏在不同设备以及不同硬件和软件配置上的兼容性。对于游戏而言,广泛的设备覆盖范围比大多数应用程序更为重要,因为GPU驱动程序和屏幕宽高比会影响游戏的渲染方式。参见 兼容性测试 适用于一般技术。

计费示例: 在所有支持的游戏主机、台式机和移动设备上安装和卸载游戏。

3)性能测试

对游戏的整体性能进行检查。进行性能调优以优化游戏速度。更广泛的实践内容将在下文中介绍。 性能测试以及移动设备特有的角度 移动应用程序性能测试.

性能测试期间检查的重要参数:

  • 客户端和服务器的响应时间、事务完成时间、峰值负载性能、寿命、网络覆盖范围、内存泄漏、低内存、低电池、下载应用程序所需时间、同时(多用户)访问应用程序服务器、速度、吞吐量、可靠性和可扩展性。
  • 电池消耗和图形性能: 测量手机游戏的电池消耗。电池消耗必须在长时间运行下保持最佳状态,并且在不同设备的不同高负载下,游戏响应也应令人满意。
  • 处理器和内存限制: 性能计数器用于测量应用程序的 CPU 和内存消耗情况。
  • 网络连接: 测量移动游戏在不同网络类型(Wi-Fi、3G、4G、5G)下的响应时间。它能全面反映游戏在不稳定网络环境下的性能表现,并检查移动设备、数据中心和云端之间的连接情况。高峰时段、连接抖动、数据重复、丢包和数据碎片化等问题都会被监测。
  • 测试手机游戏性能,特别是大型多人在线游戏(MMO游戏)的性能。

4)一致性/合规性测试

这涵盖了市场准则合规性(例如,苹果应用商店政策)和企业政策合规性(例如,禁止内容)。合规性也可能涉及监管机构,例如 PEGI 和 ESRB。游戏的目标内容评级是特定的,如果存在不符合目标评级的不良内容,则会被识别并上报。即使提交的许可申请中仅存在一项违规,也可能导致游戏被拒,并产生额外的测试和重新提交费用。

计费示例: 如果游戏将在欧洲国家发行,请测试 PAL 制式转换;如果游戏是为北美制作的,请测试 NTSC 制式转换。

5)本地化测试

本地化测试 当游戏面向全球市场时,这一点就显得至关重要。游戏标题、内容和文本需要翻译成多种语言,并在各种设备上进行测试。借助基于云的设备访问和测试自动化,这些测试可以快速完成。

计费示例: 针对中东/北非地区的本地化需求、阿拉伯语本地化(从右到左的文本支持、双向显示)、伪本地化测试、东亚语言的双字节字符、本地时间和日期、货币、地址格式和其他本地要求。

6)浸泡试验

这种游戏自动化测试技术包括让游戏在各种运行模式下长时间运行——例如,空闲、暂停或停留在标题画面。长时间运行可以识别内存泄漏或舍入误差。

计费示例: 游戏开始后,角色会被设置为静止不动24小时。这项技术用于检测由内存泄漏和游戏引擎中的其他故障引起的崩溃。

7)回收率测试

在软件方面, 恢复测试 检查应用程序从崩溃、硬件故障和其他类似故障中恢复的能力。程序会强制应用程序发生故障,然后观察其在故障条件和环境下的恢复情况。

计费示例: 在游戏应用程序运行时,突然重启游戏主机并验证数据完整性。

8)安全测试

安全测试旨在检验软件在面临外部威胁时的安全性。它涵盖数据保护、抵御外部威胁、不受控制的系统访问限制、数据泄露、操作系统缺陷、通信系统缺陷以及薄弱的加密算法等问题。

计费示例: 改变一个 URL 从游戏网站的 /login 到 /play 不应该允许直接访问游戏。

9)其他游戏测试

测试真实或虚拟角色。在多人视频游戏中,与服务器的连接和游戏状态的同步是需要测试的两个关键领域。

计费示例: 多人3D赛车游戏。

测试游戏状态更新、好友邀请和高级礼物分享等新功能,以确保用户获得丰富的游戏体验。

计费示例: Facebook、博客。

声音测试

测试文件加载是否出错,收听音频文件是否存在错误或失真,并使用 CC 分析器分析色彩解说。

数据库和游戏统计数据

使用调试功能验证数据库,以调查游戏是否正确使用数据。确保数据加载到正确的位置并显示正确的信息。

白盒测试

游戏白盒测试侧重于移动游戏的架构、集成和系统方面。

  1. Code 检查: 对源代码进行审查,并分析程序逻辑、常见编程错误以及是否符合编码标准。
  2. 焦点测试: 将代码块输入到隔离模块中,并分析输出结果。
  3. 数据分析: 对不同模块的数据使用、解释和处理进行分析和验证。
  4. 路径和流量测试: 对象按正确的顺序执行。
  5. 算法特定测试: 通过在代码中设置数据变量和数据值并在运行时环境中执行代码来测试特定的游戏场景或功能。
  6. 人工智能 分析: 生成人工智能组件可编程动作和战术的运行统计数据。验证结果以检查是否所有可编程动作都已使用。例如:单板滑雪板的侧握,以及多方向动作中的组合拳或踢腿等战术。

使用自适应技术的辅助游戏

辅助游戏也称为无障碍游戏。其功能采用自适应技术设计,旨在帮助患有各种残障人士,例如低视力、视力模糊、失明、色觉障碍以及言语、听力、认知、运动和行动障碍。验证方法遵循与此相同的原则。 可访问性测试 在主流软件中。

《方位指示》(CD)和《伦敦塔》(TOL)是两款广受欢迎的游戏,它们都经过修改,以适应视障用户。在这些游戏中,视觉刺激被音频输入所取代。

电子游戏测试员在测试此类游戏时应注意以下事项:

  1. 颜色应该按规律闪烁,每种颜色都应该有相应的色调。
  2. 每种颜色都应伴有可听见的音调。
  3. 视觉数据需要用文字描述,以便视力障碍玩家在使用屏幕阅读器接收数据时不会遇到问题。
  4. 玩家应该能够在游戏中听到三维声音,并且必须能够使用触摸屏、3D 音频和空间化声音来探索游戏世界。

测试人员应该了解的游戏指标

单凭测试结果无法判断版本发布是否成功。以下指标是测试人员需要结合缺陷报告阅读的数据。

日活跃用户/月活跃用户(DAU/MAU): 每日活跃用户数与月活跃用户数的比值,也常被称为用户粘性系数。

会议: 用户每次打开应用都算作一次会话。这里重点关注的是每位日活跃用户 (DAU) 的平均会话数。

下载排名: 游戏在特定应用商店(iOS、iOS、iOS)中的排名 Android 根据月度游戏下载量计算,美国游戏制造商排名前十的厂商是:Play。

保留: 一个非常重要的指标 Android 担任一款免费游戏的测试员。为了计算用户留存率,需要根据应用下载日期将用户分成不同的群组。

性能指标: 这些 trac性能指标用于衡量在线或持久性游戏的性能——即游戏在客户端硬件平台上的帧速率,或者在游戏服务器上的稳定性。性能指标可用于监控功能变化和更新。

游戏测试中的关键风险

以下风险通常会导致技术上可行的项目变成商业上令人失望的项目。

  1. 这款游戏未能为目标受众创造引人入胜的体验。
  2. 这款游戏并非以玩家为中心的设计。
  3. 缺乏趣味性和令人上瘾的游戏体验。
  4. 这款游戏既不独特,也不具竞技性,节奏也不快。
  5. 游戏失败的原因包括技术问题、功能损坏、严重漏洞、糟糕的音乐和音效,或者视频质量差。
  6. 游戏开发成本超出预算。
  7. 美术设计和游戏玩法都不简单。

常见问题

每次构建完成后,它都会重新运行之前通过的测试用例,以确认修复或新功能没有破坏任何现有功能。由于游戏版本每天都会更新,回归测试套件通常会重点关注高风险区域,例如存档文件、登录、匹配系统和游戏内经济系统。

机器学习机器人会在夜间运行数千个会话,以查找软锁和无法访问的几何体,对重复的崩溃报告进行聚类,并通过比较渲染帧来标记视觉故障。人类测试人员仍然掌握着游戏趣味性的判断权,这是目前任何模型都无法取代的。

是的,对于脚本层来说,Copilot 可以加快编写引擎测试框架、数据驱动参数集和日志解析器的速度。但它无法判断游戏平衡性或难度曲线,因此生成的测试仍然需要测试人员来定义正确的测试结果。

测试人员不使用脚本进行游戏,刻意尝试各种奇特的顺序和规则,以发现脚本中未预料到的漏洞。这种方法是对脚本化测试的补充,尤其适用于新关卡、物理交互以及任何需要玩家发挥创造力的内容。

典型的堆叠对缺陷 tracker 配备测试管理工具、引擎原生自动化框架、GPU 或 CPU 分析器、网络共享等。ping 实用程序,以及覆盖范围真实的设备云 移动测试 器件矩阵。

Alpha 版本表示功能齐全但尚不完善。Beta 版本表示内容已锁定,重点转向缺陷修复和平衡性调整,通常会与外部人员合作。Gold 版本表示版本已获准发布,并已提交平台认证。

请提供版本号、平台和设备、详细的重现步骤、出现频率、预期行为与实际行为的对比,以及包含日志文件的视频片段。游戏是视觉化的,因此一段简短的录像可以消除仅靠文字步骤难以解决的歧义。

游戏测试旨在根据规范查找缺陷。而试玩测试则从具有代表性的玩家群体中收集关于游戏难度、节奏和乐趣的设计反馈。前者确保游戏的正确性,后者则确保游戏的吸引力,而工作室在游戏发布前需要两者兼备。

总结一下这篇文章: