移动终端的碎片化使测试者为了保障不同平台及版本、不同网络制式、不同分辨率和机型都有很好的用户体验面临巨大挑战,兼容性测试也占据着日常测试任务中很高的比例。在本章节中,我们介绍下Baidu QA在兼容性测试方面的一些基础建设和平台化工作。

9月安卓系统市场的占有率

据Softpedia报道,近日谷歌官方刚刚放出了9月安卓系统市场的占有率,根据报告整体来说,Android系统的碎片化问题依然非常严重。

目前Andriod系统各个版本排序依旧保持不变:

Android Lollipop(5.0、5.1)棒棒糖版本以35%的占比位列第一;

Android Kitkat(4.4.X)奇巧版以27.7%位列第二;

Android Marshmallow (6.0) 棉花糖系统终于有了不错的成绩,占有率在持续增长,从上个月的15.2%增长到18.7%,同比增长3.5%,位列第三;

Android Jelly Bean(4.1.X-4.3)果冻豆掉落至第四。

而在这次的数据中,谷歌并没有放入Android Nougat 牛轧糖(7.0)系统的数据,主要是由于这款系统并没有放出太长时间,估计连0.1%都占不到。

牛轧糖7.0还没升级!7.1已经发布了

Google在8月推出Android 7.0系统,国内用户还没来得及吃上这“牛轧糖”,10月4日,Android 7.1随最新设备于Google新品发布会上正式对外发布。同时,本次发布会Google还发布了Pixel/Pixel XL手机、Daydream ViewVR头盔、语音助手Google Assistant和Google WiFi四款产品。

开发人员针对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,朵唯,中兴,华硕,锤子等是第三梯队。

传统的兼容性测试中,需要开发者自备设备,并通过自动化调度或者人工的方式进行测试。这其中涉及的购买真机、部署运维的成本相对较高。

Android端2016年9月系统使用以及兼容测试相关推荐

  1. 2016二级c语言成绩查询,2016年12月计算机二级C语言测试及答案

    以下是百分网小编为大家整理的2016年12月计算机二级C语言测试题,大家可以来做一做,巩固一下自己的知识. 一.单选题 (1)*作系统主要有两个方面重要作用,下面叙述最恰当的是 A)管理系统的软件和硬 ...

  2. 基于Android端的照片比对系统,基于Android系统的人脸识别系统

    [文章摘要] 当前随着基于Android系统的移动终端设备的广泛应用,以及图像采集设备的普遍集成,使得Android系统的图像采集设备除了具有照相.摄像功能以外,正在扩展新的实用型功能.其中,利用An ...

  3. 基于Android 移动端的网络视频探索系统【100010403】

    基于移动端的网络视频探索系统 1 引言 1.1 研究背景 智能手机用户在 2015 年占全:人数比例超过百分之十,在 2016 年的时候手机用户超过 20 亿,中国占百分之三十左右.现如今,全:的智能 ...

  4. 使Gradle构建更快 2016年2月5日奥列格Shelajev3评论 推特 inShare 70 上次我们谈到了构建系统,我们看着一些建议可能会使您的Maven构建更快。我们得到的结果是迷人的和对

    使Gradle构建更快 2016年2月5日 奥列格Shelajev 3评论 推特 inShare70 上次我们谈到了构建系统,我们看着一些建议可能会使您的Maven构建更快.我们得到的结果是迷人的和对 ...

  5. 【推荐】《Android应用安全设计及安全编码指导手册》更新到2016年9月1日版本

    更新:<Android应用安全设计及安全编码指导手册>[2017年2月1日英文版] 0. 下载地址 该手册有日文版和英文版,英文版下载地址在:https://www.jssec.org/d ...

  6. 微型计算机的硬件系统普遍采用,2016年9月计算机一级《MS Office》考题与答案

    2016年9月计算机一级<MS Office>考题与答案 1.世界上第一台计算机是l946年在美国研制成功的,其英文缩写名为_______. A.EDSAC B.ENIAC C.EDVAC ...

  7. 随笔记录2、Android端调用系统分享文件记录

    Android端调用系统发送文件 效果如如下: Android 7.0以上需要适配 第一步: 1. AndroidManifest.xml中注册.provider 2. android:resourc ...

  8. Android直播系统的实现,直播APP开发Android端推流及播放

    想实现一个Android的直播系统,但是对于这方面的资料都比较零碎,一开始是打算用ffmpeg来实现编码推流,在搜集资料期间,找到了几个强大的开源库,直接避免了jni的代码,集成后只用少量的java代 ...

  9. android考勤系统,Android端实现考勤管理系统

    [实例简介] 登录.注册.找回密码.滑动页.签到.百度地图功能.个人信息.信息界面' [实例截图] [核心代码] Android端源码 └── Android端源码 └── Gcsxdzy ├── A ...

最新文章

  1. c语言第四章循环程序设计,C语言程序设计教程第4章-循环结构程序设计
  2. GPU视频解码之CUVID
  3. Spring Framework Reference Documentation手册官网下载地址
  4. php程序员必会的,PHP程序员必会的MySQL面试题
  5. [css] 你有没有使用过“形似猫头鹰”(例:`* + *{ ... }`) 的选择器?
  6. java解析csv文件写入mysql_java读取cvs文件并导入数据库
  7. java hmget 最大值,【Redis】基本数据类型及命令操作(超详细)
  8. Go调用zlib实现压缩与解压缩
  9. 如何PDF转Word文档?快把这些方法收好
  10. 计算科学导论读书笔记
  11. 开始启程, 你的第一行前端代码
  12. The Minimum Spanning Tree Problem
  13. win7系统如何映射服务器,win7系统映射网络驱动器怎么访问
  14. SSRNet:用于大规模点云表面重建的深度学习网络(CVPR2020)
  15. opencv 基于sift的多张图片全景图拼接
  16. 网易云易盾朱浩齐:视听行业步入强监管和智能时代
  17. 企业微信视频教程(Java标准版)-翟东平-专题视频课程
  18. zabbix的下载与配置
  19. 优维低代码:第三方接口接入
  20. c 计算机二级考试试题,计算机二级c语言考试试题及答案

热门文章

  1. python能参加奥赛吗-信息竞赛一定要python吗
  2. 村庄规划gis基础操作详细步骤
  3. ssm学生综合素质评价系统
  4. 解决/lib/ld-linux.so.2: bad ELF interpreter: No such file or directory报错
  5. java游戏开发入门(十) -粒子特效
  6. 初识MIMO(四):MIMO的接收端检测技术及其仿真
  7. iptables 学习笔记 (下)
  8. 计算机机房标准pdf,计算机机房建设标准要点.pdf
  9. 5.1 node实现简单注册功能(往json文件中写入数据)
  10. 【广东开放大学(广东理工职业学院)主办】第二届计算机图形学、人工智能与数据处理国际学术会议(ICCAID 2022)