5.4 兼容性测试
兼容性测试,由于手机的种类繁多尤其是安卓,五花八门,不同的分辨率,不同的操作系统,不同的配置等等,想要完成全部的兼容测试基本上是不可能的。因此我们需要挑选市面上较为流行的机型,操作系统和分辨率进行真机测试。我主要的参考获取渠道是友盟,网址为:http://www.umindex.com/可以很清楚的看到近期较为活跃的安卓和IOS设备,使用较多的系统,分辨率,联网方式和地理位置的分布。另外同类网站还有TALKINGDATA:https://www.talkingdata.com/Flurry:http://www.flurry.com/(国外网站)等,通过多个渠道获得的信息进行分析对比,可选择出较为合适的兼容性测试环境,下面几个方向均已分析出基线为标准。
兼容测试我主要分为以下几个方向来测试:
(一)设备兼容
设备兼容也就是说能否顺利安装游戏,能否在设备上顺利的运行游戏,运行游戏时是否有不正常的情况。从设备上选择我们主要看设备的CPU型号,CPU内核数,内存大小,GPU等来选择设备。由于引擎对某些CPU的不支持,导致游戏无法在部分手机上运行时,我们需要对使用该CPU的手机进行调研,从而做出决定,是推动引擎解决问题还是pass掉该机型。
(二)分辨率兼容
Android级向来以支持多分辨率的设备著称,这样照成了市面上各种形形色色的分辨率机型。分辨率的测试可以再模拟器和真机上进行测试,但建议不要使用模拟器,模拟器上的测试与真机是无法相提并论的,在真机缺少的情况下尽量找同事来借设备进行测试。分辨率的分布如下所示:
在分辨率测试中,主要关心界面UI的测试,观察屏幕边缘是否有空隙,边线等,UI界面的拉伸是否符合原本的设计,各种分辨率能否正常启动运行游戏,各分辨率UI位置是否正确,有无交叉重叠,偏移等,UI对应的touch位置是否正确,文字是否超出边框。这里举一个对齐方式的BUG
(三)系统兼容测试
系统的测试也是蛮麻烦的,因为安卓的系统也是测出不穷,目前大多数安卓系统都是2.3.3以上了,之下的版本可以不做考虑,除了官方ROM外还需考虑各种修改ROM(目前用官方的反而较少),小米,魅族,锤子等等。IOS系统相对较好,因为IOS目前只能单向升级,不能降级。
需注意IOS在进行升级后,游戏是否正常运行,而不Crash。
(四)软件兼容测试
与市面上主流的APP是否兼容,如微信,QQ等应用,尽量安装用户可能用到的,较为热门的应用进行兼容测试,游戏能否正常运行。
5.5云测
说到兼容测试,顺便提下云测。云测主要是将应用上传到云测的平台,进行模拟测试。云测公司会提供大量真机,在云端进行一些兼容测试,也可以写一些自动化脚本,进行功能的兼容测试。
①Testin:Testin是国内较为老牌的云测了,网址:http://www.testin.cn现在只提供了安卓的应用测试的兼容免费测试,其他如功能测试,手游测试等,都需付费。我也只进行了免费的应用兼容测试体验。操作流程较为简单,注册账号,通过审核后即可使用,选择应用测试,兼容测试:
然后点击下一步,上传安卓应用,或提供下载连接即可。下面高级选项有使用Monkey测试,所谓Monkey测试就是随机测试的一种,使用软件模拟随机在屏幕上进行点击,后面在随机测试中会对这种测试进行一些介绍,根据需求可以选择点击或者不点。下面是如果应用需登录,要提供账号。
这里我随便上传了一个应用,然后点击下一步选择测试机型,这里可以通过系统版本,分辨率,品牌来选择手机。免费的每天只能选择300款次测试,机型较少。
选择测试机之后就是,下方可以选择测试完成后通知的邮箱,多个邮箱用逗号分开,然后提交测试就可以了,等待完成后测试报告会发送到邮箱中。
②百度MTC:这是由百度移动中心提供的云测平台,网址:http://mtc.baidu.com/这个平台对免费使用的开发者更为友好,几乎完全免费,提供的测试方案还有很多,如下图所示:
性能测试:选择NativeApp测试>性能测试,这里可以选择自己关注的性能测试点,然后上传App,这里还可以上传三个竞品进行横向对比,下面写通知邮件,如图:
由于这里是性能测试,所以百度提供了两款中高端机型作为测试,如下:
点击提交测试,如果未上传测试用例,百度的这款测试会自动进行Monkey测试,检测性能测试中进行Monkey测试,测试报告很详细,报告放在
兼容测试:可测试安装卸载,高/低版本覆盖安装,终端兼容,安全软件兼容测试,如图:
然后机型选择,与testin一样,可以选择手机品牌,系统版本,屏幕分辨率,系统版本,选择之后提交测试即可。
深度遍历测试:会操作App的所有界面,并提供截图,上传待测的APP,如需登陆,提供账号密码:
然后选择机型,提交开始测试。
特定场景测试:可以自定义特殊测使用场景,如电量,地理位置,网络类型等,会自动测试并截图。上传测试APP,然后选择要测试的场景,点击开始测试:
安全漏洞扫描测试:可进行安全漏洞扫描,组件扫描和crash隐患扫描,上传APP开始测试即可:
功能回放测试:回放用户录制的功能测试用例并截图,前面也有一些测试支持上传测试用例,这个测试用例事实上是用MTC一款录制软件录制的自动化测试脚本,下载地址:http://mtc.baidu.com/?pname=replayhome先用这个工具进行脚本的录制,然后打包上传到测试用例处,开始测试即可:
MTC脚本录制工具,使用较为简单,一试就上手,不再多说:
以上测试报告均在:
在我的MTC中可看到测试的完成度:
③testbird:testbird和testin大致差不多,提供免费的兼容测试,会员服务需注册为会员公司才能继续使用,注册为会员公司后可使用其他服务,这里不再多说。
一般在兼容测试通过率达到85%即可认为合格,当然,要看没有通过的机型,按其在市面的占有率做权重考虑。
云测平台还有很多,除了上面所说的还有:
http://mobile.51cto.com/aengine-402829.htm这里还有几款。可作为额外参考。
5.6弱网测试
移动互联网比传统互联网更具传播力,影响力,流行程度更快,就是因为人们可以随时随地的拿出移动设备来上网,玩游戏,这也加大了游戏运行环境的复杂性,网络就是我们所要关注的重点。可以想一下我们平常都在什么时候玩手机,上厕所,坐地铁,电梯等等,而且不幸的是,在这些地方,通常网络的信号都较差,因此网络的切换,网络连接的变化等,对于手游测试来说是比较重要的。
模拟弱网环境,模拟弱网环境最好的方法当然是实地去模拟,当然,这种方法不可控,只能作为随机测试的一种。第二,就是用软件来模拟弱网环境,控制移动设备的网络连接,来模拟弱网,从而进行测试。
使用工具之前,我们要先确认弱网模型,即我们需要模拟的网络状况。模型应包括传输速率(上传和下载),丢包率等,下图是一个弱网测试模型
根据这个模型,我进行发散扩大,考虑出一些的模型:
只考虑丢包的模型:
丢包率
5%
10%
20%
50%
80%
100%
只考虑带宽的模型,单位kb/s:
上传
14.4(GMS)
40(GPRS)
118.4(EDGE)
128(3G)
348(HSDPA)
下载
14.4
80
236.8
1920
14400
上面为标准的流量速率,可以结合弱网模型进行测试,4G传速速率较快,可用WIFI模拟。
混合模型,即将丢包模型和带宽模型组合:
带宽kbps
丢包率10
15
50
87
120
150
3100
5%
10%
20%
50%
80%
100%
根据以上模型,使用工具进行弱联网模拟测试。控制网络的软件网上一搜一大堆,这里介绍一款比较好用的,功能较为强大的软件进行模拟,Charles。
Charles是一款http代理服务器/http监视器/逆向代理服务器(官网自介绍如下:Charles is an HTTP proxy / HTTP monitor / Reverse Proxy that enables a developer to view all of the HTTP and SSL / HTTPS traffic between their machine and the Internet. This includes requests, responses and the HTTP headers (which contain the cookies and caching information).),附上官网:http://www.charlesproxy.com/我是在进行网络抓包的研究的时候接触这款软件,由于这款软件可以进行http代理服务,所以思路就是让手机通过代理,连接PC,然后用Charles控制网络速度以达到弱网模拟的目的。这个软件在windows,mac和Linux均有版本。使用方法:
①首先要保证PC和手机在同一个网段下。(下面是我自己在家里进行测试,网关为192.168.1.1 子网掩码255.255.255.0 因此都在一个网段内。)
②打开Charles,如下图:
③选择Proxy>Proxy Settings,将http proxy端口设为8888,并勾上下面的"Enable transparent HTTP proxying",如图:
④在手机上进行设置(细节有可能不同,但大体都差不多),首先设置进入WLAN设置,长按连接的无线WiFi,此时会有两个选项:
点击修改网络,显示高级设置,代理处选择手动,然后代理服务器输入PC的IP地址(在PC上通过“运行(win+R)”>“cmd”>ipconfig命令查看),端口号输入:8888,如下图:
设置好之后,选择保存,然后使用手机进行一次网络连接,如打开浏览器,随便进入一个网站,此时PC上,Charles会弹出一个窗口,选择允许(allow)即可,如下图:
如果不小心点了Deny,请重启Charles重新连接一下。设置好之后就可以通过Charles对手机进行抓包和网络控制操作了,在MAC机上的设置步骤应该大同小异。这里主要说下弱网模拟的操作,在Charles菜单上点击Proxy>Throttle Settings,然后勾上Enable Throttling,如下图:
这时候在Throttle preset里就可以设置,这里有些预设的模拟情况,点击下面的Add preset也可以增加自己设置的模拟环境,进行参数的调节。
根据上面的弱网模型,调节后就可进行弱网模拟的测试了。
模拟弱网的软件还有一款Network Emulator for Windows Toolkit,配合其他软件使手机通过电脑上网,安装后,在菜单栏里Configuration →New link(新建链路)→设置loss(丢包率)、latency(延时率)即可。