本站文章除标题中注明“原”以外,其他均来自网络或书籍,如果我的引用侵犯了您的权力,请与我联系,我将及时处理;如果任何人想转载这些文章,则请保留原始的出处信息,或者直接与原作者联系。

游戏测试过程

上一篇 / 下一篇  2007-01-21 21:05:40 / 个人分类:测试理论

游戏测试与开发过程的关系
C]2]@*})g0CMM(Software Capability Maturity Model)软件成熟模型,大家都比较熟悉了,但在实施的过程中却存在这样那样的问题,对于游戏开发就更没有一个固定的路可以讲了,我们的团队是一个长期的游戏开发团队,对游戏开发有着很深的认识,我们认为游戏的Process(过程)实际上也是软件过程,不过是特殊的游戏软件开发过程,各个生命周期还是相通的。所以我们总结一套以测试作为质量驱动的、属于自己的开发过程。下图是游戏的迭代式开发过:51Testing软件测试网w\X3[:OJ s8LWPv~

Er4fE|s9hi&f:v0由于网络游戏的生命周期也是3、4年,所以采用迭代式的开发过程,既可以适应网络游戏本身这种长周期的开发,又可以利用RUP的迭代式开发的优点与CMM的里程碑控制,从而达到对游戏产品的全生命周期的保证。
C+]9C Kd1v\m|([0
f~)v f+RR3h-_&]0在游戏开发过程中,通用软件的需求分析阶段被策划所代替,但起的作用是一样的,明确游戏的设计目标(包括风格,游戏玩家群),游戏世界的组成,为后期的程序设计,美工设计,测试提出的明确的要求。由于开发是一个阶段的过程,所以测试与开发的结合就比较容易,从图上我们可以看到测试的工作与游戏的开发是同步进行的,每一个开发阶段中测试都进行了参与,能够深入的了解到系统的整体与大部分的技术细节,从而从很大程度上提高了测试人员对错误问题判断的准确性,并且可以有效的保证重要游戏系统的稳定。51Testing软件测试网 mv%o cu

