可以关注来点儿干货呀公众号~
什么是兼容性测试
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–【百度百科】
为什么要做兼容性测试
目前碎片化十分严重,尤其是安卓设备。安卓设备碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能还有定制的系统,都给我们适配带来了不小的挑战。除了上面的碎片化,当然还有系统版本碎片化,屏幕碎片化等,为了给用户更好的用户体验,做APP的兼容性测试,还是非常有必要的。
兼容性影响因素
- 用户
- 硬件
- 软件
- 技术
- 网络
影响因素大致可以分为以上几类,我们对所测APP做兼容性测试时,可以从以上方面去考虑。
1、用户
我们需要依据自身APP用户群体的特征以及使用习惯,去做相应的兼容。比如用户群体如果大多是老人的话,可以考虑大字体的适配。比如针对旅游人士,可以考虑过程中网络的状况。如果拥有大量海外用户,可以考虑多币种、多语言、多度量、时区问题。
2、硬件
- 设备类型(手机、平板、穿戴式设备)
- 生产商(安卓手机存在每个厂商的定制化差异)
- 显示屏(屏幕大小、分辨率)
- 特殊硬件功能(NFC、蓝牙、相机、定位功能等)
3、软件
- 操作系统
- 浏览器内核
- 伴生应用
4、技术
- RN、H5、native
- 开发语言(oc、swift)
5、网络
- 2G、3G、4G、wifi
兼容各种网络下APP的表现
iOS APP兼容性
- 屏幕分辨率
- 屏幕尺寸(含异形)
- 操作系统版本
- Xcode版本
- 开发语言
- 第三方库或SDK
- 安装、升级
Android APP兼容性
- 屏幕分辨率
- 屏幕尺寸(含异形)
- Android版本
- 系统版本
- 处理器架构(arm、x86)
- 开发语言(Java、koltin、混合)
- 第三方库或SDK
- 安装、升级
H5兼容性
- CSS样式兼容(一些属性的浏览器标示前缀没有添加,导致默认浏览器不认识这个属性,所以样式错乱。有些布局不灵活,样式边界处理不好,导致宽窄屏显示异常)
- JS兼容(主要是浏览器或者系统版本,新的js api不支持,但是没有做降级处理)
- 第三方库或SDK
- 框架(react、vue……)
- 缓存(sessionstorage、localstorage)
哪些场景需要做兼容性验证
- UI显示
- 多次快速点击
- 拉起虚拟键盘挡住输入区
- 虚拟物理按键收起与显示
- 多个输入框来回切换
- 控件焦点热区文体
- 前后台、多个应用切换
- 指纹识别和faceid等
- 框架升级
- 网络
- 新老版本兼容
- 第三方依赖库或者SDK升级
- 前后端版本兼容
如何做兼容性测试
主要分为内部和外部。内部由测试人员自己覆盖主要机型。机型选取的原则是,根据自己APP用户的机型,选取至少top10进行人工兼容性测试。内部还可以进行的就是UI自动化测试。外部可以借助云测平台,比如testin、testbird等。