游戏邦在:
杂志专栏:
gamerboom.com订阅到鲜果订阅到抓虾google reader订阅到有道订阅到QQ邮箱订阅到帮看

分析软件测试与游戏测试之间的区别

发布时间:2014-07-24 15:08:42 Tags:,,,,

作者:Johan Hoberg

测试一款应用或软件系统与测试一款游戏具有怎样的区别?这是我在面对10年的软件测试以及手机内部的质量保证工作,并开始转向游戏时问自己的一个问题。我已经阅读了几乎所有一切有关软件测试的内容,但是我却不是很了解游戏测试。所以我购买了两本关于游戏测试的书籍想要对此拥有一些基本的了解,并且我也花了几周的时间进行一些尝试。

为了辅助自己的能力发展,我尝试着写下自己到目前为止所学到的内容。

软件测试是一种工程学科。这同样也适用于游戏测试。是的,你可以玩游戏,并且无需拥有任何结构或专业知识便能够找到漏洞,就像你能够测试手机的运行那样,但如果你想要超越需求而成为一名专业的测试者的话便另当别论了。

作为一名专业的游戏测试员意味着你既需要理解整体的测试,也需要了解游戏测试的特殊规则。这是个不小的壮举,就像软件测试非常复杂且具有多个层面,而游戏测试要求更加特定的技能。

在我们探索区别前,我们需要先认可软件测试和游戏测试间的相同点。基本上看来,Cam Kaner在Black Box Software Testing所写的一切内容都适用于这两个领域。Alan Page写的关于测试自动化的所有内容也能够应用于游戏测试中。大多数包含于ISTQB测试认证中的内容也是可靠的。游戏测试从基本上来说继承了软件测试的每一方面。甚至是James Bach的心态及其快速软件测试也是为游戏测试量身定制的。谷歌和微软与软件测试间的合作也能教授游戏测试者如何更有效地组织测试。

testing(from gamasutra)

testing(from gamasutra)

游戏测试与其它测试一样复杂,所以我们应该基于同样的方式去看待它。这是门外汉所做不来的事。存在实时用户测试或β测试空间,但这些只是一个更大难题中的一些小组件。如果将游戏测试难度变成只通过游戏便能够找出任何问题,这便会大大削弱游戏的质量。

所以游戏测试有什么独特之处?游戏测试区别于普通软件测试的点在哪?我尝试着列出一些导致游戏测试特别麻烦的测试类型。

有趣元素测试

平衡测试

游戏关卡/世界测试

AI测试

多人玩家/网络测试

音频测试

物理元素测试

现实测试

修改API测试

关于可用性或用户体验的测试是面向所有软件,但有趣元素测试则是只针对于游戏,因为它们属于娱乐产品。游戏不只应该直观地运行,提供优秀的用户体验,它们还需要拥有尝试的乐趣。你是如何评估某些内容是否有趣?你是如何清除某种特定的体验是否能够诱导目标群组?这要求你对游戏设计,整体体验以及有关用户群组以及该群组喜欢什么等数据具有独特的洞察力。

创造不同选择间的平衡,以及不同关卡,怪物或事件间的难度平衡也是只存在于游戏中。你只有了解游戏设计以及目标用户对于不同难度关卡的回应,你才能做好平衡测试。这也要求你在测试期间投入好几个小时去玩游戏。

游戏测试最复杂的一个元素可能是对于真正世界或关卡的测试,特别是当你面对的是现代MMO中那样巨大的3D世界。其中的某些部分可能是自动的,即只针对于游戏测试,如拥有bot能够贯穿游戏世界自由移动,去观察它们是否会深陷其中或找到其它问题。随着任务复杂性的提高,通过帮助或工具去降低难度变得更加重要。对于益智游戏而言,确保所有关卡图像的显示有效非常重要,同时每个关卡也必须是可行的,之前分开测试的游戏机制将基于不同层面的执行发挥作用。

测试计算机控制的对手正有效运行着,人工智能是根据设计发挥作用,而随着行为的增加这也将变得更加复杂。象棋是一个非常棒的例子,第一人称射击游戏的敌人更加现代。这种类型的测试要求测试者了解触发不同行为类型的元素,以及这些触发元素是否会被不同参数所迷惑。了解AI和游戏设计是在这领域获取成功的关键。

