兼容性测试分析及测试平台推荐

一、兼容性测试基础

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



大咖招募
欢迎App研发/测试方面的大牛来投稿,开设专栏。我们提供丰厚的稿酬,预约个人专访,帮助建立个人技术品牌!
立即投稿

我要评论

字数不能超过140字,谢谢!
提交

评论({{allComments.length}})

{{comment.create_time.substr(0,16)}}

显示所有评论
复制成功!