Android系统9月市场占有率出炉:棉花糖成第一?
2016-10-26 {{allComments.length}} 123549 行业动态背景介绍
移动终端的碎片化使测试者为了保障不同平台及版本、不同网络制式、不同分辨率和机型都有很好的用户体验面临巨大挑战,兼容性测试也占据着日常测试任务中很高的比例。在本章节中,我们介绍下Baidu QA在兼容性测试方面的一些基础建设和平台化工作。
开发人员针对iOS系统开发应用时,不需要考虑太多的设备。至今为止,苹果只推出了15种iOS设备,而且在所有iOS设备的用户中,95%都在使用苹果最新的iOS 6系统,这也是吸引开发人员更喜欢为iOS设备开发应用的重要原因之一。很多开发者只需要一个人,就能够对所有iOS设备进行兼容性测试。
然而,这对Android开发者却是个无休止的痛。
Android由于其免费开源性质,众多手机厂商拿到Android内核后,可以在各式各样不同的硬件平台上搭载自己改造的Android系统,虽然是基于Android的,但是已经不再是原来的Android了,手机厂商对Android系统经过各种改造,就会变成众多独立的Android,这个就是Android的碎片化,由于经过厂商改造的Android系统运行的环境完全不同,哪怕是搭载完全相同的硬件,不同品牌的手机在运行速度、软件兼容上都会有区别的。
更糟糕的是屏幕尺寸的碎片化问题。苹果只要求开发人员针对4种不同尺寸的屏幕优化应用。而安卓设备的尺寸多达几十种。所有想针对安卓开发应用的开发人员都要针对几十种不同尺寸、不同分辨率的设备屏幕进行优化。但是这还不是所有问题,更严重的是,由于HTC和三星等大型手机生产商都使用各自的定制UI,而这些定制UI会改变安卓底层UI的默认图像元素,这意味着开发人员不仅需要针对原生安卓系统优化应用,还要针对HTC的Sense和三星的TouchWiz等定制UI对应用进行优化。
谈到苹果,我们不得不说一下三星。在三星所销售出的所有的设备中,50%使用安卓系统。但是即使一个开发人员真针对三星的设备开发应用,他仍然需要针对数十种不同的三星设备优化应用。三星的设备中,一些是智能手机、一些是平板电脑、一些使用了TouchWiz UI、一些却使用的原生安卓UI、一些设备搭载了最新的安卓版本、一些设备还在使用Gingerbread。任何开发人员看到这个状况都会精神崩溃。
简单来说,就是开发者写个程序,需要各种版本,各种分辨率大小屏幕的问题,既要旗舰级的手机使用,也要二三百的低端机能打开。
安卓君能解决碎片化的问题吗?
答曰:不能。
不管怎么样,Android的碎片化问题已基本判定无解。那么面对如此挑战的开发者和测试者,该如何保证产品在不同平台及版本、不同网络制式、不同分辨率和机型都有很好的用户体验呢?
兼容性测试基础
兼容性测试是指测试软件在特定的硬件产台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能很好地运行的测试。
兼容性指标及重要性
那么,根据上面的情况,在移动开发中兼容性测试常常需要涉及到到品牌机型、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 |
如何进行兼容性测试?
通过人工或者自动化的方式,在需要覆盖到的终端上进行功能性测试,并观测性能、稳定性等其他非功能属性。
兼容性测试,首先我们面临的问题就是测试机的选择。选择时要注意手机的许多参数,比如:操作系统,操作系统版本,分辨率,手机生产厂家等。现在中国主流的操作系统主要是iOS&Android(魅族的操作系统算Android,windowsPhone的系统先忽略)。现在中国主流的操作系统主要是iOS&Android(魅族的操作系统算Android,windowsPhone的系统先忽略)。现在操作系统应该覆盖的版本是ios6/7/8/9/10&Android4/5/6也许有的公司还有特殊需求。分辨率就是iPhone4--iPhone7的所有分辨率再加上一些Android机的某些不规范的分辨率。手机生产厂家那大概要有一个分级机制,苹果机自然是需要最多的,之后三星,华为,小米是第一梯队,魅族,vivo,oppo,联想等是第二梯队,之后是Coolpad,朵唯,中兴,华硕,锤子等是第三梯队。
传统的兼容性测试中,需要开发者自备设备,并通过自动化调度或者人工的方式进行测试。这其中涉及的购买真机、部署运维的成本相对较高。
而百度将多年来的技术积累,整合为百度移动云测试平台,简称MTC,将众包能力和云技术集成,通过在云端提供自动化&众测兼容性测试,来实现多地域多机型、真实用户真实环境的深度兼容测试。
云测试(Cloud Testing),是基于云计算的一种新型测试方案。其本质是利用集中化管理的方法提供统一的设备运维、部署、调度,并将测试能力提供给用户使用。在传统的web端云测平台中,设备是搭载了各种操作系统、各种浏览器的PC机。而对于移动云测平台来说,设备是搭载了各种操作系统、各个厂商和网络环境的移动终端。
众测(Crowdsourced Testing),利用大众的测试能力和测试资源,在短时间内完成大工作量的产品测试和体验,从用户体验的角度出发,反馈Bug,并对产品提出改进建议。
移动云测试的优势:
1、立即可用
提供一整套测试环境,测试人员甚至只需要上传一个安装包,就可以立即展开测试。
2、节约成本
每个企业都在追求成本最低和利润最大化。软件测试作为研发生产过程的一部分也有降低成本的要求,即使用最少的设备购买最少的测试软件来完成软件测试工作。利用云测试可实现巨大节省,不需要购买或准备很多的设备,购买和安装各类测试用软件,也不再需要部署复杂的网络。只需要列出测试目的、环境的要求、设备台数、何时间断租用即可,实现按需支付。
3、提高效率
用云测试这种方式,极大地减少了测试环境搭建时间,如机器和网络准备、操作系统安装、各种测试工具软件安装等都将节省,只需提前将需要的配置环境告之云测试服务商,到时间直接使用即可。
4、专家服务
云测试平台可以提供专业知识的服务。这些知识可以是测试用例、测试数据、自动测试服务等形式。
下面我们将通过介绍百度MTC的兼容性测试来说明云测试平台的做法。
机器采购、维护
通过集中采购、维护机器,并采用分时使用的机制提供给用户使用,可以降低采购和维护的成本。
目前,一方面MTC紧跟市场占有率的步伐,在机房采购各类机型来覆盖市场上最新、主流的机型。
另一方面,通过有效的管理方式拥有一批众包用户的手机挂机资源,帮助开发者以更低的成本扩充手机资源,并大大提升了真实网络环境、多地域的覆盖度。毕竟App未来面对的都是分布在全国甚至全世界各地,处在不同网络环境中的真实用户,绝非“真机实验室”“巨型机房”中如”温室花朵“般的测试机所能代替的。所以,MTC用这样的一套部署方案来实现众包手机和机房手机资源的整合。
任务分发、调度
更细节的,具体到执行任务的层面,MTC目前支持Appium、Robotium、Uiautomator等多种测试框架脚本。
结果汇总、报表展示
MTC会把所有执行兼容性任务的机型进行归类展示,在进行了一定程度归纳的同时,保留了所有原始数据,如logcat日志,monkey日志、操作截图等。既可以一目了然的了解兼容性概况,又可以仔细检阅每款机器上的执行情况。
同时,为了达到完美的兼容测试,补足自动化测试中无可避免的遗憾,MTC基于众测概念,提出海量用户测试。短时间内招募企业所需的测试用户数,通过跨地域合作,实现真人真机真实使用场景的测试,降低测试成本的同时,缩短交付周期(2~3天),有效帮助开发者解决安卓碎片化的烦恼。
综上,MTC这类云测试平台对于兼容性测试所要求的各个维度的覆盖率,以及完善的任务调度执行系统,都是降低成本的好选择。毕竟,说到底测试是一个成本、效率和风险的权衡。
移动应用质量标准
MTC平台拥有一套完整的移动应用质量标准,并结合平台测试,针对每一个测试结果都会通过质量标准进行评分。通过对您的产品质量进行量化,您可以直观的了解应用质量状况,并在提升产品质量方面获得专业指导。
移动应用质量标准主要是针对移动应用测试能力、应用自身质量的衡量标准模型。其中针对测试能力的模型已在百度内部使用了较长时间,形成了一套完整的标准。
移动应用质量标准涵盖了保证应用质量所需进行的几乎所有测试指标,通过一套衡量维度和打分标准,对测试能力和应用质量进行量化,并反映其中存在的详细问题点,从而为提高移动应用测试及产品质量提供指导。
如果你看的意犹未尽,如果你想随时随地充实自己,请扫描以下二维码,关注我们的公众账号,可以获取更多技术类干货,还有精彩活动与你分享~