多人玩家测试本身就是另一大“怪兽”。许多玩家将同时与游戏世界进行互动,即伴随着受计算机控制的对手,游戏服务器等等。在这种情况下很多内容会出错。这经常要求一整个测试团队的注意。如果你不想花无限的时间去测试不同场景,你就需要做出一个机遇风险的难度决定。了解多人玩家游戏设计以及作为一个团队如何有效地测试是这类型测试中的关键。

音频测试在创造各种声音或播放媒体的所有软件中很常见。然而游戏拥有其他软件并不关心的独特元素。游戏音乐必须能够将用户带进游戏中,并加强游戏体验。音频不仅需要不缺少任何元素而有效地播放,同时还应该能够整合到游戏玩法中。这要求开发者具有大量的音频技巧以及对于游戏音频拥有特殊的了解。

许多现代3D游戏拥有物理引擎。如《战地》或《危机》等现代射击游戏以及《天际》等RPG便拥有破坏性环境和可能性。物理引擎测试要求你既需要了解物理元素同时也必须清楚如何在游戏中有效地执行它。测试的复杂性将伴随着引擎复杂性的提高而提高。

测试真实性对于模拟游戏或赛车游戏特别重要,因为这类型游戏更加真实,但许多其它游戏业要求整合真实元素。所以对于现实性的测试要求开发者对特定领域具有特别的了解。一款飞机模拟游戏会要求你了解飞机。还有汽车,武器,人类移动,动物等等领域。并且每个领域都有其自身的问题。

许多软件拥有第三方能够使用的开放性API。但还有一些其它例子是玩家能够利用这些开放性API去获得不公平的游戏又是。这要求你进行创造性思考。modder是如何使用API,它们是否能够基于有效方式改变游戏玩法?领先整体modder社区一步真的是一个让人畏缩的任务。

除了这些不同的测试类型外,不同游戏也有可能根据不同方式去划分用户,所以开发者应该相对地选择怎样的测试和用户案例更适合自己。

我尝试着列出了如何创造特殊的测试体验的方法。我敢保证还有更多不同的方法,我也希望能够随着自己在游戏测试方面的不断进步而认识更多元素。

不过有一点是值得肯定的。那便是游戏测试真的很复杂,其复杂性也会随着游戏的发展变得更加复杂。这是一场组合爆炸,只能通过巧妙的测试得到解决。低估游戏测试的能力和努力将会削弱任何游戏的质量。

真正重视游戏测试的测试者需要精通许多技巧,方法和过程,并且需要基于许多其它软件测试领域所未要求的方法去了解他们的产品。

本文为游戏邦/gamerboom.com编译,拒绝任何不保留版权的转载,如需转载请联系:游戏邦

Differences between Software Testing and Game Testing

by Johan Hoberg

What is the major difference between testing an application or a software system compared to testing a game? This is the question I asked myself when I switched jobs after ten years of working with software testing and quality assurance within mobile phones, to start working with games. I have read almost everything there is to read about software testing in general, but I have no real knowledge about game testing. So I have bought two books on game testing to get some basic understanding, and worked a few weeks to get some practical hands on experience.

To aid in my own competence development I tried to compile what I have learned so far.

Software testing is an engineering discipline. This is also true for game testing. Yes, you can play games and find bugs without structure or expert knowledge just as you can test that a mobile phone works, but if you want to exceed you need to become a professional tester.

Being a professional game tester means that you must understand both testing in general, but also the unique discipline of game testing. This is no small feat, as software testing is very complex and multifaceted, and game testing requires very specific skills.

Before we can explore the differences we need to agree on the similarities between software testing and game testing. Basically everything that Cem Kaner has written in his course Black Box Software Testing [1] is in my opinion applicable to both fields. Almost everything Alan Page has written about test automation [2] can also be applied to game testing. Most of what is included in the ISTQB testing certifications [3] should also be valid. Game testing basically inherits almost every aspect of software testing in general. Even the mindset of James Bach and his rapid software testing [4] can basically be tailor made for game testing. How Google and Microsoft works with software testing can teach game testers a lot about how to structure and organize testing in a good way.

Game testing is every bit as complex as any other testing, and should be treated in just the same way. It is not something that can be left to untrained laymen. There is a place for live user test, or alpha and beta test, but those are just a few pieces in a much larger puzzle. To reduce game testing to something as simple as just playing the game to see if you find any problems, is to seriously undermine the quality of your game.

