兼容性测试分析及测试平台推荐
来源:百度质量部 2016-03-09 {{allComments.length}} 15435 干货分享一、兼容性测试基础
1.什么是兼容性测试?
兼容性测试是指测试软件在特定的硬件产台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能很好地运行的测试。
2.对于移动开发,兼容性测试为什么重要?
对于iOS来说,情况也许还没有那么糟,但是对于市场占有率已经达到智能手机半壁江山的Android来说,碎片化的问题日趋严重,而且是每一个App开发者必须直面的问题。
Android碎片化体现在哪些地方?
——品牌、机型、分辨率、系统版本、不同架构的cpu、不同的操作系统……
品牌机型维度(友盟):列出了现在市面上安卓设备厂商、品牌的分布情况,块的面积代表占有率大小。

操作系统版本维度(友盟):

屏幕分辨率维度(友盟):

从上面三个维度已经可以大致了解安卓碎片化的现状,其他维度不一一列举。
3.兼容性指标及重要性
那么,根据上面的情况,在移动开发中兼容性测试常常需要涉及到到品牌机型、ROM、芯片、屏幕分辨率、软件、版本、网络、地域等等众多维度。更具体的说,这些维度需要考虑到以下这些指标:
系统兼容指标 | 重要性 | |
品牌机型兼容 | 根据市场占有率、发布时间等指标对主流、最新机型进行重点兼容 | A |
ROM兼容 | 需兼容原生的ROM(2.1、2.2、2.3、4.0、4.1、4.2);第三方ROM(小米、百度易、点心、魅族、阿里云……) | A |
芯片兼容 | 需兼容MTK平台、高通平台和Intel X86平台 | B |
屏幕兼容 | 需兼容HVGA、VGA、WVGA、FWVGA、720p、1080p屏幕分辨率,并考虑不同PPI的情况 | A |
软件兼容 | 安全类软件(百度手机管家、360优化大师、360安全卫士、QQ手机管家、安卓优化大师、网秦、LBE),输入法软件(系统自带、Sogou、百度) | A |
版本兼容 | 服务器端需要兼容产品早期版本所需的API接口 | A |
网络兼容 | WiFi、3大运营商的2G和3G网络,需区分WAP和NET接入 | A |
地域兼容 | 重大版本及涉及定位模块变更的版本,需经过一线城市的外场测试(北京、上海、广州、深圳) | B |
4. 如何进行兼容性测试?
通过人工或者自动化的方式,在需要覆盖到的终端上进行功能性测试,并观测性能、稳定性等其他非功能属性。在这其中,最关键的是终端的覆盖率。
传统的兼容性测试中,需要开发者自备设备,并通过自动化调度或者人工的方式进行测试。这其中涉及的购买真机、部署运维的成本相对较高。而云测试则通过在云端提供兼容性测试来解决这类问题,开发者一般只需上传app,选择机型,指定测试步骤即可。
下面我们将通过介绍百度MTC的兼容性测试来说明云测试平台的做法。
二、MTC兼容性测试套餐
云测试平台在兼容性测试中,能够发挥什么作用?
1.机器采购、维护
通过集中采购、维护机器,并采用分时使用的机制提供给用户使用,可以降低采购和维护的成本。
目前,一方面MTC紧跟市场占有率的步伐,在机房采购各类机型来覆盖市场上最新、主流的机型。另一方面,通过给予奖励的方式维护一批众包用户的手机挂机资源,用更低的成本扩充手机资源,并大大提升了多网络环境、多地域的覆盖度。MTC用这样的一套部署方案来实现众包手机和机房手机资源的整合:

2.任务分发、调度

更细节的,具体到执行任务的层面,MTC目前支持monkey测试、Robotium脚本测试两种兼容性测试的形式。
3.结果汇总、报表展示
MTC会把所有执行兼容性任务的机型进行归类展示,在进行了一定程度归纳的同时,保留了所有原始数据,如安装、logcat日志,monkey日志等。既可以一目了然的了解兼容性概况,又可以仔细检阅每款机器上的执行情况。
举个例子:

测试概况

机型列表

测试详情
综上,MTC这类云测试平台对于兼容性测试所要求的各个维度的覆盖率,以及完善的任务调度执行系统,都是降低成本的好选择。毕竟,说到底测试是一个成本、效率和风险的权衡。

