Android兼容性测试应该怎么做逼格更高呢?
Android兼容性测试应该怎么做逼格更高呢?
在开发者头条上看到应该怎么做Android的兼容性测试,这里做一下记录。
Android兼容性测试方案
1. 概述
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。
2. 兼容性测试的目的
由于Android设备在品牌、系统、屏幕、硬件等碎片化较为严重,导致一些app在特定的机型上未能按预计的设计展示和运行,导致用户体验较差,不利于app的推广,影响业务发展。为此,app需在上线前进行兼容性专项测试,以便尽可能适配市面上已上市或即将上市的手机和系统。
3. 影响兼容性问题的因素
3.1 硬件
- 处理器
- CPU架构,常规手机均是arm64 ,若app要适配x86架构则需要针对性测试
- 不同CPU厂商,尤其是小众CPU,需要特别考虑,例如华为海思、小米澎湃
- 显卡
- 显卡影响图形渲染和部分场景的计算,app如用到OpenGL、OpenCV、深度学习、AR、VR、AI,则需要重点考虑
- 屏幕
分辨率影响UI展示,需兼容HVGA、VGA、WVGA、FWVGA、720p、1080p屏幕分辨率,并考虑不同PPI的情况
关注异形屏幕:刘海屏、水滴屏、打孔屏、全面屏
ldpi mdpi tvdpi hdpi xhdpi xxhdpi Total Small 0.3% 0.1% 0.4% Normal 0.7% 0.3% 24.7% 41.9% 25.2% 92.8% Large 2.0% 1.3% 0.4% 0.3% 0.5% 4.5% Xlarge 1.5% 0.5% 0.3% 2.3% Total 0.3% 4.2% 1.6% 25.6% 42.5% 25.8% 以 7 天为周期收集的数据(截止于 2018 年 10 月 26 日)。未显示任何分布份额不足 0.1% 的屏幕配置。
- 传感器
- 视app实际调用情况进行选择:如指纹模块,则需要考虑不同供应商的情况
- 物理按键
- 检测物理按键是否生效:音量键、电源键、拍照键
- 与系统或其他app是否存在冲突
3.2 系统
- Rom
- 不同版本的系统存在一些API、功能、权限等差异,需要结合app的功能进行适配;
- 第三方定制rom具有一些特殊功能或权限,需要特别考虑,如MIUI
- 编译版本
app编译时以最低版本设置值为标准,操作系统会拒绝将应用安装在系统版本低于标准的设备上
Android版本更新,新的版本会引入一些新的特性和方法,新的方法带来很多便利,但是对系统版本有要求,无法再低版本手机上运行,如果未做兼容性处理,强行运行,会导致Crash
附:Android 已发布版本和API对应表及占用率(官方数据)
Version Codename API Distribution 2.3.3 - 2.3.7 Gingerbread 10 0.2% 4.0.3 - 4.0.4 Ice Cream Sandwich 15 0.3% 4.1.x Jelly Bean 16 1.1% 4.2.x 17 1.5% 4.3 18 0.4% 4.4 KitKat 19 7.6% 5.0 Lollipop 21 3.5% 5.1 22 14.4% 6.0 Marshmallow 23 21.3% 7.0 Nougat 24 18.1% 7.1 25 10.1% 8.0 Oreo 26 14.0% 8.1 27 7.5% 7 天为周期收集的数据(截止于 2018 年 10 月 26 日)。未显示任何分布份额不足 0.1% 的版本。
- 浏览器内核
- 不同浏览器内核影响web页面展示及功能
3.3 网络
- 2G/3G/4G/5G
- 不同网络下兼容各种类型的网络请求,关注数据请求过程及结果
- WiFi
- 部分WiFi非直连网络,需要有一步认证的过程,需要特别考虑
- 对于可能弹出广告的WiFi要做兼容处理
4. 介入时机
- 产品发布前或发布后更新涉及上述 “影响兼容性问题的因素”中一个或多个点时,且面临用户数较多、使用人群较为复杂
- 产品上市后出现较多兼容性问题
5. 场景选择
以下罗列的一些通用场景,并针对场景做了具体的描述,有些场景是非必测项,具体可视app功能来确定
5.1 安装卸载
该场景会涉及系统权限,可能会出现无法安装或安装后数据丢失,甚至无法启动
5.2 UI展示
受不同屏幕分辨率、PPI影响,可能会出现展示错乱、图片丢失、图片穿透等
5.3 高频交互
高频交互场景受一系列因素影响,考验整机兼容性,需特别考虑
5.4 H5页面(JS/CSS)
不同浏览器内核、浏览器标识会影响具体样式的展示及数据请求
5.5 文字输入
受输入法、虚拟键盘影响,可能会出现无法上屏,或上屏错乱
5.6 系统API交互
受不同厂家、版本的rom影响,可能会导致功能无法使用
5.7 权限相关
受不同厂家、版本的rom影响,可能会导致一些权限无法正常获取
5.8 音视频播放/录制
音视频的录制会调用麦克风(多麦)及摄像头(双摄、三摄等),可能存在不可使用或音视频出现错乱
5.9 传感器调用
可能存在传感器无法调用、权限异常或数据异常
5.10 升级覆盖
受存储权限、安全性影响,可能会出现数据丢失、无法启动等错误
5.11 三方SDK
三方SDK的架构、技术选型会影响上层正常调用
5.12 外设交互
特殊厂商的键盘、鼠标等外设可能存在冲突或无法调用
6. 设备选择
- 通过用户调研、竞品分析、三方平台数据(近阶段各设备占用率分布及设备出货量、预出货量等)等确定设备选择范围;
附:
- 友盟设备统计:https://compass.umeng.com/trend
- 百度设备统计:https://mtj.baidu.com/data/mobile/device/
- 艾瑞移动设备分析:http://index.iresearch.com.cn/device
- 腾讯移动分析:https://mta.qq.com/mta/data/device
- 根据app类型,确定重点考虑的指标(通常考虑rom、分辨率、厂商),剔除重复,保留用户量较多的设备
7. 测试方法
参照上文中列出的和兼容性相关的点以及产品特性,整体相关场景,并选择合适的设备进行手工活自动化方式进行测试验证(附:设备选择方式参考)
自行协调 | 云测平台 | |
---|---|---|
优点 | 拥有设备的完全控制权,测试范围更广 | 设备丰富,执行较为简单,有完整的测试报告 |
缺点 | 需要采购,成本较大,有些特殊系统很难协调到资源 | 需要支出一定费用,设备不完全可控,灵活性较差 |
附:
常见云测平台对比报告
8. 案例
7.1 某工具类APP兼容性测试简述
- 分析:通过对app的定位、使用场景、功能等分析,确定以UI切图展示、主功能、三方应用交互、网络、输入框和分辨率作为主要测试点
- 用例设计:分别针对上述测试点设计测试用例3、选择设备:由于该款app面向大众人群,所以选择从整体设备占用率来进行机型筛选
a、UI切图和分辨率的测试点选择top20机型中筛选不同的分辨率,分别包含:WVGA、VGA、HVGA等不同类型的10余种分辨率
b、主功能测试点选择top20机型
c、三方应用交互测试点选择top20机型种不同的品牌的代表性机型(占用量靠前)
d、网络测试点选择top20机型中不同基带、网络制式的代表性机型(占用量考前)
综上,可以得出兼容性测试的最终机型
4、测试执行:本案例中采用手工执行
5、测试报告:按测试点、场景、机型、结果列出
(喜欢请转发,谢谢!)
更多精彩文章: