游戏&软件测试到底是什么?游戏测试理论详解来了!

谈起游戏测试工程师职位,一个常见的误解就是拿着工资玩游戏,然而游戏测试工程师的主要工作是保障游戏质量,需要反复测试各种游戏和应用。他们是如何“打游戏”的?本次,网易游戏测试工程师小萌为大家介绍。


  以下是分享实录:


  大家好,我是来自网易游戏的测试工程师小萌,在我加入的网易这几年我跟进了很多项目,包括运营多年的老项目及新手游产品等。当年我拿到网易的offer时,同学跑过来问我:“你要去网易测游戏了?是不是每天打游戏就好了?”其实这是外界对我们的误解,通过今天大家就可以了解到,我们这个岗位不止打游戏,还做很多其他的事情。


  软件测试的目的


  进入正题前,我们先看几个小故事。


  第一个故事是我小时候听说的叫“千年虫”的故事,在上个世纪,计算机年份储存系统是两位数来表示的,例如八几年,九几年,可是到2000的时候就行不通了,因为这两位数变成了00,这就导致跨年时很多电脑系统出了问题,因为电脑如果用年份判断大小或者逻辑的时候就会出错,所以2000年的第一天出现了很大的危机,股市停市政府停工,造成世界范围内比较大的混乱。


  第二个故事也是上个世纪的故事,阿丽亚纳5号火箭升空不到40秒偏航自毁,事后追查原因是因为重用4型火箭的代码,然而该代码在计算时承载不了5型火箭产生溢出导致解体爆炸,火箭上载有通信卫星,造成了几亿美金的损失。




  软件如果出现问题,后果可能会非常严重。前段时间区块链的概念也较热门,相信大家都有听过,通俗来说,区块链就是区块加链,每一个区块就是一个账本,如果有新的交易,就会有新的区块,不同的区块形成一个链条。单方决策变成多方共识。现在大家手里都有账本,大家都认同这个账本才成立,这个特性使得做假账非常困难。




  同时还有智能合约,区块链里,合同是通过代码的形式存在的。区块链的特性使得区块链变得十分可靠,但我们去搜区块链时,依旧会发现许多标题“一行代码蒸发64亿人民币”、“史诗级漏洞”、“重大漏洞”等字眼。




  再先进的软件也会有漏洞,软件测试的价值,就是在事故发生前防微杜渐。软件测试的目的就是要保障质量,减少损失,改善体验。


  软件测试是什么?


  IEEE定义软件测试是是用人工或自动的手段来运行或测定某个系统的过程,检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别。那么,我们需要做哪些测试呢?


  1.功能测试


  软件测试,首先需要进行功能测试,对产品各功能进行验证,设计测试用例,逐项测试检查是否达到预期。


  2.压力测试


  功能测试与大家印象中的测试是一致的,那是不是测完功能就可以直接上线了呢?一款软件上线前面临的风险是非常多的,我们来举个例子,比如说双十一零点的服务器崩盘,春运火车票购票系统瘫痪,这些面临着同一个问题:压力问题。


  同一个软件少数人可以用,但大量人同时使用就会出现各种各样的异常,要应对这个异常,我们就要做压力测试,模拟实际应用的场景,长时间或超大负荷去运用这个软件。如果一个游戏没有做压力测试,上线后玩家蜂拥而至,导致服务器爆满,多数玩家就会因为登不上体验不好而流失。这是我们都不愿意见到的痛心局面。


  3.性能测试


  游戏里常见的基础设置画面,一般可以选画面质量和帧模式是不是高清。这里有个疑问,既然游戏已经做出了好品质,为什么不让大家都用高清画质呢?


  这里主要考虑到手机的性能,就是我们常说的性能问题,在游戏上线前,我们需要做性能测试,性能测试需要模拟多种正常、峰值以及异常条件对系统的各项性能指标进行测试。


  性能测试和压力测试有些相似,在我们手机游戏测试语境里,压力测试为游戏服务器的测试,性能测试偏向于游戏客户端测试,我们去检测哪些性能指标会更有意义呢?卡顿,帧率,还包括内存、CPU、电量等,在上线之前,这些都必须先做测试。




  4.安全性测试


  另一个方面就是安全性测试,也就是我们用各种手段来发现安全漏洞的过程。游戏中会面临很多安全漏洞,如加速器,战斗的时候进行加速;修改器,增加战斗数值,更严重的,游戏核心资源和数据会被玩家轻易获取,这些漏洞非常影响游戏环境和游戏寿命常见的防范有通信加密,内存加密,代码混淆等手段。


  5.兼容性测试


  常见的一种情况,在某些银行等网站,出于安全考虑只兼容IE或IE核心的浏览器,这里就涉及到一个兼容的问题,游戏也是一样的,手机游戏面临的兼容性问题比较严峻,因为手机有很多品牌,不同的系统不同的CPU,以及各类个性化的设计会导致游戏兼容出现问题,因此我们需要做兼容性测试。在这么多设备中根据几个标准筛选出能够覆盖到众多玩家的测试机群来做测试。如操作系统、设备类型、分辨率、芯片等标准。




  6.易用性测试


  除此之外还需要做易用性测试,一款软件一款游戏好不好用,好不好玩,用户在使用软件时是否感觉方便等体验,我们需要进行评估,判断软件交互的适应性、功能性和有效性。




  如上所述,测试的总貌就是这样,软件测试是一个系统的工程,除了大家印象中的功能测试外,还有其他非常多方面要做,如压力、性能、安全性、兼容性、易用性等等,往后有机会将为大家分享游戏测试的具体方法和步骤。