当前位置:网站首页>十年测试老鸟聊聊移动端兼容性测试
十年测试老鸟聊聊移动端兼容性测试
2022-07-27 17:59:00 【TEST_二 黑】
首先,我们来分析一下系统、分辨率、品牌对兼容性测试的影响:
系统
因为安卓系统各个版本操作系统的底层实现会发生改变,因此容易出现如果使用了这些底层细微差异的api,出现不一致的情况。
比如,各个不同操作系统的组件实现方式不同,导致属性不一样,布局方式的改变。也由于对于容器和容器的层实现不同,导致出现的问题。
这些问题,主要跟应用系统使用了特定的技术,出现差异有关。但是,某个应用使用了“边界差异“技术,预先是难以获知的,因此需要来通过操作系统覆盖来实现。
分辨率
分辨率对显示的影响很大。但是还有一个值,叫做“显示密度“。比如,两个屏幕的分辨率相同,但是一个是6.5寸屏幕,一个是4.5寸屏幕,如果显示密度相同,那么大屏上出来的字会很小,但是间隔很大,不好看,因此会内部设置显示密度。
如果分辨率和显示密度的配合不合理,就会出现某些应用的界面显示不全的问题,但是应用程序本身是无法发现的,因为局部界面显示在“虚拟“屏幕上,就是不出现在物理屏幕上。
此外,由于分辨率不同,自适应的应用程序也容易出现布局问题,特别是H5应用程序上面。
界面元素比较少的小程序,影响不会很大。但是对于界面元素比较“拥挤“的,也会产生兼容性问题。APP跟小程序类似。
品牌
品牌影响主要是:
字体
自定义UI的实现
先说字体。目前各个品牌的手机,都使用了自己的,或者特定的字体,如果想要修改字体,就需要root,这个就等于破坏了原有手机的显示设置,在这样前提下的兼容测试没有意义。字体就会有不同的间距,矢量点阵。
字体的变化,对于人工测试没有影响,但是对于使用自动化来做兼容测试,就影响很大。
自定义UI的实现,这个其实跟操作系统升级的影响是类似的。操作系统的升级,对应用程序的影响,包括UI从层面的,就体现在这里,可能比操作系统更重要;UI之外,对操作系统的兼容更重要。
影响因素说完了,下面我们来讲一下各种兼容性测试的比较。首先我们要排除手工来测试,那么就剩下通过程序来测试了。
测试种类
Monkey测试
自动遍历测试/深度遍历测试
测试用例的兼容测试
特点和适用性
类似于盲人使用手机,胡乱输入、点击
依赖于遍历算法,但是校验能力很差
根据应用的测试用例编写测试脚本来进行测试
适用性
更适用“负载测试“,就是运行很久来发现系统是不是存在内存泄漏等问题,对兼容性测试,可以说毫无意义。
就是写一个程序遍历应用系统的界面功能。从实际情况来看,能够发现的问题不到10%,比monkey强一丢丢。
需要耐心编写各个界面遍历,以及每个界面如何校验以保证兼容测试可以正确检查
对分辨率
没意义
难以发现分辨率的问题
可以根据客户提供的UI页面设计框架图,对页面的对象的宽高属性比例进行校验
对页面图像图标,可通过设置图像校验点进行图像比对校验
操作系统的不同版本
能够在短时间测试针对操作系统进行大量操作,验证APP、小程序、H5应用在操作系统上运行的稳定性,发现运行过程中是否存在黑白屏、闪退、卡死问题
可验证在不同操作系统运行过程中的黑白屏、闪退、卡死问题;
能够在不同操作系统上确保APP、小程序、H5应用部分功能及业务流程的正常使用;
自动遍历会导致绝大多数的功能无法遍历到,从而出现漏测
能够在不同操作系统上确保APP、小程序、H5应用功能及业务流程的正常使用;
可获取在不同操作运行时的CPU、内存、流量、FPS性能数据;
对品牌、字体
没意义
极少涉及品牌、字体对UI页面印象的校验
可验证不同品牌、字体对APP、小程序、H5应用UI页面影响
综观对比,对于不同测试需求和产品所处的测试阶段,可以选择合适的兼容性测试方法。
对于处于开发阶段,注重功能及业务流程测试的APP、小程序、H5应用,可提供自动遍历测试发现兼容性问题,因为这个阶段应用本身不够稳定,使用通用的遍历测试,可以作为“冒烟测试”来使用。
对于刚刚开发完成,即将上线的APP、小程序、H5应用,可通过测试用例测试兼容测试,全面发现兼容性问题;
对于已然上线或者产品已进入迭代阶段的APP、小程序、H5应用,可通过Monkey测试在大量系统上验证产品的稳定性。
边栏推荐
- 2022.07.11
- Summary of simple topics
- C语言pow函数(c语言中指数函数怎么打)
- 我也是醉了,Eureka 延迟注册还有这个坑
- Pytorch multiplication and broadcasting mechanism
- 【毕设教程】YOLOv7 目标检测网络解读
- 软件测试面试题:已知一个队列,如: [1, 3, 5, 7], 如何把第一个数字,放到第三个位置,得到:[3, 5, 1, 7]
- What are the apps of regular futures trading platforms in 2022, and are they safe?
- Two years after its release, the price increased by $100, and the reverse growth of meta Quest 2
- JD: search product API by keyword
猜你喜欢

Oracle +JDBC

Understand │ what is cross domain? How to solve cross domain problems?

JS realizes video recording - Take cesium as an example

分享Redshift渲染器的去噪方法技巧,一定要看看

Pyqt5 rapid development and practice 4.5 button controls and 4.6 qcombobox (drop-down list box)

PyQt5快速开发与实战 4.3 QLabel and 4.4 文本框类控件

PyQt5快速开发与实战 4.5 按钮类控件 and 4.6 QComboBox(下拉列表框)

【阿里安全 × ICDM 2022】20万奖金池!大规模电商图上的风险商品检测赛火热报名中!...

Learn about the 12 necessary animation plug-ins of blender

我也是醉了,Eureka 延迟注册还有这个坑
随机推荐
分享Redshift渲染器的去噪方法技巧,一定要看看
软件测试面试题:已知一个数字为1,如何输出“0001
学习Blender必备的12款动画插件,来了解一下
华为150人团队驰援,武汉“小汤山”5G基站火速开通!
2022.07.11
IE11 下载doc pdf等文件的方法
同源与跨域
What app should individuals use for stock speculation to be safer and faster
CONDA common commands
【效率】弃用 Notepad++,这款开源替代品更牛逼!
Scrollintoview realizes simple anchor location (example: select city list)
You can understand it at a glance, eslint
一个程序员的水平能差到什么程度?
C language POW function (how to play exponential function in C language)
MLX90640 红外热成像仪测温传感器模块开发笔记(七)
为什么需要第三方支付?
ES6--拓展运算符运用
Redis-基本了解,五大基本数据类型
EasyCVR平台添加RTSP设备时,出现均以TCP方式连接的现象是什么原因?
Pyqt5 rapid development and practice 4.7 qspinbox (counter) and 4.8 QSlider (slider)