首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏测试策略

游戏测试策略
EN

Software Engineering用户
提问于 2014-09-08 15:49:23
回答 1查看 1.7K关注 0票数 13

我继承了一个基于网络的教育游戏。在过去的一年里,我一直致力于稳定代码和添加新特性。大部分逻辑都在前端,所以后端单元测试虽然很有帮助,但只包含了一小部分代码。

游戏已经到了开始变得复杂的地步。每个游戏有两种不同的模式,根据不同的模式,游戏的行为也不同。也有各种影响游戏的旗帜。

我已经做了10+多年的应用程序开发人员,这让我感到困惑。在企业世界中,算法的作用总是相同的。我将为一个算法编写一个单元测试,我将期望值42,如果我没有得到这个值,它就会出错。

说到游戏,我就迷路了。我该怎么测试他们?我有可供我使用的测试人员。我可以花时间写单元测试。

测试人员是..。不可靠。他们不是最擅长解决问题的人,我也没有给他们最好的方向。如果没有花费大量的时间来测试每一个游戏的排列和组合,我应该如何使用它们作为资源呢?

单元测试似乎是有限的。由于大多数逻辑都是javascript (而且我继承了意大利面代码),所以我可以使用像Cucumber或selenium这样的前端套件来确保某些特性正常工作。

这是最好的策略吗?游戏公司如何测试游戏?

我读过"复杂游戏的测试驱动开发“这个问题(和其他网站上的问题一样),但它并没有解决我想要的问题。我要求的是策略,而不是如何测试的具体例子。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2014-09-08 17:37:53

在企业世界中,算法的作用总是相同的。我将为一个算法编写一个单元测试,我将期望值42,如果我没有得到这个值,它就会出错。

这在游戏中并没有什么不同。游戏中存在两种模式和多个标志并不会改变任何事情:如果使用特定的模式和一组特定的标志,那么在测试源代码的一部分时,仍然会得到相同的值。

有太多的模式和标志,游戏可能会很快变得很难测试,因为可能的变体数量。为了减少早期遇到这一困难的风险,您应该:

  • 严重地模仿/存根。保持测试部件的小,并模拟他们所依赖的一切。如果它们依赖于时间,则模拟time对象,使其始终提供特定的结果或一组特定的结果,而不依赖于实际时间。如果他们依赖于random(),那么每次都要模拟它以提供一个常量。
  • 重构。如果测试开始过于复杂,或者如果您看到要进行测试,在实现依赖项注入之后需要12个参数,而在实现之前只需要两个参数,则需要重构代码。
  • 质疑应用程序的实际业务规则。我不再计算几乎不可能测试的项目数量,因为功能需求所要求的不同变化的数量是没有人需要或理解的--甚至是利益相关者。当一个小型的电子商务网站需要10页来解释如何计算运费的功能需求时,人们不应该从编写测试或代码开始,而应该回到利益相关者那里,与他们合作产生合理的需求。

最后,自动化每个测试。需要测试人员来发现应用程序失败的情况。使用测试人员一次又一次地在每个版本中执行相同的操作是适得其反和不尊重测试人员的:回归测试应该由机器进行,而不是由人来完成。另一方面,人们更善于发现可能的bug。“如果我.”这是他们可以使用的技术之一(“如果我在一个字段中输入几兆字节的二进制数据,其中包含了几个\x00,然后看看会发生什么呢?”),但是也可以使用更正式的方法。

票数 16
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/255719

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档