APP 兼容性测试是什么?8年测试老鸟告诉你

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 的质量保障,兼容性测试问题必须重视,否则会导致用户流失,影响到产品的长期发展。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/20624.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

js执行思维导图

备注: js执行: 执行分为两部分:预执行和执行 预执行:创建好执行上下文 执行:执行栈中执行 js引擎: 读取并执行js 各个浏览器的引擎如下 …

linux学习[10]磁盘与文件系统(1):查看磁盘容量指令df 评估文件系统的磁盘使用量指令 du

文章目录 前言1. df指令2. du指令 前言 TF卡制作的过程中涉及到了磁盘分区格式化等问题,当时对具体的指令理解不是特别深刻;由此引申到我对linux中的整个磁盘与文件系统没有一个全面的认识,这个磁盘与文件系统的系列博客章节就对这些进行记录…

MySQL的主从复制与读写分离

一、MySQL主从复制 1、mysql支持的复制类型 STATEMENT∶基于语句的复制。在服务器上执行sql语句,在从服务器上执行同样的语句,mysql默认采用基于语句的复制,执行效率高。 ROW∶ 基于行的复制。把改变的内容复制过去, 而不是把命…

下载和安装appuploader

转载:下载和安装appuploader IOS开发工具官网地址 Appuploader home -- A tool improve ios develop efficiency such as submit ipa to appstore and manage ios certificate 最新版本已经优化了没支付688给apple的账号登录流程,无需再安装其他软件。…

微服务保护(线程隔离、降级、熔断)

线程隔离 线程隔离有两种方式实现: 线程池隔离信号量隔离 线程池隔离 假设服务A依赖于服务B和服务C,那么服务A就会分别对服务B和服务C创建线程池,当有请求进来时不会使用服务A本身的线程,而是到对应的线程池中取一个线程来调用feign的客户…

AMBER分子动力学模拟之TOP准备-- HIV蛋白酶-抑制剂复合物(1)

AMBER分子动力学模拟之TOP准备-- HIV蛋白酶-抑制剂复合物(1) 我们以HIV蛋白酶-抑制剂复合物为例子,跑Amber动力学模拟 下载1phv 从PBD下载文件:https://www.rcsb.org/ PDB文件预处理 我们以 “protein(water) ligandcomplex” 为例来说一下如何处…

力扣82删除排序链表中的重复元素 II:思路分析+代码实现+方法总结(三指针法快慢指针法【双指针】递归法)

文章目录 第一部分:题目描述第二部分:代码实现2.1 三指针法2.2 快慢指针法(双指针)2.3 递归 第一部分:题目描述 🏠 链接:82. 删除排序链表中的重复元素 II - 力扣(LeetCode&#xf…

ChatGPT热门资料汇总,绝对不割韭菜

前言 ChatGPT 的出现,AI圈子一下就热闹起来了,各个公司争先恐后地出自己的产品,百度的文心一言、谷歌的Bard、阿里的通义千问等等,有很多人借此机会已经赚到百万,很多卖课搞培训的都是互为合伙人,大家都懂…

如何注册appuploader账号​

如何注册appuploader账号​ 我们上一篇讲到appuploader的下载安装,要想使用此软件呢,需要注册账号才能使用,今​ 天我们来讲下如何注册appuploader账号来使用软件。​ 1.Apple官网注册Apple ID​ 首先我们点击首页左侧菜单栏中的“常见网…

【更新日志】填鸭表单TduckPro v5.1 更新

hi,各位Tducker小伙伴。 填鸭表单pro迎来了v5.1版本;本次我们进行了许多的功能新增和优化,能够让我们在日常使用中获得更好的体验。 让我们一起来康康新功能吧。 01 新增Pro功能 新增登录后才能填写表单。 新增表单卡片一键发布。 新增矩…

【STM32CubeMX】F103窗口看门狗

前言 本文记录了我学习STM32CubeMX的过程,方便以后回忆。我们使用的开发板是基于STM32F103C6T6的。本章记录了窗口看门狗的使用配置。要学习的话,注意流程一说,省略的内容。 基础 窗口看门狗(WWDG)属于APB1上外设。窗口看门狗(WWDG)的时钟源…

JUC并发编程16 | CAS自旋锁

CAS自旋锁 是什么,干什么,解决了什么痛点?如何解决,如何使用。 原子类:java.util.concurrent.atomic 在没有CAS之前,多线程环境不使用原子类保证线程安全i等操作,会出现数据问题,…

Day968.如何开启一个遗留系统现代化项目? -遗留系统现代化实战

如何开启一个遗留系统现代化项目? Hi,我是阿昌,今天学习记录的是关于如何开启一个遗留系统现代化项目?的内容。那如何启动一个遗留系统现代化项目。 一、项目背景 说来有点唏嘘,国内遗留系统的重灾区,恰恰…

WiFi(Wireless Fidelity)基础(八)

目录 一、基本介绍(Introduction) 二、进化发展(Evolution) 三、PHY帧((PHY Frame ) 四、MAC帧(MAC Frame ) 五、协议(Protocol) 六、安全&#x…

迪赛智慧数——柱状图(象形标识图):在选择另一半时,你更看重的是?

效果图 好看只排第六,第一确实众望所归!当代男女择偶标准出炉,一张图带你看清。 女性挑选另一半时,她们更看重伴侣收入高、职业体面、工作能力强、受教育程度高,还得和自己有共同话题。 男性择偶观和女性恰恰相反&am…

ctfshow周末大挑战2023/5/12

本周周末大挑战用到的函数讲解 parse_url() 作用:解析URL,返回其组成部分 语法: parse_url ( string $url [, int $component -1 ] ) 参数: url:要解析的 URL。无效字符将使用 _ 来替换。 component: …

软件测试月薪2万,需要技术达到什么水平?

最近跟朋友在一起聚会的时候,提了一个问题,说一个软件测试工程师如何能月薪达到二万,技术水平需要达到什么程度?人回答说这只能是大企业或者互联网企业工程师才能拿到。也许是的,小公司或者非互联网企业拿二万的不太可…

Threejs进阶之十四:在uniapp中使用threejs创建三维图形

在uniapp中使用threejs 一、uni-app介绍二、新建uni-app项目三、安装three.js库四、在vue组件中引入three.js库五、创建场景(Scene)和相机(Camera)六、创建渲染器(Renderer)七、创建物体和灯光八、渲染场景(Scene)九、运行测试核心代码 一、uni-app介绍 uni-app是一个基于Vue.…

sqlserver 中的表值函数和标量函数

目录 一、表值函数 1.内联表值函数 1.创建函数 2.调用函数 3.返回结果 2.多语句的表值函数 2.调用函数 3.返回结果 3.内联表值函数和多语句的表值函数的区别 1.语法上 2.结构上 二、标量函数 1.创建函数 2.调用函数 2.返回结果 总结 一、表值函数 表值函数是返回一个Table类型…

如何使用jmeter进行压测

1.概述 一款工具,功能往往是很多的,细枝末节的地方也很多,实际的测试工作中,绝大多数场景会用到的也就是一些核心功能,根本不需要我们事无巨细的去掌握工具的所有功能。所以本文将用带价最小的方式讲解如何快速上手使用…
最新文章