嘉宾 | 曹文升
作者 | 武穆
审校 | 云昭
提及游戏,相信很多人想到的是一款款DAU上千万甚至过亿的爆款游戏。然而,享受了爽到尖叫的游戏体验后,玩家在兴奋之余可能会好奇是哪家公司或者哪个工作室开发出来的,却少有人提及如此优异的游戏性能是如何做到的。
其实,打造一款爆款游戏的背后,除了精心的策划与研发之外,更重要的,则是游戏性能专项与质量测试。游戏测试在外人看来好像是在“打游戏”,实则有非常繁冗复杂的技术细节值得思考,比如:如何保证游戏产品上线质量和用良好的用户体验,各种专项技术测试是怎么做的?使用的测试技术方法及工具是什么?不同的游戏场景会遇到哪些测试技术难题?如何提升测试效率及专业性?这些过程中又该如何协调好测试与开发、产品团队的进度?
带着这些问题,“T前线”有幸采访到了腾讯Wetest。Wetest平台依托10余年腾讯产品品质管理经验,历经千款腾讯产品磨砺,提供了优质的质量测试解决方案,在全球企业及开发者之间被广泛应用。
其中,PerfDog作为WeTest针对开发者性能专项测试需求所推出的移动全平台性能工具,由于其快速定位,而且无需对手机硬件、游戏及应用进行任何更改、即插即用的特点,得到了游戏测试及开发者的好评与认可。
今天,“T前线”有幸邀请到腾讯互娱资深测试技术总监、多款大DAU产品性能测试专家,明星性能工具PerfDog创始人曹文升先生,为我们分享他在游戏专项测试领域的实践经验与心得。
1 .卡顿和内存是游戏性能最主要的问题
性能话题是近几年游戏圈,特别是手游圈最热门的话题之一。对玩家来说,除了玩法,最影响体验的就是性能了。以某款战术竞技类游戏为例,这款游戏的成功,与能保证画质及互动效果的性能因素是分不开的。
但对测试人员来说,游戏性能则是一个复杂的技术问题:性能会涉及硬件、操作系统、GPU层面的渲染等诸多方面。根据自己多年的项目经验,曹文升发现游戏的性能问题主要集中在卡顿、内存等方面。
(1)卡顿:经常要面对的问题
当今手机硬件性能迭代很快,用户的预期也在提高,随着用户对游戏的性能体验要求越来越高,大家对卡顿的容忍度越来越低。举个例子,原来大家能容忍五六十毫秒出现一次小的卡顿,但现在微小的一次卡顿,用户都觉得影响他的体验。
与此同时,游戏研发对性能的要求也在提高,原来觉得游戏达到30帧就很不错了,现在可能要求达到60帧才算合格。
这就让卡顿成为目前游戏最主要面临的性能问题。
然而在游戏性能专项测试中,卡顿的出现带有一定的偶然性,可能第一遍测试时没有卡顿,第二遍测试时就会有卡顿。所以要想解决这个问题,首先需要记录卡顿或者性能的现场环境,为此专项测试人员需要用专业、方便、快捷的工具反复去测,同时也要通过统计算法建立更精准化的卡顿指标,从而更准确地识别出卡顿的点与原因。
有了指标体系,便能更好地评估每一帧的功耗,专项人员就能给开发人员提出更有针对性的优化能耗建议,来解决卡顿问题。
(2)内存:游戏的制约因素
游戏和其他程序不一样,游戏会涉及加载非常多的图片纹理、场景模型及Shader(一种专门用来渲染3D图形的技术)等消耗相当大内存的程序。
内存不足会导致手机运行不起来,或者即便跑起来也会挂掉,因此专项人员需要通过各种内存的工具,比如引擎自带的memory等工具,去精准定位哪一个对象、哪一个模块内存过大,进而解决内存问题,比如可以让某一部分不加载太大的图片。
当然,内存不如卡顿的影响严重,因为卡顿可能在任何平台都存在,即便旗舰手机上也可能会存在卡顿,但是内存问题通常只在一些低端的或者内存比较小的手机上才会出现。
2.专项人的成长之路:善用工具,学会复盘
对游戏专项测试来说,确定和解决问题是最关键的两个步骤。在曹文升看来,专项人员要想此方面游刃有余,需要熟悉并掌握各种专项测试技术能力及工具的用法,同时还要学会边干边学,懂得总结以往项目的经验。
(1)没有通用的工具
曹文升认为,专项人员要对工具的技术形态有一定的认知,认识到不同形态的工具能做的事是非常不一样的。
游戏性能专项测试用到的工具,大体可分为嵌入式的SDK集成源码工具和非嵌入式的独立工具两类。SDK集成源码工具,这类工具收集的信息要更全面,但是SDK工具的使用门槛高(对开发团队和项目的要求都很高);独立工具可以做到即插即用,使用门槛低,但获取的性能指标可能没那么全。
另外,曹文升还提醒一点,各大引擎、IDE和硬件厂家会有自己的性能分析辅助工具,专项人员要了解这些工具有什么样的要求。比如,有的工具会要求游戏编译的版本是开发版,并不是常规发布的release版。再比如,像高通或者ARM公司的这样的硬件厂商,他们研发的工具可能只适用于自己的硬件,有一定局限性,这些都需要专项人员注意。
所以,专项人员在进行测试时,不能只使用某一类工具,而是将不同工具组合在一起进行测试定位。
(2)钻研与热爱缺一不可
曹文升相信,专项测试人员要想高效地解决测试过程中出现的问题,用好从前的项目经验是非常重要的。如何才能用好从前的经验呢?
一方面要做到边干变学。专项测试人员要掌握的技术点是很多的,想要一开始就掌握所有的技术是不现实的。因此,专项测试人员要有开阔的视野,对性能、网络、兼容性、压测都要有一定了解,同时还可根据自己感兴趣或者擅长的一个纵向领域,付出时间和精力把该领域研究透,这样才能在专项测试中有立身之本。
另一方面,如果在项目中遇到了问题,踩了坑,一定要深入钻研,如此记忆才会深刻,能力提升才会快。对此,曹文升讲到了自己在PC游戏的时代负责兼容性的专项测试的一段经历。
所谓兼容性问题,举个常见的例子,就是一部游戏在很多电脑上会存在花屏、黑屏,或者显示不正常的问题。曹文升在做这项工作的时候,发现在某些显卡上会存在显示不正常的问题。
当时曹文升不知道这是什么原因,也不知道什么样的显卡会存在这样的问题。后来通过大量的显卡测试、分析、总结,发现这种问题是有原因的:这样的游戏会用到一些3D caps的能力,某些显卡不支持。
于是他很快开发一款虚拟显卡兼容性测试工具Bench3D,很快模拟定位那些显卡可能是有问题的,哪些显卡应该是没有问题的,这就加强了曹文升对兼容性底层技术的理解,进而快速提升做专项测试的效率和专业性。
除了以上能力,曹文升还提及了优秀的游戏专项测试人员另一项必备的素质:对游戏的热爱。
游戏测试和普通的App测试是不一样的。App专项测试,可以很快把所有的测试用例走下来。但游戏有千万种玩法,对应着千万种操作路径,每一种操作路径都可能存在这个问题,这样的话测试人员需要对游戏本身足够熟悉,只有对游戏感兴趣,热爱游戏,测试人员才能做到这一点。
在专项技术方面,游戏测试的要求也比一般App测试高,比如在弱网络、引擎、安全,游戏专项测试都有更高的要求,这意味着对游戏专项测试人员来说,只有对游戏足够热爱,才能应对好这些挑战。
3.团队意识不可或缺
(1)发现有效需求
专项测试团队的工作产出更多是服务公司内部的研发人员。通常有了新的工作成果时,专项测试开发团队需要推广给公司内的各个研发团队,但很多专项测试开发团队会遇到一类问题:各个小团队、小组或者自己开发一个所谓的能用的工具,自己用起来OK,自己所在的项目组用起来也觉得OK。但是一到让更多的项目组、更多的人去使用的时候,却发现工具用不上或者帮助不大。
对于这个问题,曹文升发现,根源在于专项测试团队将自己开发出的工具始终当成一个小工具,完全没有把它当做一个大工具甚至一个产品来对待。小工具在功能各方面是受限的,这个时候工具只能满足自己的需求。
只有把开发出来的工具做成更大的工具,乃至升华成一个产品的时候,你才会意识到有成千上万的需求要满足。这时你要冷静思考,你没法在一个工具里面实现一万种需求,你需要区分什么是有效的需求,将这些需求进行分类,把它转成通用的需求。如何评估哪些需求才是有效需求呢?
一是要看有多少项目组、用户有这些需求,二是要看可操作和可实现性。
(2)反馈真实情况是职责所在
除了技术上的测试工作,测试人员可能还需要跟很多人打交道,比如QA、项目经理、产品人员、开发人员,跟他们很多人进行沟通交流。
曹文升说,测试人员在跟这些人进行沟通协作时,由于测试人员最清楚整个项目进展及品质状况,因而也最能反馈这个项目的真实信息。这个时候,测试人员可能会和团队里的开发人员站在对立面,比如项目开发人员开发了新功能,测试人员会“专门”去找新功能模块设计中的一些bug,因而两者会有一些对立面的情绪,这就需要双方多一些沟通。
除了要对开发人员反馈真实信息,测试人员还要对项目负责人反馈真实信息。项目负责人要了解整个项目的进展,这时测试人员扮演的角色就是该项目负责人的一个“锦衣卫”:测试人员要敢出来说一些真实的项目研发的进展和品质的状况。
有时,游戏测试人员在整个游戏团队还要扮演更重要的角色。在腾讯游戏,质量是决定游戏能否上线的最后一道关,游戏测试人员就有这样的把关权力,如果测试人员觉得某个游戏品质不够,那么该游戏就上不了线。
4.游戏测试的自动化:全面落地还很远
虽然很多传统的App测试自动化做得不错,但曹文升发现游戏测试的自动化一直做得不是很成功。据曹文升估计,目前自动化测试的覆盖率只有15%左右。
在现阶段,只有游戏场景比较单一,比如跑地图(业界称作跑性能热力图),或者单一的技能的释放,自动化测试做得还算差强人意。
自动化在游戏测试领域的应用范围如此之小,在曹文升看来,主要有这样两个因素。
第一,游戏中画面实时渲染及半透明特效粒子效果,会导致画面很难图像自动化,同时游戏事件、系统事件响应,这些都是自己实现的,自动化很难捕捉落地。
第二,游戏版本的更新迭代是非常快的,甚至每天都会做一个非常大的版本更新,这导致接口变化非常快,这也导致自动化很难落地。
关于AI在游戏自动化测试的话题,曹文升的看法是,AI在普通的App测试中也许能发挥作用,因为App无论怎么操作,界面的变化不大,一致性较强。而在游戏测试中,AI恐怕难以和场景进行匹配。比如,游戏的某一个像素或者几个像素显示不对了,AI很难去判断的。
再有一个是性能,游戏里面镜头稍微一旋转,玩家看到的东西完全不一样,这导致性能也完全不一样,AI同样很难发现这样的细微问题。
因此对测试人员来说,还是要明白哪些可以做自动化测试,哪些仍然需要用手工测试,而不能把希望都寄托在自动化上。
5.写在最后
在游戏行业,正是有了专项测试团队默默的付出,玩家的注意力才能放到操作、玩法上,而不是时不时地为性能问题而烦恼。
而对游戏专项测试人员来说,也许自己的工作很少能得到外界的认可,但内在的成就感才是最重要的奖励。
曹文升
嘉宾介绍:MTSC中国互联网测试开发大会主席、腾讯互娱资深测试技术总监、多款大DAU产品性能测试技术专家,明星性能工具PerfDog创始人,曾做过游戏引擎开发、游戏开发,以及各种专项工具平台的效能及专项技术测试。目前主要负责腾讯游戏的质量专项的工具平台建设,聚焦在全平台性能专项领域。