&S^^ Q9zf {-r9e0游戏策划与测试计划51Testing软件测试网DHV,_'`s,[/n
测试过程不可能在真空中进行。如果测试人员不了解游戏是由那几个部分组成的,那么执行测试就非常的困难,同时测试计划可以明确测试的目标,需要什么资源,进度的安排,通过测试计划,既可以让测试人员了解此次游戏测试中那些是测试重点,又可以与产品开发小组进行交流。在企业开发中,测试计划书来源于需求说明文档,同样在游戏开发过程中,测试计划的来源则是策划书。策划书包含了游戏定位,风格,故事情节,要求的配制等等。在策划评审中我们的高级测试人员可以参与进来,得到详细的游戏策划书,从里面了解到游戏的组成,可玩性,平衡(经济与能力),与形式(单机版还是网络游戏),而我们测试在这一阶段主要的事情就是通过策划书来制定详细的测试计划,主要分两个方面一是游戏程序本身的测试计划,比如任务系统,聊天,组队,地图等等由程序来实现的功能测试计划,二是游戏可玩性有测试计划,比如经济平衡标准是否达到要求,各个门派技能平衡测试参数与方法,游戏风格的测试,三是关于性能测试的计划,比如客户端的要求,网络版的对服务器的性能要求。同时测试计划书中还写明了基本的测试方法,要设计的自动化工具的需求,为后期的测试打下良好的基础。同时由于测试人员参与到策划评审,资深的游戏测试人员与产品经理由于对游戏也有很深入的了解,会对策划提出自己的看法,包含可玩性,用户群,性能要求等等并形成对产品的风险评估分析报告,但这份报告不同于策划部门自己的风险分析报告,主要从旁观者的角度对游戏本身的品质作充分的论证,从而更有效的对策划起到控制的作用。
E&r5n'O!O4T051Testing软件测试网Y1Z$k9rve
游戏设计与测试
(tkk`MhR4~+Et'Z0设计阶段是做测试案例设计的最好时机。很多组织要么根本不做测试计划和测试设计,要么在即将开始执行测试之前才飞快地完成测试计划和设计。在这种情况下,测试只是验证了程序的正确性,而不是验证整个系统本该实现的东西。而我们的测试则会很明确,因为我们的测试计划已经写的很明确,需要测试那些游戏系统,但是我们还需要了解系统的组成,而设计阶段则是设计系统的过程,所有的重要系统均是用UML状态图进行了详细的描述,比如用户登陆情况。51Testing软件测试网(M yqC|_&gL

Am1?Ech1\;?$`{#s%o0在我们的团队中资深的测试人员要具备的一项基本的素质就是可以针对UML的用例图,时序图,状态图来设计出重要系统的测试案例,只有重要系统的质量得到充分的测试,游戏程序的质量才可以得到充分的保证。比如上图中就是一个用户登陆游戏系统的时序图。从这里我们可以很明确的了解玩家是如何验证并登陆系统的,在这个过程中要与那些对象进行交互,比如这里我们就是三个系统之间的交互,客户端(玩家部分),网关,账号服务之间的一个时序变化关系,为了能够完整的对这个流程进行测试,我们必需设计出可以覆盖整个流程的测试案例,并考虑其中可能的非法情况,因为这个时序图只是考虑了用户正常登陆成功的情况,并没有考虑密码错误,通信失败等许多可能存有的情况,并形成完整的测试案例库,从而对登陆系统的系统化测试做了充分的准备。同时通过这张图,性能分析人员还可以分析出可能存的性能瓶颈,比如这里可能有的瓶颈如下,总网关是否可以达到多少用户的并发,是如果达不到,是否可以采用分布式部署或是支持负载平衡,三者之间的网络带宽的比例分配,账号服务器是否可以承载多个网关的连接请求,最大连接请求可以达到多少等等,同时会针对这些风险做性能测试的设计,并提出自动化测试的需求,比如模拟玩家登陆的压力工具等等。51Testing软件测试网g6x"^'r{:i

^1BuIJ@:b6b;M0同时在设计评审时,测试人员的介入可以充分的对当前的系统构架发表自己的意见,由于测试人员的眼光是最苛刻的,并且有多年的测试经验,可以比较早的发现曾经出现的设计上的问题,比如在玩家转换服务器时是否作了事务的支持与数据的校验,在过去设计中由于没有事务支持与数据的校验从而导致玩家数据丢失,而这些风险可以在早期就规避掉。上面所说的是对游戏程序本身的测试设计,对于游戏情节的测试则可以从策划获得,由于前期的策划阶段只是对游戏情节大方向上的描述,并没有针对某一个具体的情节进行设计,进入设计阶段时,某个游戏情节逻辑已经完整的形成了,策划可以给出情节的详细设计说明书,称为任务说明书,通过任务说明书我们可以设计出任务测试案例,比如某一个门派的任务由那些组成,我们可以设计出完整的任务测试案例,从而保证测试可能最大化的覆盖到所有的任务逻辑,如果是简单任务,还可以提出自动化需求,采用机器人自动完成。
1o U]A kCSn e0
7l$I r.A;`0游戏测试与开发
)JgE j3xE,~N?0开发与测试一直有人认为是不可以平行进行的,必需要先开发后测试,但是软件的开发过程又要求测试必须早期介入,但在这里这种矛盾得到了很好的解决。我们采用了每日编译,将测试执行和开发结合在一起,并在开发阶段以编码--测试--编码--测试的方式来体现。也就是说,程序片段一旦编写完成,就会立即进行测试。普通情况下,先进行的测试是单元测试,但是一个程序片段也需要相关的集成测试,甚至有时还需要一些特殊测试。特别是关于接口测试,像游戏程序与任务角本、图片的结合,大家都认为需要提前测试,通过每日编你可以把已经写好的程序片段接合起来,形成部分的集成测试,从而有效的体现的接口优先测试的原则。同时由于软件测试与开发是并行进行的,并且实行的是软件缺陷优先修改的策略,所以很少会出现缺陷后期无法修改的情况,并且由于前期的测试案例的设计与自动化工具的准备,我们不需要投入太多的人力就可以极高的保证游戏软件的产品质量,特别是重要系统的质量。由于我们的游戏程序是每日不断的完善,所以集成测试也在同步的进行之中,当开发进入最后阶段时,集成测试也同步的完成了。这里有一个原则,也就是我前面所说的,测试的主体方法和结构应在游戏设计阶段完成,并在开发阶段进行补充(比如在游戏开发中会有相应的变动,或是某个转移变地址的变化,这就需要实时的更新)。这种方法会对基于代码的测试(开发阶段与集成阶段)产生很重要的影响,但是不管在那个阶段,如果在执行前多做一点计划和设计,都会大幅度的提高测试效率,改善测试结果,同时还有利于测试案例的重用与测试数据的分析,所以我们的测试计划是在策划时就形成了,为后继的测试形成了良好的基础。
yew'F^+S$y0tH051Testing软件测试网p)L uj;Rw
集成测试阶段51Testing软件测试网Y5Q#lP.U
集成测试是对整个系统的测试。由于前期测试与开发的并行,集成测试已经基本完成,这时只需要对前期在设计阶段中设计的系统测试案例运行一下就OK了。我们主要的重心在集成测试中的兼容性测试,由于游戏测试的特殊性,对兼容性的要求特别高,所以我们采用了外部与内部同部进行的方式,内部我们有自己的平台试验室,搭建主流的硬软件测试环境,同时我们还通过一些专业的兼容性测试机构对我们的游戏软件做兼容性分析,让我们的游戏软件可以跑在更多的机器上。51Testing软件测试网G'p:G9P U!H:_JyG.]
51Testing软件测试网N&Lqa}\t
游戏可玩性测试
fv|Lc$iWd|S0游戏可玩性测试也是非常重要的一块,主要包含四个方面:
;f ? h R8P0
JgvF)c8k8l9K&z01.游戏世界的搭建,包含聊天功能,交易系统,组队等可以让玩家在游戏世界交互的平台。51Testing软件测试网h4b0[)z8|UCW1v
51Testing软件测试网viqfB$o N]9Q
2.游戏世界事件的驱动,主要指任务。
_7kEp\\N1}0
{ \ w7OF03.游戏世界的竞争与平衡。
!b3Q CXG R#p"lF051Testing软件测试网IW m b?_oF
4.游戏世界文化蕴涵,游戏的风格与体现。
K8@#[#gMWj U%B}:R051Testing软件测试网 ie G J"d OL+b`M
这种测试主要体现在游戏可玩性方面,虽然策划时我们对可玩性作了一定的评估,但这是总体上的,但一些具体的涉及到某个数据的分析,比如PK参数的调整,技能的增加等一些增强可玩性的测试则需要职业玩家对它进行分析,这里我们主要通过三种方式来进行:51Testing软件测试网y_eu?+|*]\ d I r

^6|aq.p!h.d051Testing软件测试网U4o K$\5c Yl
1.内部的测试人员,他们都是精选的职业玩家分析人员,对游戏有很深的认识,在内部测试时,对上面的四点进行分析。51Testing软件测试网w\,oVc+RLA!e$h D
51Testing软件测试网K%}#M;{]O$Ny(j
2.利用外部游戏媒体专业人员对游戏作分析与介绍,既可以达到宣传的效果,又可以达到测试的目的,通常这种方式是比较好的。
2uOSO"~M c,l+S051Testing软件测试网2A)?,~ C&['gs @
3.利用外部一定数量的玩家,对外围系统的测试,他们是普通的玩家,但却是我们最主要的目标,主要的来源是大中院校的学生等等,主要测试游戏的可玩性与易用性,发现一些外围的Bug。51Testing软件测试网;F1X2hEz s$[
51Testing软件测试网 ma ?(z8Uc
4.游戏进入到最后阶段时,还要做内测,公测,有点像应用软件的beta版的测试,让更多的人参与测试,测试大量玩家下的运行情况。
t rub7F3X8g]TcUoA0
AlH6h1|$h;H C0可玩性测试是游戏最重要的一块,只有玩家的认同,我们才可能成功。51Testing软件测试网!^Z*oe@7t.NsQ

/fHu8Hg9z8mz| b%G(U0性能测试与优化51Testing软件测试网 {8eT W$d`kWP
最后要单独提一下的是性能优化,在单机版的时代,性能的要求并不是很高,但是在网络版的时代,则是两个完全不同的概念,主要包含了以下几个方面:应用在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下,三方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。不过在测试过程中有这样一个原则,就是由于测试是在集成测试完成或接近完成时进行,要求测试的功能点能够走通,这时你首先要进行优化的是数据库或是网络本身的配制,只有这样才可以规避改动程序的风险。同时性能的测试与优化是一个逐步完善的过程,需要前期的很多的工作,比如性能需求,测试工具等等,不过由于前期工作的完善,这些都在前期完成了。这里我只做原则性的描述。51Testing软件测试网u X4{.r?

8cv C |r0数据库的优化的原则主要是这样的,首先是索引进行优化,由于索引的优化不需要对表结构进行任何改动,是最简单的一种,又不需要改动程序就可能提升性能若干倍,不过要注意的是索引不是万能的,若是无限的增加会对增删改造成很大的影响。其次是对表,视图,存储过程的优化。不过在分析之前需要知道优化的目标,客户行为中那些SQL是执行的最多的,所以我们必需借助些SQL的跟踪分析工具,例如SQLProfile,SQLExpert,等工具,这样会迅速的定位问题。51Testing软件测试网7DA{*Oy6~1eH
51Testing软件测试网'n}+\ uF:u;?B
关于网络的优化,这里我所说的并不是针对网络本身的优化,而是对游戏本身的网络通信的优化,所以它是与程序的优化是结合在一起的,首先也是发现问题,通过Monitor与Sniff先定位是什么应用占用了较多的网络流量,由于网络游戏的用户巨大,所以这也是一个重在的问题。对于程序的性能优化,最主要的是找到运行时间最长的函数,只有优化它,性能才有大幅度的提升,具体的方法我就不做详细的描述了。51Testing软件测试网_j.}UZ

#ko2FO0aU0总述
bS6[/g])Gv1g6b0游戏测试是一个新的领域,它既有通用测试的特点,又有自己的特点,有许多未知的路要走,每天都在总结,希望给大家带来一些帮助,同时在这里也谢谢所有支持我的同事。51Testing软件测试网'U@:HQ;xK/i

TAG: 测试理论

引用 删除 asking2030   /   2009-03-19 15:58:02


晕了 ,文章在51里面都还几篇重复的。 你们都是在那里抄袭的啊 。
 

评分:0

我来说两句

日历

« 2024-03-27  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 40289
  • 日志数: 50
  • 建立时间: 2006-12-25
  • 更新时间: 2007-02-06

RSS订阅

Open Toolbar