我继承了一个基于网络的教育游戏。在过去的一年里,我一直致力于稳定代码和添加新特性。大部分逻辑都在前端,所以后端单元测试虽然很有帮助,但只包含了一小部分代码。
游戏已经到了开始变得复杂的地步。每个游戏有两种不同的模式,根据不同的模式,游戏的行为也不同。也有各种影响游戏的旗帜。
我已经做了10+多年的应用程序开发人员,这让我感到困惑。在企业世界中,算法的作用总是相同的。我将为一个算法编写一个单元测试,我将期望值42,如果我没有得到这个值,它就会出错。
说到游戏,我就迷路了。我该怎么测试他们?我有可供我使用的测试人员。我可以花时间写单元测试。
测试人员是..。不可靠。他们不是最擅长解决问题的人,我也没有给他们最好的方向。如果没有花费大量的时间来测试每一个游戏的排列和组合,我应该如何使用它们作为资源呢?
单元测试似乎是有限的。由于大多数逻辑都是javascript (而且我继承了意大利面代码),所以我可以使用像Cucumber或selenium这样的前端套件来确保某些特性正常工作。
这是最好的策略吗?游戏公司如何测试游戏?
我读过"复杂游戏的测试驱动开发“这个问题(和其他网站上的问题一样),但它并没有解决我想要的问题。我要求的是策略,而不是如何测试的具体例子。
发布于 2014-09-08 17:37:53
在企业世界中,算法的作用总是相同的。我将为一个算法编写一个单元测试,我将期望值42,如果我没有得到这个值,它就会出错。
这在游戏中并没有什么不同。游戏中存在两种模式和多个标志并不会改变任何事情:如果使用特定的模式和一组特定的标志,那么在测试源代码的一部分时,仍然会得到相同的值。
有太多的模式和标志,游戏可能会很快变得很难测试,因为可能的变体数量。为了减少早期遇到这一困难的风险,您应该:
random(),那么每次都要模拟它以提供一个常量。最后,自动化每个测试。需要测试人员来发现应用程序失败的情况。使用测试人员一次又一次地在每个版本中执行相同的操作是适得其反和不尊重测试人员的:回归测试应该由机器进行,而不是由人来完成。另一方面,人们更善于发现可能的bug。“如果我.”这是他们可以使用的技术之一(“如果我在一个字段中输入几兆字节的二进制数据,其中包含了几个\x00,然后看看会发生什么呢?”),但是也可以使用更正式的方法。
https://softwareengineering.stackexchange.com/questions/255719
复制相似问题