适用于 Windows 测试用例的游戏:Windows XP、Windows Vista、Windows 7 和 Windows 8 上的游戏的最佳做法
本文提供适用于 Windows 的游戏的测试用例。
如何使用本文
本文有三个main部分:
-
测试要求
-
本文档中的每个测试要求都有四个main部分:一个标题和一个表,其中包含左列、右上、右下) (三个显著部分。
-
Title
-
测试用例的名称。
-
框,最左侧列
-
应用测试用例的操作系统的名称。
-
框,右上
-
测试用例的简要摘要。
-
框,右下角
-
实际测试用例的详细信息。
-
-
示例测试脚本
-
本部分是使用测试要求作为指南时,典型测试通过将遵循的顺序示例。
-
测试工具说明
-
本部分包含有关用于验证测试要求中通过或失败条件的每个测试工具的详细说明。
测试要求
1. 游戏要求
1.1 Windows 游戏资源管理器
Windows 7 Windows Vista |
该游戏必须在 Windows Vista 和 Windows 7 上的游戏资源管理器中可见。 选中后,游戏还必须显示正确的元数据。 安装不得创建在桌面、“开始”菜单或任何其他位置启动游戏的快捷方式。 不得创建用于删除的任务和快捷方式。 |
|
1.2 Windows 家庭安全/家长控制
Windows 7 Windows Vista |
游戏必须在“标准用户”的上下文中执行。 家长控制必须能够阻止游戏。 验证 GDF 是否具有 EXE 名称。 |
|
1.3 Windows Vista 丰富已保存游戏
此要求已停用。
1.4 适用于 Windows 的 Xbox 360 通用控制器 [条件要求]
Windows 7 Windows Vista Windows XP |
支持游戏板控制器的游戏必须使用 XInput API 支持可用于 Windows 的 Xbox 360 控制器。 对常见控制器触发器和按钮的所有引用都必须使用 Xbox 360 名称。 |
注意:
|
1.5 多纵横比和分辨率
Windows 7 Windows Vista Windows XP |
游戏必须至少支持以下纵横比和关联的屏幕分辨率:
|
找到游戏的视频选项, (这可能在我们的游戏) 。
注意:
|
1.6 Windows Media Center
此要求已停用。
1.7 Direct3D [条件要求]
(OS) | 要求 |
---|---|
Windows 7 Windows Vista Windows XP |
如果游戏使用 Direct3D,则支持的最低版本必须为 Direct3D 9,而 Direct3D 必须是任何显示配置选项的默认值。 |
|
1.8 启用高 DPI 感知
Windows 7 Windows Vista |
启用 DPI 缩放后,游戏及其安装程序必须正确运行,不会出现视觉问题。 |
|
2. 安全性和兼容性
2.1 遵循用户帐户控制准则
Windows 7 Windows Vista |
应用程序附带的每个可执行文件 (.EXE 扩展名) 都必须具有定义其执行级别的嵌入式清单:
|
|
2.2 支持 x64 版本的 Windows
Windows 7 Windows Vista |
若要保持与 x64 版本的 Windows 的兼容性,
注意: |
手动测试
|
2.3 对文件进行签名
Windows 7 Windows Vista Windows XP |
所有可执行代码文件 (例如,.exe 和 .dll 扩展) 都必须使用 Authenticode 证书进行签名。 如果使用 Windows Installer,则必须对安装程序的程序包文件 (.msi 文件) 进行签名。 |
手动测试
|
2.4 对驱动程序进行签名
Windows 7 Windows Vista Windows XP |
游戏安装的任何内核模式驱动程序都必须使用公开有效的 Authenticode 证书进行签名。 游戏安装的任何内核模式硬件设备驱动程序都必须具有通过 Windows 硬件质量实验室 (WHQL) 或驱动程序可靠性签名 (DRS) 程序获取的 Microsoft 签名。 |
手动测试
|
2.5 正确执行版本检查
Windows 7 Windows Vista Windows XP |
除非最终用户许可协议禁止在将来的操作系统上使用,否则游戏不得在 Windows 版本号更改中指示的情况下运行。 如果游戏应该失败,它必须通过向用户显示消息来优雅地执行此操作。 |
|
2.6 支持并发用户会话
Windows 7 Windows Vista Windows XP |
游戏必须支持标准 Windows 多任务方案。 |
在 Windows Vista 或 Windows 7 中创建名为 Toby 的标准用户帐户。 Start -> 控制面板 -> 添加或删除用户帐户 -> 创建新帐户
|
2.7 支持长名称
Windows 7 Windows Vista Windows XP |
如果游戏支持保存文件,则必须能够保存具有长名称和路径的文件。 游戏必须正确处理特殊的文件系统字符,如 \ / : * ? “在用于创建文件名或路径的任何用户输入字段中 < 或 >。 |
|
3. 安装
3.1 轻松安装
Windows 7 Windows Vista Windows XP |
具有传统安装的游戏必须在其设置用户界面中提供简化的路径。 |
|
3.2 支持安装用户帐户控制
Windows 7 Windows Vista |
游戏安装程序不得假定它在与用户相同的上下文中运行。 因此,游戏必须在首次运行时与安装分开执行每用户任务。 |
|
3.3 安装以更正文件夹
Windows 7 Windows Vista Windows XP |
默认情况下,游戏必须安装到 Program Files 文件夹。 用户数据必须在首次运行时写入,而不是在安装期间写入。 |
注意: |
3.4 正确安装 Windows 资源
Windows 7 Windows Vista Windows XP |
应用程序不得尝试安装受 Windows 资源保护 (WRP) 保护的文件或注册表项。 |
|
3.5 避免在安装过程中重新启动
Windows 7 Windows Vista Windows XP |
除非返回结果或 Microsoft 文档指示重新启动,否则游戏安装程序不应假定从重新分发包安装 Windows 组件需要重新启动。 |
注意: |
3.6 正确使用文件版本控制
Windows 7 Windows Vista Windows XP |
游戏安装程序必须正确检查,以确保安装最新的文件版本。 安装游戏时不得倒退您不生成或由您不生成的应用程序共享的任何文件。 |
|
3.7 支持自动运行 [条件要求]
Windows 7 Windows Vista Windows XP |
对于在 CD、DVD 或其他支持自动运行的可移动媒体上分发的游戏,首次插入光盘时,应用程序必须自动运行或提示用户安装游戏。
注意:
|
|
4. 可靠性
4.1 消除不必要的重启
(OS) | 要求 |
---|---|
Windows 7 Windows Vista |
所有应用程序安装程序都必须利用 Restart Manager API 来避免系统重启, (请参阅 要求 3.5) 。 |
4.2 消除应用程序验证程序故障
Windows 7 Windows Vista Windows XP |
在以下测试中,游戏不得生成在 Microsoft 应用程序验证程序 (AppVerifier) 版本 4.0 或更高版本下运行的故障:
|
使用工具:AppVerifier 4.0 (或更高版本)
注意: |
4.3 支持Windows 错误报告
Windows 7 Windows Vista Windows XP |
游戏必须仅处理已知和预期的异常,并且不得禁用Windows 错误报告。 如果错误 ((如访问冲突) )注入到游戏中,则必须允许Windows 错误报告报告崩溃。 |
使用工具:线程劫持者
|
Windows 7 Windows Vista Windows XP |
例如,) (.exe 或 .dll 文件的所有可执行文件都必须包含准确的产品名称、公司名称和文件版本。 |
|
Windows 7 Windows Vista Windows XP |
游戏的正常退出不得导致未知异常错误。 |
|
5. 示例测试脚本
这是使用上述测试要求作为指导的典型测试通过的示例。
5.1 工具
- AMD CPU 上的 32 位版本的 Windows Vista SP1 和/或 Windows 7
- Intel CPU 上的 32 位 Windows Vista SP1 和/或 Windows 7 版本
- AMD CPU 上的 64 位 Windows Vista SP1 和/或 Windows 7 版本
- Intel CPU 上的 64 位 Windows Vista SP1 和/或 Windows 7 版本
- AMD CPU 上的 32 位版本 Windows XP SP2
- Intel CPU 上的 32 位版本 Windows XP SP2
- 支持 1680 1050 的宽屏监视器
- 可用于 Windows 的 Xbox 360 控制器
5.2 预安装
Windows Vista 和 Windows 7:创建两个标准用户:Jane 和 Toby
Windows Vista 和 Windows 7:确保已启用用户帐户控制
创建 System32 的预安装快照
- 创建名为 G4Wtest 的目录
- 打开命令 窗口 (开始 -> 运行 -> cmd)
- 导航到 c:\windows\system32
- 键入 dir /o:-g /o:-d >> c:\G4Wtest\pregame.txt
Windows Vista 和 Windows 7:设置为 150% DPI [1.8]
继续 安装
5.3 安装
- 以用户简身份登录
- 将游戏光盘插入 CD/DVD 驱动器,验证“安装/运行”对话框是否自动启动 [3.7]
- 验证游戏安装过程是否提示用户 Jane 提升管理员凭据 [3.2]
- 验证游戏自动运行程序本身是否未提示用户 Jane 通过管理员凭据提升 [3.7]
- 验证游戏是否未显示 EULA) [3.1] (多个 End-User 许可协议
- 验证游戏是否显示“默认/轻松”和“自定义/高级”安装选项 [3.1]
- 验证“默认/轻松安装”选项是否绕过安装过程的所有用户输入选择, (选择安装文件夹、组件选择等。) [3.1]
- 验证游戏安装过程是否未提示进行 OS 组件设置 (DirectX 设置、C Run-Time 库等。) [3.1]
- 验证游戏安装过程是否未提示防火墙交互 [3.1]
- 验证游戏安装过程是否未遇到有关 OS 版本 [2.5] [4.2] 的错误
- 验证游戏安装过程是否未显示未签名的驱动程序对话框 () [2.4]
- 验证在安装过程中是否未显示 Windows 资源保护 (WRP) 对话框 [3.4]
- 验证安装后重新插入驱动器中的光盘是否不会导致安装再次自动开始
- 验证游戏是否不需要在安装后重新启动系统 [3.5]
- 验证是否可以将游戏安装为用户 Jane [3.2]
- 验证游戏是否自动运行,或者安装过程结束时是否存在启动器菜单 [3.1]
- 如果游戏在安装后自动运行,请跳到 运行时
- 如果游戏离开启动菜单,或未能卸载,请参阅安装后部分
5.4 安装后
验证游戏是否未在用户桌面上放置启动快捷方式 [1.1]
验证游戏是否未在“开始”菜单中放置启动快捷方式 [1.1]
验证游戏图标是否显示在 Windows 游戏资源管理器 [1.1] 中
验证底部的元数据 (发布者、开发人员、流派、发布日期、版本) 显示是否正确[1.1]
验证游戏图标是否在 Windows 游戏资源管理器中显示 Windows 体验索引 (WEI) 信息 [1.1]
验证 Windows 游戏资源管理器 [1.1] 中元数据的游戏超链接是否正常工作
验证游戏是否在 Windows 游戏资源管理器中显示准确的家长控制分级 [1.1]
创建 System32 的安装后快照
- 打开命令 Window (Start -> Run -> cmd)
- 导航到 c:\windows\system32
- 键入 dir /o:-g /o:-d >> c:\G4Wtest\postgame.txt
- 通过将 pregame.txt 与 postgame.txt 进行比较,验证游戏不会回归两个文档中列出的文件的任何文件版本 [3.6]
继续执行 运行时
5.5 运行时
运行时 1:如果存在启动菜单,请从那里启动游戏。 如果游戏在安装后自动运行或已从游戏启动器菜单启动,请执行以下操作:如果没有,请跳到 RUNTIME 2:
- 如果游戏允许) , (创建配置文件
- 启动新游戏
- 保存游戏
- 退出游戏
- 从游戏资源管理器启动游戏
- 验证游戏是否从游戏资源管理器图标 [1.2] 启动
- 验证游戏在启动时是否未提示输入管理员凭据 [1.2]
- 验证用户简帐户 [3.2] 是否可以访问用户配置文件和保存游戏
- 继续执行 RUNTIME 3
运行时 2:如果游戏未从游戏启动器菜单自动运行或显示启动,则为 [3.1] 失败;但是,测试可以正常继续:
- 从游戏资源管理器启动游戏
- 验证游戏是否从游戏资源管理器图标 [1.2] 启动
- 验证游戏在启动时是否未提示输入管理员凭据 [1.2]
- 继续执行 RUNTIME 3
运行时 3:如果游戏支持游戏板,请验证游戏是否将可用于 Windows 的 Xbox 360 控制器识别为输入设备 [1.4]
- 如果需要,请通过选项菜单启用控制器
- 使用 Xbox 360 名称验证游戏是否引用控制器按钮和触发器
- 验证游戏和菜单系统是否可通过可用于 Windows 的 Xbox 360 控制器
- 验证可用于 Windows 的 Xbox 360 控制器的行为是否符合接受的标准
将视频设置为 [1.5]:
- 验证游戏是否以 4:3 纵横比分辨率 (800 600 或 1024 768)
- 验证游戏是否以 16:9 纵横比分辨率 (1280 720)
- 验证游戏是否以 16:10 纵横比分辨率 (1680 1050、800 480 或 1152 720 运行)
- 验证更改分辨率时游戏是否提示用户
- 验证如果未在 15 秒内接受,则显示是否还原为上一设置
- 验证游戏是否不拉伸图片,进而呈现更广阔的视野区域
- 验证游戏是否未在游戏区域的左侧和右侧添加黑条
如果视频设置中可用,请验证游戏呈现选项是否默认为 Direct3D [1.7];否则,请继续执行 自动测试
如果出现提示或选项可用,请创建用户配置文件。 验证使用长文件名时游戏是否未遇到错误 [2.7]
启动新游戏,创建游戏保存,并验证在处理不受支持的文件系统字符时游戏是否未遇到错误 [2.7]
验证游戏是否在 Windows 桌面上正确使用 ALT+TAB [2.6]
- 通过单击“开始”-> “切换用户”来切换运行游戏的用户
- 以 Toby 身份登录
- 验证游戏是否以用户 Toby 的身份启动,同时仍以用户简身份运行 [2.6]
- 验证游戏在用户切换过程中没有遇到 User Toby 或 User Jane 错误 [2.6]
- 验证你是否无法听到来自原始游戏会话的音频 [2.6]
- 退出游戏
- 注销 Toby
- 切换回运行游戏的原始用户
- Alt+Tab 回到游戏中
退出游戏
继续执行 后期运行时
5.6 后期运行时
- 验证游戏是否在退出时不生成错误 [4.3]
- 验证游戏是否已安装到 Program Files [3.3]
- 继续执行 家长控制
5.7 家长控制
在 控制面板 中打开家长控制
验证游戏是否在家长控制控制面板 [1.2] 中的游戏标题下方显示准确的家长控制分级
有关以下测试,请参阅测试用例 [1.2] :
将“家长控制”设置为“开”后,验证游戏是否以用户简 [1.2] 的身份使用这些设置运行
注销并作为 Toby 登录
验证游戏是否以用户 Toby [1.2] 的身份使用这些设置运行
以 Jane 身份注销并登录
在“家长控制”部分中,阻止用户 Toby 从刚刚安装的游戏中查看 ESRB 级别和更高级别的游戏
示例:如果游戏评级为 E,请将其设置为 Toby 只能玩分级为 C 的游戏
验证游戏是否以用户简 [1.2] 的身份使用这些设置运行
注销并以用户 Toby 身份登录
验证当用户 Jane [1.2] 阻止 ESRB 时,游戏是否未在用户 Toby 上启动
以用户 Toby 身份注销,以用户 Jane 的身份重新登录
如果之前已更改,请还原 ESRB 设置
如果没有 ESRB 设置,请选择“阻止或允许特定游戏”,然后按名称选择游戏
以 Jane 的身份注销,以 Toby 的身份登录
验证当 EXE/Name 被用户 Jane [1.2] 阻止时,游戏是否未在用户 Toby 上启动
以 Toby 的身份注销,以 Jane 的身份重新登录
以 Jane 身份打开用户控件 -> 应用程序限制
单击“Toby 只能使用我允许的程序”,然后单击“确定” (即不允许 exes)
单击“全部取消选中”框,然后单击“确定”
转到用户控件 |游戏控制并允许使用 ESRB 分级的特定游戏
以简身份注销,以托比身份登录并尝试玩游戏
验证游戏是否未阻止,并且当设置了“不允许 exes”时,Toby 是否可以玩它 [1.2]
以用户 Toby 身份注销,以用户 Jane 身份重新登录
转到 控制面板 中的“家长控制”并删除限制
验证两个用户现在是否都可以玩游戏
继续执行 自动测试
5.8 自动测试
- 验证游戏在应用程序验证程序下运行时是否不生成失败 - 请参阅品牌测试工具文档 [4.2]
- 验证游戏可执行文件是否包含清单 - 请参阅品牌测试工具文档 [2.1]
- 验证游戏可执行文件清单 requestedExecutionLevel 是否为“AsInvoker” - 请参阅品牌测试工具文档 [2.1]
- 继续执行 其他测试
5.9 其他测试
验证游戏可执行文件是否包含数字签名 [2.3]
验证游戏安装过程是否在 64 位版本的 Windows Vista 和/或 Windows 7 上正常运行 [2.3]
验证游戏是否在 64 位版本的 Windows Vista 和/或 Windows 7 上遇到 16 位可执行文件错误 [2.3]
在测试时强制应用程序崩溃,并验证游戏是否正确显示Windows 错误报告并收集崩溃数据 [4.3]
确保正确的文件摘要 [4.3]
单击“开始 -> 计算机”
导航到游戏目录
在搜索窗口中,键入 *.dll
对于每个文件:右键单击文件,然后单击“属性”
- 在 Windows XP 中:单击“版本”选项卡。验证“产品名称”、“公司名称”和“文件版本”字段是否已正确填充。 [4.3]
- 在 Windows Vista 和 Windows 7 中:单击“详细信息”选项卡。验证“产品名称”和“文件版本”字段是否已正确填充。 公司名称在 Windows Vista 或 Windows 7 属性页中不可见 [4.3]
对 .exe 文件重复此检查
启动游戏。
- 按 CTRL+ALT+DEL
- 单击“关闭选项”箭头
- 单击“重启”
- 验证游戏是否阻止关闭 [3.1]
转到 “卸载”
5.10 卸载
验证游戏卸载过程是否删除所有已安装的、未重新分发的操作系统组件文件并清除所有设置 [3.1]
- 在 Windows Vista 或 Windows 7 中验证控制面板是删除程序的唯一方法 [1.1]
测试工具说明
这些是上述测试要求中列出的每个测试工具的说明。
6.1 Appverifier 4.0 (或更高版本)
测试用例:2.5、4.2
注意
由于复制保护,某些应用程序无法在运行 AppVerifier 的情况下运行。 可以通过使用游戏可执行文件的未受保护的发布版本运行来解决此问题。
在运行 Windows XP 的计算机上安装 AppVerifier 4.0 (或更高版本)
启动 AppVerifier 并单击“文件 -> 添加应用程序”
找到游戏可执行文件,将其选中,然后单击“打开”
在“应用程序”部分中,选择游戏可执行文件
在“基本信息”部分选择以下测试:
- 句柄数
- 堆
- 锁定
- 内存
- TLS
在“杂项”部分选择以下测试:
- DangerousAPIs
- DirtyStacks
确保未选择所有其他测试
启动游戏
玩游戏
关闭游戏
在 AppVerifier 中,选择“视图 -> 日志”
在“应用程序”部分中,选择应用 .exe 文件
在“日志”部分中,选择日志文件并观察错误计数。 如果没有错误,则结束 AppVerifier 测试。 如果存在错误,请单击“视图”按钮
(CTRL+F) 搜索文档严重性=“错误
基于故障的 LayerName= 部分创建 bug
6.2 清单测试 - mt.exe
测试用例:1.8、2.1
此工具从 MT.exe 所在的命令提示符运行。
示例:
mt.exe -inputresource:"c:\yourdir\YourGame.exe";#1 -out:yourgame.manifest
单击“开始” -> “运行” -> 键入 cmd 并单击“确定”按钮
运行 mt.exe 工具,为随游戏一起安装的每个 .exe 文件生成 .manifest 文件
打开生成的 .manifest 文件
确保每个 .exe 文件包含以下请求 (:
<description>Example Game Name</description> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker"></requestedExecutionLevel> </requestedPrivileges> </security> </trustInfo> <asmv3:windowsSettings xmlns=http://schemas.microsoft.com/SMI/2005/WindowsSettings> <dpiAware>true<dpiAware> </asmv3:windowsSettings> </asmv3:application>
注意
每个文件都应存在请求的执行级别,并且至少游戏可执行文件应存在 dpiAware。
6.3 线程劫持者 - threadhijacker.exe
此工具从 threadhijacker.exe 所在的命令提示符运行。
示例:
threadhijacker.exe /process:str
其中 str 是 name_of_program.exe
- 打开任务管理器,单击“进程”选项卡,然后找到游戏可执行文件的名称。
- 在管理员模式下打开命令提示符
- 导航到 threadhijacker.exe 所在的目录
- Type: **threadhijacker.exe /process:**str,其中 str 是要命中的可执行文件的名称
6.4 Microsoft Games for Windows 测试工具
此工具位于 DirectX SDK 中。 在计算机上安装 SDK 后,游戏 Windows 测试工具的安装程序可以放在测试计算机上并安装。
在安装了 DirectX SDK 的开发计算机上找到 Microsoft Games for Windows 测试工具安装程序。 默认情况下,它放置在以下位置:
%SystemDrive%\Program Files (x86)\Microsoft DirectX SDK (Date)\Utilities\bin\x86\Microsoft Games for Windows Test Tools\
将安装程序 (MicrosoftGFWTestTool.msi /setup.exe) 复制到测试计算机。
运行安装程序。
启动 Microsoft Games for Windows 测试工具。
在 “项目列表” 字段中,将 “创建新项目 ”替换为标题名称,然后单击“ 新建”。
等待基线完成。
填写“ 游戏信息 ”部分中可能拥有的任何信息,然后单击“ 更新游戏信息”。
单击“ 测试用例 ”选项卡。
从顶部开始,继续完成测试用例,根据需要单击“ 通过 ”或“ 失败 ”。
有关在报表中包含 bug 的详细信息,请参阅本节后面的“编写 Bug”。
查看报表 (后,通过选中“报告”和“Bug 编辑”选项卡) 返回到“项目”选项卡。
单击“ 编译报表”。
完成报表编译后,将打开一个窗口。 可在此处找到名为 ProjectName_report.zip 的 .ZIP 文件。 此文件包含测试通过期间收集的所有日志和结果。
编写 Bug
有两种方法可以编写 bug 报告:可以浏览测试用例,并在游戏未通过测试用例时单击“ 失败 ”,或者单击“ Bug 编辑 ”选项卡并手动添加 bug 报告。
在测试用例上单击“失败”
- 在测试用例上单击“ 失败 ”时,“ 问题类型 ”下拉列表将自动设置为测试用例类型。
- 向“ 标题” 字段添加简短说明,以简要描述问题。
- 将问题的详细说明添加到“ 观察到的行为” 字段。
- 根据需要,将预期 (内容添加到“ 预期行为 ”字段,而不是) 问题的说明。
- 在“ 重现步骤 ”字段中添加有关如何重现问题的详细说明。
- 完成后,单击“ 保存” 按钮。
手动添加 Bug
此过程与单击“ 失败”相同,但自动填充的下拉列表除外。 在这种情况下,请为超出 TR 范围但仍应报告的 bug 选择适当的 TCR 故障类型,或选择 “非 TR 问题” 。
资源
-
Windows 游戏:技术要求
-
Windows 游戏技术要求:Windows XP、Windows Vista 和 Windows 7 上游戏的最佳做法
-
Windows SDK
-
用户帐户控制指南
-
Windows Installer 信息
-
DirectX 开发人员门户
-
适用于 Windows 和 DirectX SDK 的游戏博客
-
其他 DirectX 文章