本文章转载于搜狗测试
Android应用适配测试浅谈
什么是Android适配测试
Android适配测试是为了让一款应用能够在各种Android设备上良好运行,达到最佳用户体验而进行的一种测试。它涵盖了安装,应用功能,界面显示,输入交互,程序稳定性等许多方面。
为什么要进行Android应用适配测试
系统碎片化
原生系统版本更新速度快(从2008年9月至今,发布了从1.1到4.4至少13个版本)
第三方编译(CyanogenMod,Omni,AOKP等)
第三方定制(MIUI,flyme OS,ColorOS,SmartisanOS等)
设备多样化
设备品牌(三星,LG,小米,华为,魅族,联想……)
分辨率(1920*1080,1280*800,1280*720,800*480……)
运营商(WCDMA,TD-SCDMA,CDMA-2000)
手机,平板设备
实体键,SmartBar
……
常见的适配问题
1. 不能安装,解析包时出现问题;
2. 程序崩溃(启动崩溃,运行崩溃,意外停止,无响应,退出崩溃);
3. UI错位/失配(最典型);
4. 启动时间长/运行不稳定/与其它应用冲突等。
适配测试分类
分辨率适配
UI界面在不同平台的适配受屏幕尺寸和屏幕密度影响,Android适配机制就是在资源后面添加对这两种因素的限定,通过不同的限定区分不同的平台资源,Android在使用资源的时候会优先选择满足本平台限定的资源,再找最接近条件的,再找默认(即不加限定),通过选择适合当前平台的资源来完成不同平台的适配。
该适配测试适合于图片,文案,控件布局较多时进行,同时也适合WebView页面的适配测试。
厂商机型适配
当功能涉及到与厂商推出的特殊功能相关,或者调用手机的硬件设备时,就需要进行针对厂商/机型的适配。比如自动启用免提功能,使用摄像头进行二维码的扫描,启用录音设备进行音频的录制等。
系统版本适配
Android版本的快速迭代升级,每一个版本都会有新的功能,甚至是新的API出现。例如Android 4.4系统,只允许一个默认短信应用,Android 4.4系统存在一个可选的运行环境ART,Android 5.0默认运行环境是ART等。
特殊ROM适配
一般来说,ROM的适配是因为ROM特殊的功能和权限引起的,或者ROM提供的系统预置软件数据库等于原生不一致等情况。当需要兼容特殊定制ROM时,就需要考虑部分厂商对Android系统进行了精简、添加、修改,从而进行不同的ROM兼容适配。比如常见的有MIUI(安全管理,悬浮框默认关闭),ColorOS(部分动画结束不发出信号),flymeOS(严格的安全管理),SmartisanOS(不支持桌面悬浮窗)……
针对CPU架构适配
影响CPU测试的方面主要有几个,厂商平台(高通,联发科,三星,英特尔)、架构(ARM,Atom)以及位数(32bit/64bit)等。
Android系统运行环境
主要就是针对Dalvik和ART运行环境。ART运行环境是更换了Java虚拟机,其带来的影响涉及到底层的库(JNI,Java Native Interface)。需要注意的是ART也分版本。
如何判断是否需要进行适配测试
主要是根据开发对一个功能实现/改动的内容、改动的情况,以及对现有功能的影响。分为UI方面和功能逻辑方面。
其中UI方面常见的改动:
1. 布局更改
2. 资源图替换
3. 文案修改
4. 透明度/动画调整
功能逻辑方面常见的改动:
1. API/方法/接口/函数的调用与修改
2. 功能或改动因系统版本而异
3. 功能或改动因ROM而异
4. 功能或改动因厂商而异
5. 功能或改动因不同平台架构而异
6. 功能或改动因网络情况而异
7. 调用系统预置软件的文件/数据库等
8. 系统联系人数据库
9. 系统短信数据库
适配测试做到什么程度
1. 记录每一步的截图和结果;
2. 记录结果覆盖所有相应功能的机型/ROM/分辨率等;
3. 对于失配的部分及时报BUG,修改完毕后对修改进行适配检查;
4. 适配测试需要覆盖到所有的关注点;
5. 能够给出完整的含有结论的适配报告;
适配过程中的常见问题
如何适配能够更加高效/省时?
1. 存在前后步骤或者紧密关系的适配一次性进行
2. 一个适配步骤尽可能包含更多的适配关注点
3. 根据输入输出的难易程度进行适配步骤的归类与划分
4. 有时需要进行多种适配的时候也可能合并(部分)测试步骤
5. 避免在存在严重BUG/影响现有实现的BUG时进行适配测试
涉及第三方SDK/接口的内容怎么去适配?
需要对第三方SDK/接口的结果进行适配测试。避免出现因为第三方SDK/接口的适配问题而给产品带来负面的影响。
需要考虑到第三方接口面向的用户终端。比如微信SDK的接口分享的图片需要面向Android和iOS设备。
如果开发没有同时提测一个模块的不同功能,怎样适配?
可以在开发全部提测完成后再进行测试。尤其当有些页面之间的关系为子级(跳转过去)时,完全可以到子页面也全部提测之后再进行测试。这样可以节省时间。
如果测试时间紧张,还要进行适配测试,该怎样进行?
性价比优先。在资源许可的条件下,为尽可能多的用户提供服务。
优先适配主流机型;
优先适配主流分辨率;
优先适配主流系统版本;
适配测试中存在的困难
设备类型过多,无法100%适配到;
部分适配问题发生在非主流机型,甚至是已经停产的机型上;
特定的机器刷了特定的ROM引起的适配问题。