标题：游戏测试
产生背景
  IT业一直经历着“寒冬”，但是游戏软件业却呈现出了勃勃生机。网络游戏仅在中国游戏市场出现不过两三年，正式投入商业运营的游戏数目已超过100款，但众所周知，都是国外的（主要是韩国的游戏）统治着国内大部分的市场，国内游戏软件想要突围而出，主要从二个方面，一是可玩性，由于中国有上下五千年的传统文化，博大精深，是我们得天独厚的优势，二是游戏的质量，游戏测试作为游戏开发中质量保证的最重要的环节，在游戏设计与开发的过程中发挥着越来越重要的作用。 
测试就是发现问题并进行改进，从而提升软件产品的质量。游戏测试也具备了以上的所有特性，不过由于游戏的特殊性，所以游戏测试则主要分为两部分组成，一是传统的软件测试，二游戏本身的测试，由于游戏特别是网络游戏，它相当于网上的虚拟世界，是人类社会的另一种方式的体现，所以也包含了人类社会的一部分特性，同时它又是游戏所以还涉及到娱乐性，可玩性等独有特性，所以测试的面相当的广。基本概述游戏测试作为软件测试的一部分，它具备了软件测试  游戏测试所有的一切共同的特性： 
1测试的目的是发现软件中存在的缺陷。 
2测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书，需求文档，产品文件，或是用户手册，源代码，或是工作的可执行程序。 
3每一种测试都需要产品运行于真实的或是模拟环境之下。 
4每一种测试都要求以系统方法展示产品功能，以证明测试结果是否有效，以及发现其中出错的原因，从而让程序人员进行改进。 
总而言之，测试就是发现问题并进行改进，从而提升软件产品的质量。游戏测试也具备了以上的所有特性，不过由于游戏的特殊性，所以游戏测试则主要分为两部分组成，一是传统的软件测试，二游戏本身的测试，由于游戏特别是网络游戏，它相当于网上的虚拟世界，是人类社会的另一种方式的体现，所以也包含了人类社会的一部分特性，同时它又是游戏所以还涉及到娱乐性，可玩性等独有特性，所以测试的面相当的广。 我们称之为游戏世界测试，主要有以下几个特性： 
1游戏情节的测试，主要指游戏世界中的任务系统的组成，有人也称为游戏世界的事件驱动，我喜欢称为游戏情感世界的测试。 
2游戏世界的平衡测试，主要表现在经济平衡，能力平衡（包含技能，属性等等），保证游戏世界竞争公平。 
3游戏文化的测试，比如整个游戏世界的风格，是中国文化主导，还是日韩风格等等，大到游戏整体，小到NPC（游戏世界人物）对话，比如一个书生，他的对话就必需斯文，不可以用江湖语言。工作原理要了解如何测试游戏必需了解如何做游戏，了解它的开发过程，才能真正的测好游  游戏测试戏。游戏要成功，其基本的必要条件有三。分别为Vision(设计)、technology(技术)和Process(过程)。 游戏情节的测试：主要指游戏世界中的任务系统的组成。
游戏世界的平衡测试：主要表现在经济平衡，能力平衡（包含技能，属性等等），保证游戏世界竞争公平。
游戏文化的测试：比如整个游戏世界的风格，是中国文化主导，还是日韩风格等等，大到游戏整体，小到NPC（游戏世界人物）对话，比如一个书生，他的对话就必需斯文，不可以用江湖语言。
游戏设计与测试：设计阶段是做测试案例设计的最好时机。很多组织要么根本不做测试计划和测试设计，要么在即将开始执行测试之前才飞快地完成测试计划和设计。在这种情况下，测试只是验证了程序的正确性，而不是验证整个系统本该实现的东西。而测试则会很明确，因为测试计划已经写的很明确，需要测试那些游戏系统，但是还需要了解系统的组成，而设计阶段则是设计系统的过程，所有的重要系统均是用UML状态图进行了详细的描述，比如用户登陆情况。测试流程1、游戏开发公司通过各种调查、评估，确定自己要开发游戏的范围或者项  游戏测试目。比如确定音乐类，或者MMORPG等等。然后测试就需要对市面上的此类游戏(主要是比较热门的此类型游戏)进行测试，测试分工分别去玩和开发项目相同类型的游戏。比如音乐类：一个去玩劲舞团、一个去玩DJ……以此类推。然后通过一段时间的游戏，对这个游戏做出一个全面的测试报告：可玩性、功能发面、画面、性能、所需配制、社群体系等等。(产品说明书的形成) 
2、游戏开发阶段，随着游戏文档说明、策划案例的编写和游戏初期版本的形成。就可以去编写最早期的测试规范、测试计划和测试用例等等。其实游戏测试的用例相对软件测试的用例会庞大很多，游戏本身就是一个比软件功能多很多的软件，自然用例分的地方也会多很多，可以分：单人、多人、主流程、对局里等等。(产品设计文档、测试文档初期形成) 
3、随着游戏初期版本的形成，公司会联系游戏运营商共同去合作开发此游戏。也就是去找客户了，当然有的大型公司自产自销就令当别论了。有了合作伙伴，其实是客户。客户自然会对游戏提出种种需求，对版本提出各种意见，还有各个版本交纳的时间和游戏内测公测时间等等细节。(进度表、客户需求形成)
4、根据客户的种种需求，游戏会进行变化。经常是新出的版本和上一个版本会有天壤之别，感觉不是一个游戏。策划也会出来很多新的文档，这时候就要对文档进行测试，也就是静态测试。很多人认为静态测试没用，个人感觉静态测试很重要。虽然我在的公司不重视……扯远了。这个时期测试会比较忙，又要进行静态测试，又要写测试用例，还要进行功能测试、性能测试、压力测试，然后还要对客户进行游戏的演示。每个版本提交时候更是要疯狂的测试，每到这时候基本上要一直加班，基本11点前没到过家。然后还要和客户方的测试进行交流，回答人家的各种问题等等，测试用例、测试报告要提交给人家，各种回归测试等等，反正是忙的一塌糊涂。 
5、经过一段时间的版本更新，进入到了内测后期和公测阶段。这时候会出一些游戏相关的东西，比如GM TOOLS等等，还要对此进行详细的测试。其实GM TOOLS单拿出来都能叫软件测试了！可玩性测试游戏可玩性测试：游戏可玩性测试也是非常重要的一块，主要包含四个方面  游戏测试——cs：
1、游戏世界的搭建，包含聊天功能，交易系统，组队等可以让玩家在游戏世界交互的平台。
2、游戏世界事件的驱动，主要指任务。
3、游戏世界的竞争与平衡。
4、游戏世界文化蕴涵，游戏的风格与体现。
这种测试主要体现在游戏可玩性方面，虽然策划时我们对可玩性作了一定的评估，但这是总体上的，但一些具体的涉及到某个数据的分析，比如PK参数的调整，技能的增加等一些增强可玩性的测试则需要职业玩家对它进行分析，这里我们主要通过三种方式来进行：
1、内部的测试人员，他们都是精选的职业玩家分析人员，对游戏有很深的认识，在内部测试时，对上面的四点进行分析。
2、利用外部游戏媒体专业人员对游戏作分析与介绍，既可以达到宣传的效果，又可以达到测试的目的，通常这种方式是比较好的。
3、利用外部一定数量的玩家，对外围系统的测试，他们是普通的玩家，但却是我们最主要的目标，主要的来源是大中院校的学生等等，主要测试游戏的可玩性与易用性，发现一些外围的Bug。
4、游戏进入到最后阶段时，还要做内测，公测，有点像应用软件的beta版的测试，让更多的人参与测试，测试大量玩家下的运行情况。
设计评审
在设计评审时，测试人员的介入可以充分的对当前的系统构架发表自己的意见，由于测试人员的眼光是最苛刻的，并且有多年的测试经验，可以比较早的发现曾经出现的设计上的问题，比如在玩家转换服务器时是否作了事务的支持与数据的校验，在过去设计中由于没有事务支持与数据的校验从而导致玩家数据丢失,而这些风险可以在早期就规避掉。上面所说的是对游戏程序本身的测试设计，对于游戏情节的测试则可以从策划获得，由于前期的策划阶段只是对游戏情节大方向上的描述，并没有针对某一个  游戏测试——图片具体的情节进行设计，进入设计阶段时，某个游戏情节逻辑已经完整的形成了，策划可以给出情节的详细设计说明书，称为任务说明书，通过任务说明书我们可以设计出任务测试案例，比如某一个门派的任务由那些组成，我们可以设计出完整的任务测试案例，从而保证测试可能最大化的覆盖到所有的任务逻辑，如果是简单任务，还可以提出自动化需求，采用机器人自动完成。 集成测试阶段：集成测试是对整个系统的测试。由于前期测试与开发的并行，集成测试已经基本完成，这时只需要对前期在设计阶段中设计的系统测试案例运行一下就可以。我们主要的重心在集成测试中的兼容性测试，由于游戏测试的特殊性，对兼容性的要求特别高，所以我们采用了外部与内部同部进行的方式，内部我们有自己的平台试验室，搭建主流的硬软件测试环境，同时我们还通过一些专业的兼容性测试机构对我们的游戏软件做兼容性分析，让我们的游戏软件可以跑在更多的机器上。经典解析在团队中若是有资深的测试人员要具备的一项基本的素质就是可以针对UML的用例图，时序图，状态图来设计出重要系统的测试案例，只有重要系统的质量得到充分的测试，游戏程序的质量才可以得到充分的保证。一个用户登陆游戏系统的时序图。从这里我们可以很明确的了解玩家是如何验证并登陆系统的，在这个过程中要与那些对象进行交互，比如这里我们就是三个系统之间的交互，客户端（玩家部分），网关，账号服务之间的一个时序变化关系，为了能够完整的对这个流程进行测试，我们必需设计出可以覆盖整个流程的测试案例，并考虑其中可能的非法情况，因为这个时序图只是考虑了用户正常登陆成功的情况，并没有考虑密码错误，通信失败等许多可能存有的情况，并形成完整的测试案例库，从而对登陆系统的系统化测试做了充分的准备。同时通过这张图，性能分析人员还可以分析出可能存的性能瓶颈，比如这里可能有的瓶颈如下，总网关是否可以达到多少用户的并发，是如果达不到，是否可以采用分布式部署或是支持负载平衡，三者之间的网络带宽的比例分配，账号服务器是否可以承载多个网关的连接请求，最大连接请求可以达到多少等等，同时会针对这些风险做性能测试的设计，并提出自动化测试的需求，比如模拟玩家登陆的压力工具等等。 
性能测试与优化：最后要单独提一下的是性能优化，在单机版的时代，性能的要求并不是很高，但是在网络版的时代，则是两个完全不同的概念，主要包含了以下几个方面：应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下，三方面有效、合理的结合，可以达到对系统性能全面的分析和瓶颈的预测。不过在测试过程中有这样一个原则，就是由于测试是在集成测试完成或接近完成时进行，要求测试的功能点能够走通，这时你首先要进行优化的是数据库或是网络本身的配制，只有这样才可以规避改动程序的风险。同时性能的测试与优化是一个逐步完善的过程，需要前期的很多的工作，比如性能需求，测试工具等等，不过由于前期工作的完善，这些都在前期完成了。策划测试测试过程不可能在真空中进行。如果测试人员不了解游戏是由那几个部分组成的，那么执行测试就非常的困难，同时测试计划可以明确测试的目标，需要什么资源，进度的安排，通过测试计划，既可以让测试人员了解此次游戏测试中那些是测试重点，又可以与产品开发小组进行交流。在企业开发中，测试计划书来源于需求说明文档，同样在游戏开发过程中，测试计划的来源则是策划书。 
策划书包含了游戏定位，风格，故事情节，要求的配制等等。从里面了解到游戏的组成，可玩性，平衡（经济与能力），与形式（单机版还是网络游戏），而测试在这一阶段主要的事情就是通过策划书来制定详细的测试计划，主要分两个方面一是游戏程序本身的测试计划，比如任务系统，聊天，组队，地图等等由程序来实现的功能测试计划，二是游戏可玩性有测试计划，比如经济平衡标准是否达到要求，各个门派技能平衡测试参数与方法，游戏风格的测试，三是关于性能测试的计划，比如客户端的要求，网络版的对服务器的性能要求。同时测试计划书中还写明了基本的测试方法，要设计的自动化工具的需求，为后期的测试打下良好的基础。同时由于测试人员参与到策划评审，对游戏也有很深入的了解，会对策划提出自己的看法，包含可玩性，用户群，性能要求等等并形成对产品的风险评估分析报告，但这份报告不同于策划部门自己的风险分析报告，主要从旁观者的角度对游戏本身的品质作充分的论证，从而更有效的对策划起到控制的作用。游戏压力测试通过机器数据或者借助公会资源，对游戏各项数据以及服务器承受压力的一种测试，一般为有偿性测试，09年游戏压力测试一般都在游戏公司内部进行，09年以后由于游戏的内容增多，游戏压力测试被推到商业化寻找测试伙伴的地位，一般都由公会去操作，也有的委托给游戏压力测试网站或者威客网去做，做游戏压力测试的网站有猪八戒、中国威客等。