深圳网站优化课程哪里学,双网建筑工程资质公司,公司变更名称和经营范围,软件开发技术培训班游戏测试起因近几年来#xff0c;网络游戏成了网络最新的弄潮儿#xff0c;从盛大之传奇般的掘起#xff0c;吸引了无数公司的眼球。但由于随着玩家的品位的升高#xff0c;代理费用的上升#xff0c;单一的代理国外游戏的模式已经很难在国内立足#xff0c;而有中国传统… 游戏测试起因近几年来网络游戏成了网络最新的弄潮儿从盛大之传奇般的掘起吸引了无数公司的眼球。但由于随着玩家的品位的升高代理费用的上升单一的代理国外游戏的模式已经很难在国内立足而有中国传统文化特色的网络游戏则在国内大受欢迎比如剑侠情缘大话西游等一些国内的精典之作已经进入了一流网游的阵营。与此同时随着大家对网游稳定性可玩性要求的升高网络游戏测试开始成为大家关注的话题。游戏测试与软件测试的区别游戏测试作为软件测试的一部分它具备了软件测试所有的一切共同的特性测试的目的是发现软件中存在的缺陷。测试都是需要测试人员按照产品行为描述来实施。产品行为描述可以是书面的规格说明书需求文档产品文件或是用户手册源代码或是工作的可执行程序。每一种测试都需要产品运行于真实的或是模拟环境之下。每一种测试都要求以系统方法展示产品功能以证明测试结果是否有效以及发现其中出错的原因从而让程序人员进行改进。总而言之测试就是发现问题并进行改进从而提升软件产品的质量。游戏测试也具备了以上的所有特性不过由于游戏的特殊性所以游戏测试则主要分为两部分组成一是传统的软件测试二游戏本身的测试由于游戏特别是网络游戏它相当于网上的虚拟世界是人类社会的另一种方式的体现所以也包含了人类社会的一部分特性同时它又是游戏所以还涉及到娱乐性可玩性等独有特性所以测试的面相当的广。 我们称之为游戏世界测试主要有以下几个特性 游戏情节的测试主要指游戏世界中的任务系统的组成有人也称为游戏世界的事件驱动我喜欢称为游戏情感世界的测试。 游戏世界的平衡测试主要表现在经济平衡能力平衡包含技能属性等等保证游戏世界竞争公平。游戏文化的测试比如整个游戏世界的风格是中国文化主导还是日韩风格等等大到游戏整体小到NPC游戏世界人物对话比如一个书生他的对话就必需斯文不可以用江湖语言J。游戏测试概述很多人有这样一个观点“就是在软件开发完毕后再进行测试。”殊不知这种关点是有悖于软件开发的生命周期的软件缺陷的发现必须是越早越好这样才可以有效的规避风险而在“最后进行测试”的测试观念的指导下测试工作必将会产生很多问题这种观念的错误在于生命周期中的“测试阶段”表明在该阶段测试工作是主要的工作而不是说测试工作只发生在“测试阶段”。通常到了测试阶段测试的主要任务是运行测试形成测试报告。而想要提高游戏的质量则必需要做到测试的早期介入诸如测试计划测试用例的确定以及测试代码的编写等等都是要在更早的阶段进行。如果你把测试完全放在最后阶段就错过了发现构架设计和游戏逻辑设计中存在严重问题的最好时机到那时要修复这些缺陷将很不方便因为缺陷已经扩散到系统中去了所以这样的错误将很难寻找与修复代价更高。要了解如何测试游戏必需了解如何做游戏了解它的开发过程才能真正的测好游戏。游戏要成功其基本的必要条件有三。分别为Vision(设计)、technology(技术)和Process(过程)。三个条件缺一不可如图所示 引用内容 图游戏开发三大基石Vision则是对游戏还没有实现的总体上的把握前瞻性的理解与策略的考量。Technology有了vision如果没有技术的话则各种美妙的想法只能停留在虚无缥缈的阶段通过技术来实现Vision。Process有了Vision作为指导有了技术作为保证也不一定能够把好的想法转换成高质量的游戏。要创造高品质的游戏尚缺重要的一环即过程制造游戏是一个非常是一个长时间的动态过程。游戏产品的质量则是要靠动态过程的动态质量来进行保证。过程由很多复杂的相互牵制的环节与部件组成如果任意的环节或者是部件出了问题都会对最终的产品形成质量上的影响。因此对这个动态的过程一定要有规划与控制以保证按步就班按质按时完成工作。游戏测试与开发过程的关系CMMSoftware Capability Maturity Model软件成熟模型大家都比较熟悉了但在实施的过程中却存在这样那样的问题对于游戏开发就更没有一个固定的路可以讲了我们的团队是一个长期的游戏开发团队对游戏开发有着很深的认识我们认为游戏的Process(过程)实际上也是软件过程不过是特殊的游戏软件开发过程各个生命周期还是相通的。所以我们总结一套以测试作为质量驱动的、属于自己的开发过程。下图是游戏的迭代式开发过 引用内容 图游戏迭代式开发与测试由于网络游戏的生命周期也是3、4年所以采用迭代式的开发过程既可以适应网络游戏本身这种长周期的开发又可以利用RUP的迭代式开发的优点与CMM的里程碑控制从而达到对游戏产品的全生命周期的保证。在游戏开发过程中通用软件的需求分析阶段被策划所代替但起的作用是一样的明确游戏的设计目标包括风格游戏玩家群游戏世界的组成为后期的程序设计美工设计测试提出的明确的要求。由于开发是一个阶段的过程所以测试与开发的结合就比较容易从图上我们可以看到测试的工作与游戏的开发是同步进行的每一个开发阶段中测试都进行了参与能够深入的了解到系统的整体与大部分的技术细节从而从很大程度上提高了测试人员对错误问题判断的准确性,并且可以有效的保证重要游戏系统的稳定。游戏策划与测试计划测试过程不可能在真空中进行。如果测试人员不了解游戏是由那几个部分组成的那么执行测试就非常的困难同时测试计划可以明确测试的目标需要什么资源进度的安排通过测试计划既可以让测试人员了解此次游戏测试中那些是测试重点又可以与产品开发小组进行交流。在企业开发中测试计划书来源于需求说明文档同样在游戏开发过程中测试计划的来源则是策划书。策划书包含了游戏定位风格故事情节要求的配制等等。在策划评审中我们的高级测试人员可以参与进来得到详细的游戏策划书从里面了解到游戏的组成可玩性平衡经济与能力与形式单机版还是网络游戏而我们测试在这一阶段主要的事情就是通过策划书来制定详细的测试计划主要分两个方面一是游戏程序本身的测试计划比如任务系统聊天组队地图等等由程序来实现的功能测试计划二是游戏可玩性有测试计划比如经济平衡标准是否达到要求各个门派技能平衡测试参数与方法游戏风格的测试三是关于性能测试的计划比如客户端的要求网络版的对服务器的性能要求。同时测试计划书中还写明了基本的测试方法要设计的自动化工具的需求为后期的测试打下良好的基础。同时由于测试人员参与到策划评审资深的游戏测试人员与产品经理由于对游戏也有很深入的了解会对策划提出自己的看法包含可玩性用户群性能要求等等并形成对产品的风险评估分析报告但这份报告不同于策划部门自己的风险分析报告主要从旁观者的角度对游戏本身的品质作充分的论证从而更有效的对策划起到控制的作用。游戏设计与测试设计阶段是做测试案例设计的最好时机。很多组织要么根本不做测试计划和测试设计要么在即将开始执行测试之前才飞快地完成测试计划和设计。在这种情况下测试只是验证了程序的正确性而不是验证整个系统本该实现的东西。而我们的测试则会很明确因为我们的测试计划已经写的很明确需要测试那些游戏系统但是我们还需要了解系统的组成而设计阶段则是设计系统的过程所有的重要系统均是用UML状态图进行了详细的描述比如用户登陆情况。如图2 引用内容 图2用户登陆情况在我们的团队中资深的测试人员要具备的一项基本的素质就是可以针对UML的用例图时序图状态图来设计出重要系统的测试案例只有重要系统的质量得到充分的测试游戏程序的质量才可以得到充分的保证。比如上图中就是一个用户登陆游戏系统的时序图。从这里我们可以很明确的了解玩家是如何验证并登陆系统的在这个过程中要与那些对象进行交互比如这里我们就是三个系统之间的交互客户端玩家部分网关账号服务之间的一个时序变化关系为了能够完整的对这个流程进行测试我们必需设计出可以覆盖整个流程的测试案例并考虑其中可能的非法情况因为这个时序图只是考虑了用户正常登陆成功的情况并没有考虑密码错误通信失败等许多可能存有的情况并形成完整的测试案例库从而对登陆系统的系统化测试做了充分的准备。同时通过这张图性能分析人员还可以分析出可能存的性能瓶颈比如这里可能有的瓶颈如下总网关是否可以达到多少用户的并发是如果达不到是否可以采用分布式部署或是支持负载平衡三者之间的网络带宽的比例分配账号服务器是否可以承载多个网关的连接请求最大连接请求可以达到多少等等同时会针对这些风险做性能测试的设计并提出自动化测试的需求比如模拟玩家登陆的压力工具等等。同时在设计评审时测试人员的介入可以充分的对当前的系统构架发表自己的意见由于测试人员的眼光是最苛刻的并且有多年的测试经验可以比较早的发现曾经出现的设计上的问题比如在玩家转换服务器时是否作了事务的支持与数据的校验在过去设计中由于没有事务支持与数据的校验从而导致玩家数据丢失,而这些风险可以在早期就规避掉。上面所说的是对游戏程序本身的测试设计对于游戏情节的测试则可以从策划获得由于前期的策划阶段只是对游戏情节大方向上的描述并没有针对某一个具体的情节进行设计进入设计阶段时某个游戏情节逻辑已经完整的形成了策划可以给出情节的详细设计说明书称为任务说明书通过任务说明书我们可以设计出任务测试案例比如某一个门派的任务由那些组成我们可以设计出完整的任务测试案例从而保证测试可能最大化的覆盖到所有的任务逻辑如果是简单任务还可以提出自动化需求采用机器人自动完成。游戏测试与开发开发与测试一直有人认为是不可以平行进行的必需要先开发后测试但是软件的开发过程又要求测试必须早期介入但在这里这种矛盾得到了很好的解决。我们采用了每日编译将测试执行和开发结合在一起并在开发阶段以编码--测试--编码--测试的方式来体现。也就是说程序片段一旦编写完成就会立即进行测试。普通情况下先进行的测试是单元测试但是一个程序片段也需要相关的集成测试甚至有时还需要一些特殊测试。特别是关于接口测试像游戏程序与任务角本、图片的结合大家都认为需要提前测试通过每日编你可以把已经写好的程序片段接合起来形成部分的集成测试从而有效的体现的接口优先测试的原则。同时由于软件测试与开发是并行进行的并且实行的是软件缺陷优先修改的策略所以很少会出现缺陷后期无法修改的情况并且由于前期的测试案例的设计与自动化工具的准备我们不需要投入太多的人力就可以极高的保证游戏软件的产品质量特别是重要系统的质量。由于我们的游戏程序是每日不断的完善所以集成测试也在同步的进行之中当开发进入最后阶段时集成测试也同步的完成了。这里有一个原则也就是我前面所说的测试的主体方法和结构应在游戏设计阶段完成并在开发阶段进行补充(比如在游戏开发中会有相应的变动或是某个转移变地址的变化这就需要实时的更新)。这种方法会对基于代码的测试开发阶段与集成阶段产生很重要的影响但是不管在那个阶段如果在执行前多做一点计划和设计,都会大幅度的提高测试效率改善测试结果同时还有利于测试案例的重用与测试数据的分析所以我们的测试计划是在策划时就形成了为后继的测试形成了良好的基础。集成测试阶段集成测试是对整个系统的测试。由于前期测试与开发的并行集成测试已经基本完成这时只需要对前期在设计阶段中设计的系统测试案例运行一下就OK了。我们主要的重心在集成测试中的兼容性测试由于游戏测试的特殊性对兼容性的要求特别高所以我们采用了外部与内部同部进行的方式内部我们有自己的平台试验室搭建主流的硬软件测试环境同时我们还通过一些专业的兼容性测试机构对我们的游戏软件做兼容性分析让我们的游戏软件可以跑在更多的机器上。游戏可玩性测试游戏可玩性测试也是非常重要的一块主要包含四个方面游戏世界的搭建包含聊天功能交易系统组队等可以让玩家在游戏世界交互的平台。游戏世界事件的驱动主要指任务。 游戏世界的竞争与平衡。游戏世界文化蕴涵游戏的风格与体现。这种测试主要体现在游戏可玩性方面虽然策划时我们对可玩性作了一定的评估但这是总体上的但一些具体的涉及到某个数据的分析比如PK参数的调整技能的增加等一些增强可玩性的测试则需要职业玩家对它进行分析这里我们主要通过三种方式来进行 内部的测试人员他们都是精选的职业玩家分析人员对游戏有很深的认识在内部测试时对上面的四点进行分析。利用外部游戏媒体专业人员对游戏作分析与介绍既可以达到宣传的效果又可以达到测试的目的通常这种方式是比较好的。利用外部一定数量的玩家对外围系统的测试他们是普通的玩家但却是我们最主要的目标主要的来源是大中院校的学生等等主要测试游戏的可玩性与易用性发现一些外围的Bug。游戏进入到最后阶段时还要做内测公测有点像应用软件的beta版的测试让更多的人参与测试,测试大量玩家下的运行情况。可玩性测试是游戏重要的一块只有玩家的认同我们才可能成功。性能测试与优化最后要单独提一下的是性能优化在单机版的时代性能的要求并不是很高但是在网络版的时代则是两个完全不同的概念主要包含了以下几个方面应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下三方面有效、合理的结合可以达到对系统性能全面的分析和瓶颈的预测。不过在测试过程中有这样一个原则就是由于测试是在集成测试完成或接近完成时进行要求测试的功能点能够走通这时你首先要进行优化的是数据库或是网络本身的配制只有这样才可以规避改动程序的风险。同时性能的测试与优化是一个逐步完善的过程需要前期的很多的工作比如性能需求测试工具等等不过由于前期工作的完善这些都在前期完成了。这里我只做原则性的描述。数据库的优化的原则主要是这样的首先是索引进行优化由于索引的优化不需要对表结构进行任何改动是最简单的一种又不需要改动程序就可能提升性能若干倍不过要注意的是索引不是万能的若是无限的增加会对增删改造成很大的影响。其次是对表视图存储过程的优化。不过在分析之前需要知道优化的目标客户行为中那些SQL是执行的最多的所以我们必需借助些SQL的跟踪分析工具例如SQLProfile,SQLExpert,等工具这样会迅速的定位问题。关于网络的优化这里我所说的并不是针对网络本身的优化而是对游戏本身的网络通信的优化所以它是与程序的优化是结合在一起的首先也是发现问题通过Monitor与Sniff先定位是什么应用占用了较多的网络流量由于网络游戏的用户巨大所以这也是一个重在的问题。对于程序的性能优化最主要的是找到运行时间最长的函数只有优化它性能才有大幅度的提升具体的方法我就不做详细的描述了。总述游戏测试是一个新的领域,它既有通用测试的特点,又有自己的特点,有许多未知的路要走,每天都在总结,希望给大家带来一些帮助,同时在这里也谢谢所有支持我的同事。 转载于:https://blog.51cto.com/341976/78533