《Game Of AutoTest》的最后一篇文章,聊一下游戏自动化测试的价值。
一千个人心中有一千个哈姆雷特。仅以笔者的角度,游戏自动化测试的价值,可以体现在这几个方面:
- 效率提升
- 缺陷发现
- 质量监控
- 技术支持
做好自动化测试的价值分析,不仅能够自动化测试技术落地做足理论基础,而且也能在任意时候指引自动化技术落地者做好当下的决策,从而逐渐把自动化测试做出更大的规模跟成果。
效率提升
自动化测试作为代替人力的一种测试手段,最为基础核心的价值就是减少人力劳动,实现测试效能的提升。在自动化技术基础稳定性恒定的前提下,自动化用例产出的越多,运行/节省的时间越多,那么带来的测试效率提升也会越多。
考虑到游戏项目较短的生命周期,要成功落地自动化测试并做成成熟的日常业务,并不是一件容易的事情,尤其是当没有技术基建的支持下,从零到一去做自动化技术,会很容易陷入唯技术的误区。这种情况下,首先要考虑的就是一些操作复杂度并不高,但测试内容多的测试场景,这类测试场景就比较适合作为自动化初期落地的切入点。好比说一款大世界的游戏,对于大世界布怪相关的遍历测试,就是一种适合自动化的场景。不仅可以显著减少人力成本,而且其中的测试数据生成、玩家操作实现相关的内容,也有复用到其他测试场景的潜力。
当更多操作简单而测试量大的场景被自动化后,得到的初步成果就是,整体人力成本有显著的降低幅度。这样,测试人员也更愿意相信跟接纳自动化测试技术,会认为自动化测试技术能切实地解决日常工作中的效率难点。以这种信任为基础,作为自动化技术的落地者,后续也能够腾出更多思考空间,去探索自动化测试在实际业务中更多的可能性。
缺陷发现
很多测试同行在接触游戏自动化测试的时候,都会提出一个问题:自动化测试能发现什么游戏缺陷?这个问题其实本身就不够严谨。当我们谈游戏性能测试、压力测试的时候,我们实际是需要测试出一些反映产品质量的指标;而当我们谈自动化测试的时候,实际是在讨论一种测试的方式。所以说,自动化测试能发现什么缺陷,这个问题,提问的方式不对。对于测试工作而言,自动化是一种手段;而对于质量保障而言,测试本身就是一种手段。当讨论到质量保障的问题,如何设计测试策略才是关键,而不是实现测试的方式。因此,缺陷发现,其核心还是测试策略决定的,而不是自动化本身。
当然,这并不代表自动化测试不能决定缺陷发现,这是因为,自动化测试应用到的场景也是有限度的,因此这种手段也只能发现适用于自动化测试的业务场景中生成的缺陷。
对于一般的业务系统,自动化适合做业务基础功能的冒烟测试,因此其发现的缺陷,也将局限在冒烟测试所覆盖的范围内。这种情况下,即便发现的缺陷数量不会很多,但发现的缺陷严重程度一般都比较重,甚至阻塞整个功能。在笔者做自动冒烟测试的经验中,发现的缺陷里面,大约三分之二是显著影响玩家体验的。这种场景下,自动化测试就适合做成日常质量监控的形式,详细会在质量监控部分阐述。
对于复杂度较高,无法充分遍历所有情况的系统,自动化适合做随机的探索测试。比如针对各种UI场景的MonkeyTest
,或者是针对某些游戏机制排列组合的随机检查/全量遍历,都是自动化测试可以发挥的地方。这种场景下,自动化测试既可以发现人工难以探索到的功能缺陷,也可以发现许多偶现甚至必现的崩溃操作。
如果应用自动化测试过程中,比较注重缺陷发现的话,建议在测试场景选型上,就有限选择缺陷量较大、疑难杂症较多的游戏系统尝试应用自动化测试,这样才能使得缺陷发现方面可以达到更大的效果。自动化测试,更多的是工具性作用,而非业务性作用。
质量监控
自动化测试作为一种代替人力实现缺陷发现的方案,本身就有做成日常质量监控的能力。测试人员可以不受工时限制,随时随地发起自动化测试,并即时产出游戏报告,做到实时的测试闭环。因此可以说,不仅是对测试工作本身,对于质量保障而言,自动化测试也可以发挥作用。
针对不同的场景,质量监控的时机和周期也是不一样的。好比说,针对每日主干版本的服务器、客户端发布,需要有实时的自动化测试用以验证服务器和客户端基本功能可用;针对重点但质量问题较多的玩法,需要有周级甚至日级的冒烟测试以保证基本功能可用。此外,针对一些探索性的测试内容,也可以放到日常的质量监控环节,可以和人工测试形成优势互补。
这里需要注意的是,过量的质量监控并不一定能够对业务本身带来更多的正向效益。质量监控是倡导实时反馈的,但是尤其在游戏里,针对较长链路的业务功能自动化测试,如果有测试失败的情况,报错结果并不一定能够直接反映问题的根因,甚至还可能存在因自动化稳定性不足导致用例执行无效。因此,许多自动化测试过程需要人工介入排查问题根因和复现手法,才能完成缺陷反馈的闭环。人工排查本身就会带来工作成本,如果质量监控的覆盖面非常大,但人力无法支持问题排查工作的话,就会造成很多自动化测试内容是冗余的,没有形成最终的业务闭环。因此,在自动化落地到日常质量监控时,需要时刻把握自动化的量以及人工整合工作的平衡,首先保证自动化测试在整个业务闭环的的有效性,在此基础上才再逐步提升监控的量。
如果监控的内容是针对游戏配置、资产检查之类的内容的话,那么由于这些测试的链路较短,测试结果能够直接反映质量情况,整个流程能直接闭环,因此是多多益善的。
技术支持
除了业务落地性质的内容之外,自动化测试本身作为一种测试技术,本身就具有技术价值。这部分尤其体现在,游戏自动化技术可以直接和游戏客户端/服务器等程序运行时交互,从而能够很方便地通过程序手段访问游戏运行的数据。好比说,压测场景构造、特定玩法测试账号构造、游戏日志解析、游戏数据收集以及玩家操作录制回放,这些人工难以操作的内容,通过自动化技术都可以迅速解决。
自动化技术不能代替人去判断某些事物的合理性,但可以简化并代替人的操作,在更加细致的粒度上去控制整个游戏程序。充分利用这一点,可以让自动化技术在更多的玩法测试上发挥可能性。
总结
游戏自动化技术,无论是对测试技术的丰富,还是对于测试效能的提升,或者是对整个质量保障业务的巩固方面,都有充分的发挥余地。游戏自动化测试能够产生业务价值,坚持这样的信念,是成功落地自动化技术的第一步;从技术选型,到框架设计,再到稳定性保障,做好技术方面的基建,是落地自动化技术的第二步;整个测试团队通力协作,充分发挥自动化技术的优势,由点到面丰富自动化玩法测试策略,固化日常质量监控和测试执行业务,这是落地自动化技术的最后一步。如果你是一个负责游戏自动化专项测试的同学,请坚信游戏自动化技术带来的价值。无论遇到什么困难,做好技术基建,做好业务沟通,就算有再复杂的问题,最终都可以迎刃而解。