为什么自动化测试不适用于游戏领域?

第一,成本问题。

首先来说说钱这个俗不可耐的东西。一个团队要不要做自动化测试,首先要考虑的可能不是技术方案而是我们能在质量上投入多少钱。成本主要来源于两个方面,一是自动化测试工程师的人力成本,二是实现自动化测试开发和维护的时间成本。这两项成本最终都会转化为金钱,体现在项目的总成本中。

一个自动化测试工程师的人力成本基本相当于2-4个普通的黑盒测试工程师,而在游戏项目中,黑盒测试工程师是必不可少的(至于原因,后面再说),也就是说自动化测试工程师是额外的成本。项目的成本能不能持续也是个问题,尤其是很多创业团队。

另一方面,自动化脚本的开发需要与程序和规划进行深度交互,这会消耗其他人的大量时间,从而影响其他人的工作进度,进而影响整个项目的进度。这是一个经常容易被忽视的成本。

第二,游戏的感官特点。

游戏是一种感官质量非常高的软件,与视觉、听觉、感觉直接相关,与传统软件有很大不同。在测试的过程中,人们需要直观地体验,比如图标的位置,音频是否合适,播放起来是否流畅等。这些都是自动化测试无法替代的,也是游戏项目中上述黑盒测试不可或缺的原因。

第三,迭代速度。

游戏的迭代速度比传统软件更快,尤其是手游行业。一周一个甚至几个版本都很正常。在这样的迭代速度下,自动化测试显然很难跟上项目的进度。很有可能某个功能已经启动,自动化脚本的开发还没有完成。面对这种时间上的不匹配,很多东西都成了天然的鸡蛋,自动化测试的作用相对降低了。

第四,需求变化的速度。

在游戏行业,需求变化的频率远远超过传统软件行业。原因很多,举几个:一是市场变化太快;第二,很多设计需要反复验证才能确定哪种体验更好;第三,移动互联网时代产品与用户之间的反馈时间缩短;第四,游戏功能之间的耦合度非常高,开发过程中一些功能的设计会使其他功能不再适用,必须重新设计。

那么问题来了,需求变化如此频繁,如何适应自动化测试?可能昨天写的剧本,今天找到的时候已经完全被抛弃了。目前我还没有想到好的解决办法。欢迎大家一起探讨。

结合以上几点,笔者并不认为全面的大型自动化测试适合游戏测试领域,尤其是手机游戏领域。或许小规模或者局部的自动化测试值得尝试,比如服务器的自动化测试(服务器变化相对不频繁,与人的感官联系不大,逻辑代码较多)。

自动化测试是一个很好的药方,对某些疾病有很好的疗效,但不能视为灵丹妙药。吃错了会死。