1、APP 兼容性测试认识

随着 APP 应用范围越来越广,用户群体越来越大,终端设备的型号也越来越多,移动终端碎片化加剧,使得 APP 兼容性测试成为测试质量保障必须要考虑的环节。

APP 兼容性测试通常会考虑:操作系统、厂家 ROM、屏幕分辨率、网络等方面。但如果要在有限的测试人力物力和时间资源下覆盖所有兼容性测试维度是困难的,因此,通常采用 Top X 原则,即 Top 排名靠前的。如何获取 Top X 数据,可采用埋点方式尽量获取自己软件 APP 的数据,这样更精准。若无产品自身的数据,则可参考业界汇总的 Top 排名数据。

2、兼容性测试维度分析

2.1 操作系统版本

操作系统版本主要考虑 Android 和 iOS 系统,其中 Android 系统具体的版本分布及市场占有率如下表示(文中数据来源于腾讯大数据研究中心):

其中 iOS 系统具体的版本分布及市场占有率如下表示:

从以上数据得出,android4.x、5.x、6.x 版本市场占比不足 7%,可以同产品开发商议,如果目前软件开发不支持旧版本的兼容,测试可选择放弃旧版本的兼容测试。针对 Android,主要考虑 7.x,8.x,9.x,10.x,针对 iOS,主要考虑 12.x、13.x、14.x。针对每个操作系统大版本下的小版本,由于工作量太大,除非有明确对于 app 的影响,一般不需考虑逐个覆盖小版本。

2.2 不同厂商

Android 和 iOS 都有不同的手机型号,苹果目前已经更新到 iPhone 12 Pro 。对于 Android 的型号,因为 Android 系统源码是开源的,不同 Android 手机厂商都会基于 Android 原生系统进行定制修改,然后对外发布。发布的系统层出不穷,会加剧 Android 碎片化问题,导致安卓设备之间的差异越来越大,一个安卓 APP 应用在不同的设备上可能呈现出完全不同的行为,例如调用手机相机会在某些手机上出现不兼容。对于不同 Android 厂商 ROM 的兼容,很多测试团队不具备大量的机型设备,通常的做法是,兼容一些主流厂家的型号。

Android 平台的品牌及型号排名(数据来源于百度统计流量研究院):

iOS 平台的型号排名(数据来源于百度统计流量研究院):

2.3 屏幕分辨率

在不同的分辨率、尺寸的设备上,如果代码没有做适配处理,就会出现错位、拉伸、样式异常等问题。截至目前,andoid 的主流分辨率为:1920*1080,1280*720,2340*1080 等,主流尺寸是 5.x、6.x 英寸

iOS 的主流分辨率为:2208*1242, 1334*750, 2436*1125 等,主流尺寸为 5.5~6.5 英寸

2.4 网络类型

保证不同网络环境的覆盖,目前,主要考虑不同运营商的 Wifi、2G、3G、4G 下的功能情况。

3、如何进行兼容性测试

兼容性测试本质是功能测试,针对以上兼容性测试维度,不可能逐个测试用例在每个机型每个系统版本每种分辨率等情况下进行全部覆盖,其测试工作量过于庞大。

因此,除了用户亿级的 APP 例如微信、抖音,会搭建测试平台进行全面机型的覆盖外,其他的,对于兼容性测试维度覆盖,一般优先考虑主流机型设备,并同步考虑该机型是否有覆盖到不同厂家、系统版本、分辨率、尺寸等;若无覆盖完全,则依据品牌排名靠前的设备进行补充,并与操作系统、分辨率、尺寸进行交叉组合。例如下表_部分(仅供参考)

确认好需要覆盖的机型设备后,接下来如果在每款设备上逐一执行全量的功能测试用例,较耗时耗力,且测试效率不高。考虑到既要保证质量也要兼顾测试效率,通常做法是:

  • 选择在少数主流机型上执行全量的用例,在其他兼容性范围内的设备上覆盖主要功能的用例。
  • 根据待测软件特点、场景实现等可进行测试用例裁剪。类似从本地缓存获取数据的页面功能,不涉及网络请求的,可裁剪网络兼容测试用例。

另外,对于网络类型的兼容测试,可任选一款真机在 Wifi、2G、3G、4G 等环境下,测试 APP 主要功能对于不同网络带宽、延迟和稳定性的处理。特别是与网络强关联的功能,例如视频直播、文件传输等,需重点验证。

4、总结

当通过人工或自动手段完成 APP 兼容性测试,并产品上线后,会收到用户反馈的兼容性问题。依据反馈问题,需补充该兼容性测试场景的用例,用于后续版本测试。另外,对于主流手机更新及厂商新发布版本,我们也需要时刻保持关注,并考虑是否需要进行 APP 兼容适配测试。总而言之,一款 APP 的质量保障,兼容性测试问题必须重视,否则会导致用户流失,影响到产品的长期发展。

