当我们测试手游的一个新功能的时候,除了具体的功能需求外,也需要考虑测试点,这篇文章的目的就是为了提高测试点的覆盖率,总结的一些手游测试的通用测试点,可以拿来直接用。
一、UI
1、按钮不可拖动
按钮除了有按压效果外,是不可以进入拖动的。如果按钮可以拖动,那么说明这是一个问题。当然,像王者荣耀控制方向的轮盘不是bug,因为它就是这么设计的。
2、无穿透--层级正常、点不到后面的层级
这里需要考虑两个问题,一个是当你打开一个新的页面时,需要覆盖掉之前的页面,也就是说,在新页面你是看不到之前页面的展示,最多的问题就是,特效穿透。
第二个是层级展示错误,比如点击一个道具,会弹出来一个道具详情的tips窗口,此时新弹出的tips结果跑到下一层去了,这也是bug。
3、布局合理
这个就需要看整体布局,整体的效果怎么样,最好的方法其实是直接对照美术图的效果。我们操作的方法直接向美术要切图的资源路径,然后把美术图跟现在游戏内页面效果进行对比,保证没有差别。如果有那么一点点差别,就需要找开发或者美术确认图片是否做了修改,以及做了修改之后的效果是否符合需求。
4、分辨率适配
这个分辨率主要看手机的效果,比如你新加一个功能之后要去做适配测试,而现在的手机市场说白了就是不同的分辨率测试,我们需要注意的点有两个地方:
第一,无遮挡关键部分,以王者荣耀举例,当我们对局时,结果发现新增的小地图功能,刘海屏挡住了一半,那么这个设计就不合理,需要优化;
第二个,界面布局无异常,这个说的是你要做不同分辨率的测试,比如一个苹果5这种小屏幕的手机,再拿一个ipad,这两个手机表现出来的画面是不同的。这就要求我们的程序在功能方面做自适应。什么叫自适应?自适应的意思就是客户端需要针对不同的手机分辨率做统一处理,可以理解为按照百分比压缩,而不是给某个点做固定的位置,这样就会在界面布局产生一些某一边大段空白,一边又太紧凑的效果。
那么问题来了,我们怎么测这个呢?其实很简单,只要我们项目组准备这四个类型的手机,比如苹果5s针对小屏幕的手机、ipad针对大屏手机、刘海屏手机针对这些奇奇怪怪的刘海屏,刘海屏手机有一台就够了,因为程序处理的方式是集中将刘海那一段整体做处理,就压根不管你这刘海屏是中间的还是右边的,是长方形的还是水滴形的,最后一个的话是正常的手机。
如果我们是在unity上测试,我们也可以自由设置模拟这些分辨率,大概是这三种:1080*2280、720*1280和平板分辨率。
5、界面切换不卡顿、黑屏
这个意思是说我们做一个新功能,要有意识的做一些界面切换,这会涉及到内存泄漏。如果页面内存泄漏,界面就会卡顿。还有个原因是界面客户端做缓存没有限制,缓存越多就越卡。
一个好的方法是可以通过打开unity中的一个开关:stats。这个值表示一个流畅度,正常的要求是这个数值不能超过100,如果超过100的话,肉眼就能看到界面切换的卡顿。
二、小红点
小红点的话主要考虑两个方面,一个是出现的条件,一个是消失的条件。虽然对于小红点强迫症玩家来说,这个小红点特别可恶,但是对于我们游戏项目组成员来说,小红点是很有用处的,以下几个方面是小红点存在的意义:
再一个是消失的条件,这个解释起来就很简单的,没有提示作用的时候,小红点就不应该存在了。
三、音效
这个是很多朋友都不会注意到的点。在工作上班用电脑测试的时候,不会插耳机听游戏音效。就算插了耳机,也是直接把游戏声音给关闭了。用手机测试的时候也是直接把声音给关闭了,其实音效也是一个测试点。
需要匹配当前游戏项目的按钮音效,以及背景音效。
至于关闭,也是跟着关闭。不能这段音效本来是在某个界面才有的,结果切换界面时还带到下一个界面或者直接覆盖的新界面的音效,这就是问题。
四、国际化
如果所在的项目不是出海游戏,那么这个就可以忽略了。
如果是出海游戏,那么我们就需要注重这一点,而对于我们测试而来,文本翻译对不对我们根本不知道的,我们怎么知道这个翻译是不是对的,翻译有没有歧义,超出了我们的知识范围。
所以我们的关注点在于无超框、无重叠,这个主要是考虑在于有些地方 的语言,比如印度文,那个字翻译是真的长。。。
五、弱网环境
新增一个功能,为了代码的健壮性,我们需要对新功能做弱网环境的测试,我们当时对的一个数值是:延时:800 丢包率:30-50 ,在这个弱网环境下来跑新功能。
六、账号操作
测试一个新功能时,我们也需要考虑到一些异常情况,比如说重启服务器,重启unity,来模拟外网用户正在使用这个功能的体验,再一个是切换账号,这有两种操作方式,切换自己的小号和切换一个新号。
这个切换账号的目的是查看新功能的数据是否会带到另一个账号去,考虑代码数据刷新和重置的问题。
七、易用性
至于这个易用性我举两个例子吧,一个是国外玩家的手指比较大,如果我们游戏设置的按钮比较小,就很难点击。再一个可能是输入的时候,需要保存玩家输入内容,不能直接没了或者不显示,对玩家操作来说是非常不友好的。
八、真机
这个也是非常重要的点,我们工作中通常用的unity或者模拟器来测试,但是这种不能完全模拟玩家真实操作,所以最好的方法是打手机包,然后用真机来测。这个需要考虑的方面有以下几点:
1、老包热更
每次更新,我们都需要用手机安装老包来测试用户更新后的表现,一个是看更新是否正常,另一个看是更新后玩家的数据是不是正常。
2、功能表现正常
这个就是说游戏包安装到手机后,用真机跑功能,看各种表现。
3、多指同时操作
unity和模拟器中,我们只能用鼠标去操作,也就是单指,而真机可以多指操作,这种情况我们也可以考虑下。
4、游戏中可能来电
这个是针对于游戏包而言,考虑的这种情况,当然还有其他的比如什么qq视频这种,主要看中断后游戏表现是否正常。
5、切换wifi-4g
这个也是切换网络的测试,特别是支付模块,这种情况还是要考虑一下的。
6、息屏后表现正常
这个是游戏包表现为冷热启动,看游戏是否会断线重连、重回登陆界面,又或者说息屏后游戏中的音效要全部断掉。
说完通用的,再说一下其他需要注意的测试点。
一、时间相关
1、更改客户端时间
这个主要是看游戏内的时间主要需要服务器来推,然后客户端再跟这个时间来做运算,而不是客户端自己读取手机时间,这样很容易出现问题。
2、时区切换
这个比较异常,之前出现过一个bug是某玩家出去旅游跨了一个时区,结果游戏时间就表现异常了。
3、时间同步正常
这个需要问客户端,这个时间同步是做了几次,如果只是在登陆的时候取服务器的时间,然后剩余的时间就自己计算的话,客户端的时间很容易出差错,这就要求客户端需要在启动一个功能的时候就要同步一下服务器的时间。
4、倒计时为 0 的刷新机制
比如涉及到功能重置的功能,我们就需要考虑这种情况,比如现在日常任务0点整重置,我们就需要在这个界面等待跨点、跨点后打开这个界面,都要表现正常才行。
二、输入内容
1、输入为空
这个是边界值的做法,其实很容易理解。
2、数值为负
这个是等价类的做法,当输入一个新值的时候可以试试负值的表现。
3、屏蔽字符
这个只要有输入的内容就需要考虑到屏蔽字符,如果没有做限制的话,会出现一些政治敏感、打广告的行为。
4、超上限
比如一个功能最多只能购买10个,直接输入11个试试。
三、领取奖励
1、请求堆积
点击领取按钮的时候点击很多次,结果我只能领取一次奖励,如果可以领取多次,那就是服务器那边没做限制,可以让玩家刷奖励道具。
2、前后端对应
奖励领取之后,一定要去背包看看道具是不是发放了,发放的数量是不是正确的。
四、数组越界
这个其实就是考虑边界值的最大值,数组越界很严重,直接引起宕服,所以上限一定要考虑。举个例子,数据库保存是32位,结果有玩家的战力超过了2的32次方,就会宕服。