APP兼容性测试如何测试?

2023-11-16

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

APP兼容性的测试主要包含系统兼容、产商ROM 兼容性、屏幕分辨率兼容、网络兼容、其他兼容性几个大类,下面对测试方法逐一进行详细的说明。

一  APP兼容性类型

1系统兼容

app系统兼容涉及Android和IOS系统,其中Android系统又分了不同的系统版本,IOS又分不同的系统版本。不同的系统、不同的系统版本都有不同的特征,不同的API,意味着都有可能产生各种各样的兼容问题,所以需要进行兼容覆盖。

Android系统版本分布及市场占有率如下

针对 Android,主要考虑 7.x,8.x,9.x,10.x。

IOS 系统版本分布及市场占有率如下:

 针对 IOS ,主要考虑 12.x、13.x、14.x。

2 厂商ROM 兼容性

Android和IOS 都有不同的手机设备,相比而言, Android 系统源码是开放的,只要遵从相应的协议,就可以对源码进行修改,国内厂商就把基于 Android 源码改造成自己对外发布的系统,比如我们熟悉的小米手机 Miui 系统、Oppo 手机 ColorOS 系统等,由于每个厂商都修改过 Android 原生系统源码,这里面就会引发一个问题,那就是著名的Android 碎片化问题,本质就是不同 Android 系统的应用兼容性不同,哪怕是搭载完全相同的硬件,不同品牌的手机在运行速度、软件兼容上都会有区别的。

Android 平台的品牌及型号排名:

 IOS 平台的型号排名:

3屏幕分辨率兼容

继全面屏手机推出后,目前手机的分辨率真的是五花八门,刘海屏、水滴屏、挖孔屏,还有折叠屏等等。从分辨率尺寸来说也有数十种之多,不同分辨率的设备上呈现出来的效果也不尽相同,如果没有进行适配,可能就会给用户带来很糟糕的体验。

Android的主流分辨率为:1080P继续占据主流;

Android主流尺寸是 6.x 英寸;

iOS 的主流分辨率为:828*1792, 1125*2436, 1242*2208 等;

iOS主流尺寸为 5.5~6.5 英寸。

4网络类型

保证各种网络环境能够覆盖,包括WiFi、3大运营商的2G和3G、4G网络、5G网络,有鉴权的wifi和无鉴权的wifi。

按运营商分:电信、移动、联通

按网络模式分:2G、3G、4G、5G、WiFi

按接入点分:wap、net

一般APP网络的兼容主要是针对IPV6网络兼容、弱网兼容、wap和net接入、不同地域(地理位置)的运营网络、有鉴权的wifi和无鉴权的wifi、代理类wifi。

5其它兼容

数据兼容性(不同版本间的数据兼容);
蓝牙设备兼容性测试 (如果是一款使用蓝牙的应用);
存储卡兼容性测试(比如文件管理器);
第三方软件兼容冲突(比如输入法冲突)。

APP兼容性如何开展?

1需求阶段

需求分析阶段,测试童鞋需要和开发、产品、设计师根据需求的场景、历史运营用户数据、市场占有率数据讨论及确定好当前版本需求兼容的系统、系统版本、厂商、屏幕分辨率、网络等的适配方案。

2测试设计阶段
根据当前市场和线上运营用户的各系统版本、厂商的使用率,结合移动设备分辨率的特性,得出APP的兼容测试矩阵,下图仅供参考。

3测试执行阶段

①测试过程中根据兼容测试矩阵在不同测试轮次中切换不同的测试机进行测试并记录。

②有条件的同学可以搭建STF平台进行组内测试机设备管理平台,所有兼容测试工作可以在PC端远程控制真机完成,省时又省力,还能做到测试组内手机共享使用,减少沟通成本。

③利用业内已有的云测平台进行兼容测试:

目前基本上大的云测平台都有推出首次免费或者日首次免费的随机安装启动标准兼容服务,免费的一般只能做50~100款机型。如果要做全面的机型覆盖和深度兼容则需要付费了,而且目前各大云测平台的收费较高,如果要全面覆盖所有机型的话,是笔不小的开销。

如果测试的app属于受众广泛,运营效果不错,月活过亿的,用户千万、亿级用户的比如微信,qq,支付宝类型的,那么就很有必要投入金钱或者组织人力搭建云测平台进行全面的机型覆盖。

如果测试的app受众用户只有不到万,日活月活很低的产品比如中小银行app、房产交易app,个人认为没有必要投入大量的金钱去兼容全部的机型。但是可以利用云测平台去复现线上用户个别未覆盖机型所遇到的bug,拿到日志和解决方案,这样投入的成本相对小且有针对性。

如果测试的app受众介于以上两者特征之间的,而且效益也不错,月活日活也能达到上万的例如一些理财产品APP、证券类app、电商app,则可以对目前app当前市场各版本和品牌的使用率,获取当前APP用户覆盖的top n款手机,在云测平台进行top n款手机的覆盖测试。

实际上,目前很多的公司,已经提供了兼容性云测服务,例如Testin、TestBird,除此,大型公司也对外推出自己的测试工具,比如谷歌、腾讯WeTest、百度MTC、阿里MQC等等,其实不乏一些付费项目。

4线上阶段
 

①当通过人工或自动手段完成 APP 兼容性测试,并产品上线后,会收到用户反馈的兼容性问题。依据反馈问题,需补充该兼容性测试场景的用例,用于后续版本测试。

②APP上线发布市场后,可以通过crash平台、bugly等监控平台收集因兼容问题导致的闪退和无法安装、运行的错误信息传到后台服务器端,然后开发根据错误日志进行定位,从而找出问题原因并解决。

③测试及开发童鞋需要对主流手机及ROM更新保持较高的质量敏感性,时刻关注厂商升级资讯和特性,一旦有更新,需要测试线上APP兼容适配情况,快速应变,及时适配到主流机型和ROM。

原文链接:

APP兼容性测试如何测试? - 两三颗啤酒味的星☆~ - 博客园

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

APP兼容性测试如何测试? 的相关文章

  • Android 架构组件与 Firebase 特别是 Firestore

    我正在经历这个blog https firebase googleblog com 2017 12 using android architecture components html by 道格 史蒂文森 https twitter co
  • SugarORM 错误或缺少数据库

    我尝试让 Android 项目与 SugarORM 一起使用 但是 我遇到了以下错误 引起原因 android database sqlite SQLiteException 没有这样的表 DOCUMENT 代码1 编译时 INSERT O
  • 蓝牙适配器.getDefaultAdapter();返回空值

    我开始开发一个应用程序通过蓝牙与arduino设备进行通信 我正在初始化 bt 适配器 BluetoothAdapter btAdapter BluetoothAdapter getDefaultAdapter 问题是 btAdapter
  • 当用户快速滚动时,如何延迟列表适配器中视图的加载

    我的列表视图中有从互联网下载的图像 我想在 getView 中添加一些内容 以便在用户快速滑动 滚动时它不会下载图像 我怎样才能开始这样做呢 您可以按照以下步骤延迟 ListView 中视图的加载 首先 你应该让你的ListView对象和Y
  • java中将函数作为参数传递

    我正在熟悉 Android 框架和 Java 并希望创建一个通用的 NetworkHelper 类 该类将处理大部分网络代码 使我能够从中调用网页 我按照developer android com 上的这篇文章创建了我的网络类 http d
  • 如何向 ListView 添加粘性标题?

    我有一个 listView 所以我想添加一个粘性标头 以便它粘在 listView 的顶部 当 listView 中开始不同的类别时 不同的标头会取代它 就像联系人一样 其中 a 为粘性标头位于顶部 直到 b 出现 有没有图书馆可以做 我正
  • Eddystone Beacon 中广播的 MAC ID 会改变吗?

    我将描述我的设置 我制作了一个模拟 Eddystone 信标的 Android 应用程序 我能够使用 PlayStore 中的 Beacon Toy 应用程序检测手机上的 Eddystone 信标 但问题是 自上次检查以来 显示的 MAC
  • 为什么Volley的onResponse没有被调用

    我正在通过 Volley 获取 json 数据 我遇到的问题 那是凌空的onResponse从未被调用 因此不会解析和显示数据 JSON 数据示例 title This is a sample text title title cat or
  • Android 时间选择器在分钟滚动时自动更改小时

    例如 当我在 TimePicker 上滚动分钟时 在将分钟滚动到 59 后 小时会自动滚动到 7 因此新时间将为 07 59 同样的方式 如果我有 07 59 并且我将分钟滚动到 00 小时将自动滚动到 8 所以时间将是 08 00 此逻辑
  • 某些设备上的启动画面扭曲

    我在修复 Android 上的启动画面扭曲问题时遇到问题 我正在使用 React Native 请注意 这种情况仅发生在某些设备上 例如 我有一台 Android 版本为 4 2 2 的三星 启动画面不扭曲 而 Android 版本为 8
  • ArgumentMatchers.any 不得为 null

    我正在尝试测试ViewModel以确保实时数据得到正确更新 然而使用时ArgumentMatchers any 它失败了IllegalStateException saying ArgumentMatchers any mViewModel
  • android 销毁时是否有任何视图回调?

    我有一个自定义视图组件 我在片段或活动中使用了它 我想知道当它从片段 活动中销毁时是否有回调 View 没有回调 除了finalize 但我不认为这就是你所要求的 查看有onDetachedFromWindow 当它从屏幕上移除时 但这与它
  • AsyncTask:DoInBackground(String ...)与DoInBackground(Params ...)冲突?

    当尝试使用时Async task要执行 HTTP post 我得到以下信息 ASyncTask DoInBackground String clashes with DoInBackground Params in Android os A
  • 如何发现另一个应用程序的意图

    我正在尝试构建一个应用程序来接收来自 StumbleUpon 应用程序的共享 此时 我可以接收浏览器的 共享网址 但是当从 StumbleUpon 共享时 我的应用程序不会显示在列表中 我想我可能没有在清单中注册正确的意图 有什么方法可以找
  • 将字节数组保存为 Android 设备文件夹中的 jpg 文件

    我正在尝试将图像保存在 Android 设备的文件夹中 我使用的代码如下 var newFolder AndroidEnvironment GetExternalStoragePublicDirectory AndroidEnvironme
  • Android SSH 示例代码

    我想创建一个 android 活动 用于与远程设备 通过 Wifi 建立 SSH 会话并在远程设备上执行一些 Linux 命令 任何人都可以获得一个快速 简短的示例 用于使用以下命令进行连接 身份验证和发送远程命令Trilead https
  • 找出该月第一个星期日/星期一等的日期

    我想在java中检测每个月第一周 第二周的第一个星期日 星期一的日期 我怎样才能实现它 我已经检查了 java 中的 Calendar 类和 Date 类 但无法找到解决方案 所以请帮助我解决这个问题 Calendar calendar C
  • 如何在flutter上关注android tv应用程序中的列表视图项目

    我想在 flutter 中构建一个 android 电视应用程序 几乎所有事情都已完成 但一个问题是我无法集中注意力 例如一些弹出效果或边框更改任何告诉用户您现在正在使用此项目的内容 我们在列表视图中迭代的项目 我想要在应用程序中看到的图像
  • 具有通用类的自定义 Android 适配器

    我正在尝试在 Android 中创建一个通用适配器 所以我不能一遍又一遍地编写它 问题是 它正在工作 但它的回收效果不是很好 它显示了我想要的内容 但是当我滚动时 它的顺序不同 public class CustomListViewAdap
  • 使 autocompletetextview 看起来像 edittext

    我正在使用 AutoCompleteTextView Roboto 自动完成文本视图 https github com johnkil Android RobotoTextView blob master robototextview sr

随机推荐

  • php7.4安装

    php7 4安装 下载安装编译工具 yum groupinstall Development Tools y 安装依赖包 yum y install libxml2 libxml2 devel openssl openssl devel b
  • Spring Security详解

    Spring Security详解 一 系统安全 二 Spring Security简介 三 案例 1 新建模块 2 导入静态资源 3 编写控制器 实现跳转 4 安全功能实现 认证和授权 权限控制和注销 记住我 一 系统安全 在Web开发中
  • ES6知识点总结二:解构赋值

    3 解构赋值 ES6 允许按照一定模式 从数组和对象中提取值 对变量进行赋值 这被称为解构 数组 const courseArr es6 es7 es8 const a courseArr 0 const b courseArr 1 con
  • 2023计算机毕业设计选题推荐——Java项目

    A170 536 springboot新冠物资管理系统 A171 537 基于SSM的社区疫情防控平台 A172 538 ssm民宿预订管理系统 A173 539 ssm网上水果生鲜超市商城 A174 540 ssm线上跳蚤市场平台 A17
  • C++万能头文件#include<bits/stdc++.h>

    include
  • 发放金币(循环)

    分享一下个人思路 如果拿1金币 可以拿1天 2金币拿两天 n金币拿n天 也就是说 我们要拿n金币 从当前的天数开始循环n次 每次拿n 每次拿完之后天数 1 include
  • 微信小程序之获取用户位置权限(拒绝后提醒)

    小编推荐 Fundebug专注于JavaScript 微信小程序 微信小游戏 Node js和Java实时BUG监控 真的是一个很好用的bug监控费服务 众多大佬公司都在使用 微信小程序获取用户当前位置有三个方式 1 wx getLocat
  • Google guava之Table简介说明

    转自 Google guava之Table简介说明 下文笔者讲述guava中Table集合的简介说明 如下所示 guava之Table集合简介 Table集合 用于存储数据表 类似于Map
  • 报错异常:java.lang.NoClassDefFoundError

    一 问题背景 由原先的jdk1 8升级至jdk20 启动项目登录后台出现报错问题 org springframework web util NestedServletException Handler dispatch failed nes
  • HttpClient介绍

    本文内容整理自 https blog csdn net w372426096 article details 82713315 HttpClient相比传统JDK自带的URLConnection 增加了易用性和灵活性 它不仅使客户端发送Ht
  • WIN10-22H2专业版_电脑维修人员专用装机系统镜像【04.20更新】

    WIN10 22H2专业版是由站长亲自封装的电脑维修人员专用装机系统镜像 系统干净无广告 稳定长效不卡顿 适合电脑维修店用来维修电脑重装系统 此版本是WIN10系统里非常稳定的正式版本之一 适合在维修电脑时重装系统或者大批量装机使用 本次封
  • 服务器入门

    GPU工作站 服务器 1 cdot 1 1 型号 AMD宵龙 RTX3090 为例 内存类型 REG 内存 8个DIMM DDR4插槽 3200高频内存 gt system长时间稳定运作 存储 8个 3 5英寸驱动 8块3 5存硬盘 2个N
  • C++ 11 新特性之统一初始化语法

    C 之前的初始化语法很乱 有四种初始化方式 而且每种之前甚至不能相互转换 让人有种剪不断 理还乱的感觉 曾经去面试 就有人问我string有几种初始化方式 当时就说出了两种 fuck 面试官还得意的说 你连基本的初始化方式都记不清 还做啥2
  • Qt 中 connect 函数实现信号与槽函数的连接

    目录 简介 connect 函数原型 代码示例 自定义信号和槽函数 信号和槽函数的线程安全性 总结 简介 Qt 是一个功能强大的跨平台应用程序开发框架 其提供了 connect 函数用于信号和槽的连接 实现了对象之间的通信 本文将介绍 co
  • RUST中所有权/生命周期/借用本质探讨

    本书github链接 深入RUST标准库内核 本文摘自以上链接的书籍 如果对本文中涉及的若干知识想进一步了解 请阅读此书 RUST在定义一个变量时 实际上把变量在逻辑上分成了两个部分 变量的内存块与变量内容 变量类型定义了内存块内容的格式
  • vue 源码解读

    前端基本 0基础 尝试从代码入手 不会的直接搜索就行了 成功添加页面 test33 1 在 src config menu js 源码24行增加 title Test33 name Test33 icon 2 在 src routers r
  • pycharm的git密码错误

    原文地址 https www cnblogs com wangjian941118 p 10721650 html pycharm使用gitlab输错密码解决办法 这个问题困扰我两周了 今天抱着试一试的想法 随手搜了一下 出现了新的结果 就
  • 去银行写代码是什么体验?

    最近在知乎上的一个回答火了 关于如何学习操作系统的 分享给大家 如何学会操作系统这门课程 一线互联网岗位和银行 国企还是有点区别的 这篇文章 讲详细讲一讲银行或者金融科技的相关问题 包括面试 待遇等等 虽然前阵子网传几大互联网公司都去掉了大
  • ChatGPT解决了我的出行规划焦虑

    我的五一出行规划 五一旅游季又将到来 许多人为了规划理想的行程而苦恼 需要投入相当时间来筛选各种信息 然而 现在有了Chat GPT 安排美好旅途变得异常简单 只要您告诉GPT您的日期和目的地 不到30秒就可以生成个性化的行程攻略 同时还可
  • APP兼容性测试如何测试?

    随着 APP 应用范围越来越广 用户群体越来越大 终端设备的型号也越来越多 移动终端碎片化加剧 使得 APP兼容性测试成为测试质量保障必须要考虑的环节 APP兼容性的测试主要包含系统兼容 产商ROM 兼容性 屏幕分辨率兼容 网络兼容 其他兼