
本书来自3位在游戏测试领域都有着极其丰富经验的专业人员,是亚马逊“五星级”畅销书,也是国内第一本专业级游戏测试经典之作,不仅内容全面、实例丰富,而且讲解透彻、可读性强,并提供多个资源下载和技术支持站点。
现如今,游戏产业发展迅猛,游戏测试已成为游戏产品、游戏软件、游戏程序设计与开发不可或缺的环节。本书主要揭示了如何将软件测试的专业方法运用到游戏产业中,全面涵盖了游戏测试的基本知识,包括游戏中涉及的人工智能、表现模式和碰撞。书中介绍了几种游戏的类型,并针对每种类型详细讲解了游戏的生命周期和评测的基本理论,包括如何创建测试计划、测试用例树等。通过本书,您可以学习如何快速地生成有用的测试文档,捕获重要的数据,以及分析测试的结果。本书将为您从事游戏测试方面的工作奠定基础。
本书会让您了解游戏测试者的角色与责任,包括怎样更好地将软件测试项目中的方法论运用到游戏产业,并学会应用这种知识来创建测试计划和安排测试任务,以及为游戏生成完整而有效的测试用例。本书的主要内容包括怎样制作游戏软件,怎样采取合适的测试方法、测试基础理论、自动化工具进行测试以及怎样针对不同种类的游戏进行测试。
本书中的内容和方法广泛地涉及了多种不同的游戏类型和主题,如果您目前没玩过书中提到的所有这些游戏也没关系。在每个案例中,我们会对游戏和特性的具体概念进行展示,这些概念也会在正文中得到进一步并通过示例来进行讲解。如果您最喜欢的一个或多个游戏本书没有提到,您可以自己应用从本书中学到的知识来进行相关的测试。
本书结构
本书分为5个部分,每一部分包含多个章节。这样组织本书的目的是为了您能循序渐进地增长知识、提高技能。并且,本书将游戏测试各方面的知识融合进了一本书中。如果您想通过本书的一个或多个具体的部分或章节来满足您的工作需求,您会发现有关该主题的完备信息均有提供。此外,每章最后都附有小结和习题。因此,也可以把本书作为测试或游戏开发课程的教科书。一方面本书提供了游戏测试课程所需的所有内容,另一方面,本书也包含游戏软件开发、游戏开发过程和游戏开发实践方面的内容。通过做书中的习题,对照附录提供的答案来检查,您也可以巩固并延伸对所学内容的理解。
第I部分“游戏测试简介”从文化、哲学的角度向读者介绍游戏测试和测试对游戏最后发布所做的贡献。游戏一发布,每个人(希望如此!)都冲出去购买。如果一切顺利,您就会明白游戏软件测试的重要性。
第II部分“游戏制作”揭示了个人对整个游戏项目所做的贡献。这包括在游戏软件[番茄花园1]开发和生产的不同阶段要求测试者扮演的不同角色和责任。
第III部分“[番茄花园2]测试基础”从制作一个正式的软件项目的角度介绍了测试概念和实践方面的内容。这些实践会提升您的测试IQ。本书合作站点提供下载的工具和文件有助于您尽快生成有用的测试文档,获取重要数据和分析本部分所描述的方法。
第IV部分“测试技术”针对游戏测试的方法进行介绍。每一种技术都能单独使用,也可与其他技术一起使用。这有利于您在游戏开发的任何阶段测试其中的任一部分。由于第12章的 “净室测试”部分依赖于前两章所介绍的技术,所以要跳过前两章直接去阅读这一章时,请注意这一点。
测试工具的链接由本书的合作站点提供,可以帮助您学习和实践这些方法。另外,本书提供的模版文件也有助于您快速生成测试文档,您可以通过“填空”而不是从空白页开始来开始创建文档。怎样使用这些模版的信息在各个章节和附录中都有说明。
第V部分“更有效的测试”中介绍的方法使您能从有限的时间和资源中解脱出来,能使您制作和运行的测试的数量和质量达到一个新的高度。这部分的工具链接合作站点也有提供,您可以用来实践本部分所描述的方法。
附录包含了每章习题的答案,一些可用的资源的信息和第IV部分涵盖的测试技术的有关内容。
本书读者对象
本书适合想要在游戏测试行业发展的人,或已从事软件测试但有兴趣转到游戏行业以及目前从事游戏测试而想学习新技术来提高其测试技能的人。本书对那些从事游戏测试的人,例如参与设计小游戏的团队成员,是非常有效的。那些有抱负的测试主管和项目经理也能从本书中获益。
如果您已经是一个经验丰富的游戏测试者,您可能只想阅读第III到第V部分的内容,但推荐您通读本书的第一章,略读第二、三章和整个第II部分,然后精读第IV部分和第V部分的内容,以将知识实际运用到您的工作中去。如果您是测试主管,可以把第III部分的内容运用到您的工作中去,而让您的测试员在项目中运用从第IV部分和第V部分中学到的知识。
对于并非是从事游戏产业的经验丰富的测试人员来说,也许略读第3章的内容就足够了,但是建议您阅读本书的其余部分并完成习题。要是您将第IV部分和第V部分的技术运用到您目前从事的工作中去,就会获益匪浅,但是您同样也要努力花些时间在自己的游戏中做同样的事。
如果您想进入游戏产业做测试员,那么您要做的事情更多。请通读全书,并完成书中所有的习题。如果您正在求职,请实践第IV部分和第V部分中的技巧。您可以像beta测试员那样做(具体见第4章和第14章),或者只是拿些您最喜欢的游戏来进行自我测试。
如果您是一名游戏项目的经理,想更好地理解项目测试方面的内容,您可以略读第II部分,但是也要看看本书的其他部分。下表总结了本书的建议用法:
[番茄花园3]?角 色 第1章 第2章 第3章 第II部分 第III部分 第IV部分 第V部分
游戏测试员 ?R S S S ? R A A
其他测试员 ?R R S R R A A
未来游戏测试员 ?R R R R R A A
游戏测试主管 ?R S S S A R R
游戏项目管理 ?R R R S R R R
R=读(Read)和写(Write)
S=跳过或略读,可选择做习题
A=阅读和做完习题以后运用到您的工作中
本书合作站点
要使用本书的一些相关资源,您可以登录以下站点:
www.courseptr.com
www.gamedev.net
www.tupwk.com.cn/downpage
上面提供了一些有用的信息和相关的下载链接,具体内容详见本书的附录E。
本书技术支持站点:
www.9college.com
www.recursion.com.cn
反馈信箱
尽管我们已经尽了各种努力来保证文章不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误,请告诉我们,我们将非常感激。
请将意见和建议发送至wkservice@tup.tsinghua.edu.cn。
最后,祝您有一个愉快的学习经历。
第Ⅰ部分 游戏测试简介
第1章 游戏测试的两条原则 3
1.1 不要恐慌 3
1.1.1 不熟悉 4
1.1.2 未准备好 4
1.1.3 处在压力下 5
1.1.4 不安 7
1.1.5 只能看到短期目标 7
1.2 不要相信任何人 8
1.2.1 平衡准则 9
1.2.2 他人的忠告 10
1.2.3 最后的检查 11
1.2.4 寻求有用的信息 12
1.3 付出与回报 12
1.4 结束语 13
1.5 小结 13
1.6 习题 14
第2章 成为游戏测试员 15
2.1 玩游戏 15
2.2 识别bug 18
2.3 放大问题 20
2.3.1 尽可能早地执行测试 21
2.3.2 搜寻每一个地方 21
2.4 通报团队 21
2.4.1 “描述”字段 22
2.4.2 缺陷的优先级 23
2.4.3 选择一种类型 25
2.4.4 帮助信息 26
2.4.5 测试“通过”或
“失败” 27
2.5 其他验证 28
2.6 验证缺陷的修复 28
2.7 小结 29
2.8 习题 29
第3章 测试的重要性 31
3.1 关注游戏测试的人 31
3.2 缺陷类型 32
3.2.1 功能 33
3.2.2 赋值 34
3.2.3 检查 36
3.2.4 时间控制 36
3.2.5 构造/包装/合并 37
3.2.6 算法 40
3.2.7 文档 42
3.2.8 接口 43
3.3 小结 45
3.4 习题 45
第Ⅱ部分 游戏制作
第4章 游戏团队 51
4.1 开发团队 51
4.1.1 开发主管 51
4.1.2 开发工程师 52
4.1.3 构造工程师 52
4.2 测试团队 53
4.2.1 测试主管 53
4.2.2 测试工程师 54
4.2.3 beta测试员 54
4.3 美工团队 55
4.3.1 艺术总监 55
4.3.2 艺术家 57
4.3.3 动画家 58
4.3.4 游戏关卡设计师 59
4.4 音频设计团队 60
4.4.1 音效工程师 60
4.4.2 音乐总监/制片人 62
4.5 其他技术人员 62
4.5.1 项目经理 62
4.5.2 游戏设计师 63
4.6 组织团队 65
4.7 小结 66
4.8 习题 66
第5章 游戏生产周期 67
5.1 概念开发阶段 67
5.1.1 中心概念 68
5.1.2 游戏议案(“投标文档”) 68
5.1.3 概念文档 68
5.2 试生产(概念验证)阶段 72
5.2.1 游戏设计文档 72
5.2.2 艺术生产计划 72
5.2.3 技术设计文档 73
5.2.4 项目计划 73
5.2.5 游戏原型 75
5.3 开发阶段 75
5.4 alpha阶段 77
5.5 beta阶段 77
5.5.1 一致性测试 77
5.5.2 关键时刻 77
5.5.3 beta测试 78
5.6 代码冻结阶段 78
5.7 生产发布阶段 78
5.8 补丁阶段 79
5.9 升级阶段 79
5.10 小结 79
5.11 习题 79
第Ⅲ部分 测试基础
第6章 软件质量 83
6.1 影响游戏质量的因素 83
6.2 游戏质量的鉴定 84
6.2.1 走查 84
6.2.2 评论 86
6.2.3 基于清单的评论 86
6.2.4 检查 86
6.3 游戏标准 88
6.3.1 用户界面标准 88
6.3.2 编码标准 89
6.4 游戏质量的衡量 90
6.4.1 6σ软件 90
6.4.2 阶段控制 91
6.5 质量规划 94
6.5.1 QA描述 94
6.5.2 标准 95
6.5.3 评价和审计 95
6.5.4 反馈和报告 96
6.5.5 报告问题和纠正行为 96
6.5.6 工具、技巧和方法 96
6.5.7 供应控制 98
6.5.8 训练 99
6.5.9 风险管理 99
6.6 小结 99
6.7 习题 100
第7章 测试阶段 101
7.1 试生产阶段 102
7.1.1 计划任务 102
7.1.2 测试开始前的测试 107
7.2 测试的开题阶段 107
7.3 alpha测试阶段 110
7.4 beta测试阶段 111
7.4.1 beta测试入口标准 111
7.4.2 设计锁定 112
7.4.3 忽略bug 112
7.5 最后测试阶段 113
7.6 发布证明阶段 114
7.7 在释放之后的测试阶段 114
7.8 小结 115
7.9 习题 115
第8章 测试过程 116
8.1 “黑盒”测试 116
8.2 “白盒”测试 118
8.3 构造的生命周期 119
8.3.1 测试用例和测试套件 120
8.3.2 入口标准 122
8.3.3 配置准备 123
8.3.4 冒烟测试 124
8.3.5 回归测试 124
8.3.6 “围绕”bug进行测试 125
8.3.7 报告结果 125
8.4 小结 129
8.5 习题 129
第9章 数字化测试 131
9.1 测试进程 131
9.2 测试效率 134
9.3 测试员的表现 136
9.4 小结 137
9.5 习题 138
第Ⅳ部分 测试技术
第10章 组合测试 141
10.1 参数 141
10.2 值 142
10.2.1 默认值 142
10.2.2 枚举 142
10.2.3 范围 142
10.2.4 界限 143
10.3 构建表格 144
10.4 组合模版 156
10.5 组合工具 158
10.6 组合产生的效果 161
10.7 小结 161
10.8 习题 162
第11章 测试流程图 163
11.1 TFD的要素 163
11.1.1 流程 163
11.1.2 事件 164
11.1.3 动作 164
11.1.4 状态 164
11.1.5 基本要素 165
11.1.6 终结符 165
11.2 TFD设计活动 165
11.2.1 准备 165
11.2.2 配置 165
11.2.3 构建 166
11.3 使用SmartDraw软件 167
11.4 一个TFD的示例 169
11.5 数据词典 175
11.5.1 数据词典的应用 175
11.5.2 数据词典的重复使用 175
11.5.3 数据词典示例 175
11.6 TFD路径 179
11.6.1 最小值路径的产生 179
11.6.2 基线路径的生成 180
11.6.3 专家结构路径 181
11.6.4 组合路径策略 182
11.7 由路径创建测试 183
11.8 TFD模版 186
11.9 是否创建TFD? 186
11.10 小结 187
11.11 习题 187
第12章 净室测试 188
12.1 使用率 188
12.1.1 基于模式 189
12.1.2 基于玩家类别 189
12.1.3 基于现实 190
12.2 净室测试的生成 191
12.2.1 净室组合表格 191
12.2.2 净室组合示例 193
12.2.3 TFD净室路径 196
12.2.4 TFD净室路径示例 197
12.2.5 流程维护使用 199
12.2.6 流程图使用率的配置 201
12.3 使用率的转换 202
12.3.1 计算使用率的转换值 202
12.3.2 组合表格使用率的
??转换 203
12.3.3 TFD流程使用率的
??转换 204
12.4 小结 206
12.5 习题 207
第13章 测试树 208
13.1 测试用例树 208
13.2 树特征测试 210
13.3 测试树设计 212
13.4 小结 220
13.5 习题 220
第14章 性能测试和随机测试 221
14.1 随机测试 221
14.1.1 右脑测试 222
14.1.2 像侦探一样测试 226
14.2 游戏性能测试 228
14.2.1 平衡方案 228
14.2.2 游戏外部测试 231
14.2.3 谁做决策? 233
14.3 小结 233
14.4 习题 233
第Ⅴ部分 更有效的测试
第15章 缺陷触发 237
15.1 操作区域 237
15.1.1 游戏前操作域 238
15.1.2 游戏启动操作域 238
15.1.3 游戏中操作域 238
15.1.4 游戏后操作域 238
15.2 触发 238
15.2.1 配置触发 238
15.2.2 启动触发 240
15.2.3 异常缺陷 240
15.2.4 压力触发 241
15.2.5 正常触发 241
15.2.6 重启触发 241
15.3 缺陷分类 242
15.4 缺陷触发和测试设计 243
15.4.1 组合触发设计实例 244
15.4.2 TFD触发实例 247
15.5 小结 250
15.6 习题 251
第16章 游戏测试自动化 252
16.1 自动化测试能否为我
???服务 252
16.1.1 生产成本 252
16.1.2 重复使用 253
16.1.3 人为因素 253
16.1.4 规模问题 253
16.1.5 强烈的期望 254
16.1.6 基础架构 255
16.1.7 团队合作 255
16.1.8 成熟的测试 256
16.2 需要自动化的游戏类型 257
16.2.1 大型多人在线游戏 257
16.2.2 其他类型的游戏 258
16.3 五个有效自动测试的
???习惯 258
16.3.1 筛选自动测试结果 258
16.3.2 删除不必要出现的
??????????????内容 259
16.3.3 管理版本 259
16.3.4 提交之前测试游戏 260
16.3.5 整合测试和版本 260
16.4 成本分析 261
16.5 测试自动化实践:《模拟
??人生在线》 262
16.5.1 模拟脚本 263
16.5.2 负载测试 264
16.5.3 定期回归 264
16.5.4 旧代码的新应用 264
16.5.5 多对一还是一对多 265
16.5.6 学到的经验 265
16.6 测试自动化的未来 266
16.7 小结 268
16.8 习题 268
第17章 捕获/回放测试 269
17.1 捕获/回放测试的特点 269
17.2 捕获/回放测试自动化 270
17.2.1 记录 271
17.2.2 编辑 273
17.2.3 回放 273
17.2.4 回放选择 274
17.3 捕获/回放示例 278
17.3.1 扫雷测试捕获 278
17.3.2 扫雷回放测试 281
17.3.3 编辑和调试扫雷测试 282
17.3.4 扫雷测试的模块化和
??重用 282
17.4 小结 285
17.5 习题 285
第Ⅵ部分 附录
附录A 习题答案 289
附录B 项目生命周期文档 308
附录C 复合表模板项目生命
周期文件 345
附录D 测试流程图模板 349
附录E 合作站点中的资源 357