APP专项测试之兼容性测试的更多相关文章

  1. App专项测试之弱网测试

    转载 https://blog.csdn.net/TestingGDR/article/details/83059415

  2. 【腾讯优测干货分享】安卓专项测试之GPU测试探索

    本文来自于Dev Club 开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/57c7ffdc0569a1191bce8a63 作者:章未哲——腾讯SNG质 ...

  3. 手机APP测试如何进行兼容性测试?

    Android App兼容性测试是一个比较重要的App评价内容,实际上兼容性测试不仅仅和测试人员相关,在开发阶段就应当着重考虑,因为兼容性问题是除了实现App本身要求的功能后,必须要关注.而且至关重要 ...

  4. 安卓手机APP兼容性测试如何有效进行?

    Android App兼容性测试是一个比较重要的App评价内容,实际上兼容性测试不仅仅和测试人员相关,在开发阶段就应当着重考虑,因为兼容性问题是除了实现App本身要求的功能后,必须要关注.而且至关重要 ...

  5. 移动App专项测试

    移动App测试实战—专项测试 转自:http://www.51testing.com/html/58/n-3713758.html 我们在进行了手工的功能测试之后,也开发了一些自动化测试用例,并且做了 ...

  6. app兼容性测试的几种方案

    1.统计自己的应用被使用的数据 通过友盟或Flurry等在应用嵌入,得到应用在哪些机型上被安装了,排名前十的就是测试的重点机型 2.可参考兼容性测试平台的测试结果 比如Testin或百度的MTC平台, ...

  7. app专项测试自动化测试方法思路与实现

    秉着个人意愿打算把python+rf接口自动进行彻底结束再做些其它方面的输出~但事与愿违,但领导目前注重先把专项测试方面完成,借此,先暂停python+rf(主要是与Jenkins集成+导入DB+微信 ...

  8. [原创]浅谈移动互联网App兼容性测试

    [原创]浅谈移动互联网App兼容性测试 今天要谈的话题,估计各位测试都有感受,移动互联网App兼容性测试,我们到底测试覆盖如何去挑选机型?具体移动App兼容性测试如何开展?是不是应引进像testin这 ...

  9. APP兼容性测试

    一.APP兼容性范围以及问题 1.硬件 各个硬件结构 2.软硬件之间 硬件dll库(C++) 软硬件之间的通信,各个厂商提供的ROM 3.软件 浏览器.操作系统.数据库.手机.功能兼容性(功能修改,二 ...

  10. APP兼容性测试(三)测试方案设计

    1.  背景 App的兼容性问题可能会导致流失潜在的客户,为了尽量减少因兼容性问题导致的同类问题,进一步提高产品的质量,提升用户体验,所以进行兼容性测试,尽可能多的保证更多的用户都可以正常使用app. ...

随机推荐

  1. [oeasy]python0071_字符串类型_str_string_下标运算符_中括号

    回忆上次内容 上次 分辨了 静态类型 语言 动态类型 语言   python 属于 对类型要求 没有那么严格的 动态类型 语言   对 初学者很友好 不过很多时候 也容易 弄不清变量类型   直接 修 ...

  2. Visual Studio中如何解决error C4996: 问题

    error C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead. To di ...

  3. 01-初识springboot

    目录 01,什么是springboot 02,如何使用springboot 01,什么是springboot springboot是一个基于spring框架开发出来的一个新的框架,目的是为了简化spr ...

  4. Sysbench 使用总结

    Sysbench使用总结 实践环境 CentOS 7.8 Sysbench 1.0.20 下载地址:https://github.com/akopytov/sysbench/archive/refs/ ...

  5. JVM系列(一) -浅谈虚拟机的成长史

    一.摘要 众所周知,Java 经过多年的发展,已经从一门单纯的计算机编程语言,发展成了一套成熟的软件解决方案.从互联网到企业平台,Java 是目前使用最广泛的编程语言. 以下这段内容是来自 Java ...

  6. 记一次NACOS开放公网访问导致服务器被挖矿的解决流程 [kdcflush] acosd

    前言 事情的起因是这样的,昨天领导找到我说服务器内存满了,影响其他程序正常运行了,让我把测试服务器上之前启动的六个JAVA程序停一下,接着我就登上服务器执行docker compose down把服务 ...

  7. 如何通过minIO在后端实现断点续传

    首先是黑马的媒资管理模块流程图:前端负责计算媒资文件的MD5值,同时对媒资文件进行分块. 后端需要以下几个接口: 1.检查分块是否存在(传入参数为视频唯一标识信息与块信息):检查当前分块是否已经上传至 ...

  8. 使用Git bash切换Gitee、GitHub多个Git账号

    使用Git bash切换Gitee.GitHub多个Git账号 ​ Git是分布式代码管理工具,使用命令行的方式提交commit.revert回滚代码.这里介绍使用Git bash软件来切换Gitee ...

  9. 【CI/CD】Centos7 下载安装 Jenkins

    一.Docker安装Jenkins 参考: https://www.bilibili.com/video/BV11B4y1W7eH?p=5 安装Jenkins最新稳定版镜像: [root@Centos ...

  10. 【SpringBoot】数据源加密处理

    代码审计报告提出的一个问题: 明文暴露配置信息风险 解决方案可以使用jasypt实现 需要使用依赖: <dependency> <groupId>com.github.ulis ...