So how is game testing unique? What aspects make game testing different from normal software testing? I tried to compile a list of types of testing that makes game testing especially troublesome. [7][8][9]

Fun Factor Testing

Balance Testing

Game Level/World Testing

AI Testing

Multiplayer/Network Testing

Audio Testing

Physics Testing

Realism Testing

Modification API Testing

Usability or user experience is something that is tested for all software, but Fun Factor Testing is something unique to games, since they are an entertainment product. Games are not only supposed to work intuitively and provide a good user experience – they also have to be fun to play. How do you assess if something is fun or not? How do you know if a certain experience is something that will entice the proposed target group? This requires a unique insight into game design, and vast experience and data about the user group and what that group enjoys.

Creating balance between different options, as well balance of difficulty for different levels, monsters or events, is also something unique to games. Balance Testing can only be done in a good way with a vast knowledge of game design and how the target audience responds to different difficulty levels. It also requires many hours of actual gameplay of the game under test.

One of the most complex aspects of game testing can be the testing of the actual world or level, especially if it is a vast, sprawling, 3D world, such as for modern MMOs. Some parts of this can be automated in interesting ways that are also quite unique to game testing, such as having bots move randomly through the game world to see if they get stuck or find other problems with the world. As the complexity of the task grows, it becomes more and more important to find ways to reduce the complexity with the help of tools. For puzzle games it is important to make sure that all the graphics for every level looks good, but also that each level is passable, and that game mechanics that have previously been tested in isolation, actual work in different level implementations.

Testing that computer-controlled opponents are working correctly, that the artificial intelligence is behaving according to design, can also become very difficult as the complexity of the behavior increases. Chess is a good basic example, and enemies in a first person shooter is a more modern one. This type of testing requires the tester to understand what triggers different types of behavior, and how these triggers can be confused by different parameters. Understanding of AI and game design is critical to succeed in this field.

Multiplayer testing is a whole other beast in itself. Many players simultaneously interacting with the game world, with computer-controlled opponents, with game servers, with each other. So many things that can go wrong. And it often requires a whole team of testers. Many difficult risk-based decisions to make if you don’t want to spend unlimited amounts of time testing different scenarios. Understanding of multiplayer game design, and how to test efficiently as a team is required knowledge for this type of testing.

Audio testing is common in all software that creates some kind of sound or plays media. However games have a unique aspect that other software does not have to care about to the same extent. Game music has to involve the user in the game and enhance the game play. Not only should the audio play without stuttering or missing elements, it should also add to the gameplay. This requires extensive audio skills and specific understanding of game audio. Very specific expert domain knowledge.

Many modern 3D games have physics engines. Modern shooters such as Battlefield or Crisis and RPGs such as Skyrim, have destructible environment and possibilities to throw objects. Testing if the physics engine works requires an understanding of physics as well as how to implement that in a good way into a game. The complexity of the testing grows with the complexity of the engine.

Especially in simulators or racing games it is very relevant that the game feels real, but many other games also incorporate elements that need to feel real. Testing for realism requires specific domain knowledge needed for the game or game element. An airplane simulator requires an understanding of airplanes. Cars, weapons, human movement, animals. Each poses their own problems.

A lot of software has open API that can be used by third parties. But there are few other instances where the players will try to exploit these open API to gain unfair gameplay advantages. This requires outside-the-box thinking. How will the modders use the API, and how will they be able to alter the gameplay in significant ways? Being one step ahead of the entire community of modders is a daunting task indeed.

In addition to these different types of testing, categorizing users can most likely also be done in a unique way for games, to help prioritize and select what tests and use cases are most relevant to run. How to do this categorization is another article in itself, but I leave you with an example of how you could think about categorizing different types of gamers.

I have tried to cover some of what makes games a unique testing experience. I am sure there is even more, and I hope that I will be able to identify even more aspects as my experience in game testing grows.

One thing is already certain however. Game testing is very complex, and the complexity will grow as games become more and more complex. It is a combinatorial explosion that can only be handled by testing in a very smart way. Underestimating the competence and effort required to test games is something that can undermine the quality of any game.

Any tester who takes their game testing seriously need to master a large number of techniques, methods and processes, and understand their product in a way which is not required for many other software testing fields.

A daunting task indeed.(source:gamasutra)

 


上一篇:

下一篇: