软件测试技术

当前位置:首页 > 软件测试技术

《游戏测试精通》 第十章

第十章 组合测试



通常,测试员和工程经理要常常面对这样的问题,即多少测试太少、太多或刚刚好。游戏质量当然是越高越好,得让消费者觉得足够好,但是,如果游戏接近了它的发售日期,那么测试就不能再无限地继续下去了。此时,要想对游戏的事件、配置、功能和选项等所有可能的组合进行测试既不现实也不经济。但减少或省略一些测试又要承担风险。其实,只要测试覆盖了足够的功能,就可以将测试集弄得小一点,成对的组合测试是发现缺陷和对游戏软件获得信心的一种方法。“ 成对”组合就是说,用于测试的每个值都需要和余下的参数的值至少组合一次。


10.1 参数


参数是组合测试和游戏中的一个独立要素。你可以通过考虑不同种类的游戏要素、功能和以下选择,从而得到测试参数:


●游戏事件

●游戏设置

●游戏选项

●硬件配置

●人物属性

●定制选择


你创建的测试可以是同类的(homogenous)——测试同类型参数的组合,或异类的(heterogeneous)——设计来测试同一个列表中的多种类型的参数。


例如,对游戏屏幕中选项的测试是为了测试它们对游戏机制的影响,是通过同类组合的列表来得以完成的。如果你搜查各种菜单去选择用于特殊使命的不同人物、设备和选项,那么结果就是通过异类列表而得出的。


10.2 值


值是对于任一个参数都可能的独立选项。值可以作为数字、文本而被输入,或从列表中得以选取。游戏者有很多的选择,但它们都是测试所必须考虑的吗?也就是说,每个单独的值或选择都同等重要,或都有可能发现缺陷?但在不影响你游戏中发现的缺陷的情况下,你能减少测试的值的数量吗?


10.2.1 默认值


请考虑测试是否要用到默认值。如果没有选择特殊的选项,只是在安装之后就开始游戏,这些就是默认的设置和值。如果玩家想要尽快开始游戏,只敲击选择键来完成所有必需的选择,那么这就要用到默认值。


如果组合测试是唯一将要用到这些参数的测试,那么它必须包括默认值。因为它们是常被用到的值,几乎会影响到每个游戏。另一方面,如果组合测试是其他类型测试的补充的话,那么可以通过将默认值从列表中去掉,来减轻测试的负担。这个策略基于这样一个事实,默认值被如此频繁地使用,以至于你能预期到它们会出现在为游戏所做的其他测试中。如果你考虑将这些值去掉,请和其他正在计划使用这些默认值来做这个游戏测试的小组和人员取得联系。如果你有一个游戏测试计划,可以用它来记录哪个测试组会整合默认值,而哪些组不会。


10.2.2 枚举


游戏中的许多设置都是由一组不相关的值或选项组成的,这些值或选项相互间没有任何数字方面或顺序方面的联系。例如,选择开哪辆车、在哪支棒球队打球,或选用哪名拳击选手都是如此。


不管设置(团队、车、拳击手、武器、歌曲和发型等)中选项的数量是多少,每一个选项值都应该在你的测试中得到体现。包含独立设置的地方存在的bug容易被发现。而一些容易忽略的bug,通常只发生少数几种选择里。


10.2.3范围


许多游戏选项和选择要求游戏者从一个范围或列表中选取一个数字。你可以通过直接输入一个数字或者滚动列表进行选择。在每个数字的范围中,三个特别的数值通常具有显示缺陷的特别属性:0,最小值和最大值。任何时候,0都是作为一种可能的选择或输入出现,测试中应当包括这个数值。部分原因是,0值可能以一种唯一的或模糊的方式影响游戏的源代码。下面是有可能由0无意引起的结果的部分列表:


●一个循环可能过早的结束或者在到达0之前总做其他事

●在0或1间开始的循环计数混乱

●在索引0或1间开始的数组或列表混乱

●0经常被用作表示特殊的意思,如用于无限循环,或者表示已发生错误

●在C语言中,0的值与NULL字符的值是一样的

●在C语言中,0的值与逻辑(布尔逻辑的)false的值是一样的


最小值也是缺陷的一个好源头。它们能被运用于数字参数或列表选择中。可在以下有关的参数中寻找使用最小值的机会:


●时间

●距离

●速度

●数量

●规模

●赌注


例如,一旦开始,使用时间的最小值可能不会允许产生某些影响,或者可能使得某一目标无法获得。


最大值也会产生不合要求的情况。对于到达最大值,这给测试员增加了额外的时间或技能负担,但测试最大值尤其重要。为了测试起来“更容易”,开发者和测试员常常忽略这些值。


在前述列表中,为了得到同样的最小值参数种类,请使用最大值。除了测试游戏内的要素外,请确定也包括了测试游戏者的最大数目、已存文件的最大数目和最大存储(光盘和硬盘等)空间。


10.2.4 界限


当一个孩子(甚至一个大人)在一个彩色书上练习填色时,我们判断他涂得好坏的标准是看颜色是否出界。同样地,游戏测试员有责任去检查游戏软件的边界。不“在线内”的游戏行为会导致缺陷。一些边界在游戏中可能是有形的,比如下面这些:


●城镇、 王国或城市边界.

●体育赛场或球场中的球门线、边界线、罚球线和底线

●使命或赛车沿途停车点

●起跑线和终 点线

●入口和出口


其他的边界则是无形的,包括:


●使命、 游戏或比赛的计时器

●人物或机动车能获得的速度

●射弹能到达的距离

●图形元素可见、透明或不可见的距离


努力钻研游戏规则,以辨别隐藏的或隐含的边界。


例如,在足球赛中,规则和行动是跟比赛的时间紧密联系在一起的。足球比赛的时间被分成同等长度的四节,第二节之后比赛中会出现一个中场休息。在第四节结束时,如果一个队比另一个分数多,那么比赛就结束了。每个半场都留有两分钟,让裁判停止计时器进行两分钟警告。为了测试一场足球赛,两分钟是个好的边界值,可以看比赛的第二节和第四节是否正常开始,或是是否包含这一特殊的两分钟警告时间。让游戏持续三分钟时会很有趣,因为不包括两分钟警告时,这是比赛能持续的最短时间。


另一个例子跟ESPN NFL 2K5中的CRIB人物有关,若玩家在单玩家模式、赛季的一节或一段职业生涯中完成了相应的任务或取得了相应的成绩,他就会获得相应的奖励。但有趣的是游戏持续的时间少于五分钟和多于八分钟,即使取得了成绩也不会得到奖励。这就产生了有趣的两个边界值。



相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~