兼容性测试怎么做?
说到兼容性测试,大多数人第一时间都会只想到浏览器的兼容,很少有人能够准确理解兼容性测试,实际上兼容性还包括其他内容,比如PC/Web端、APP兼容、智能硬件兼容等等。下面先具体说一下什么是兼容性测试:
兼容性测试(Compatibility Test Suite),官方简称CTS,是指对所设计程序与硬件、软件之间的兼容性的测试。一般来说,兼容性是指能同时容纳多个方面,在计算机术语上兼容是指几个硬件之间、几个软件之间或者是软硬件之间的相互配合程度。
那么如何进行兼容性测试,我们以常见的web端和APP端的兼容性测试为例,说一下具体该如何进行兼容性测试:
一种方法是人工测试即全手工测试兼容性,第二种方法是借助于第三方兼容性测试工具,第三种是采用兼容测试服务商,比如国内做的比较好的Testin云测。
前两种方法都有利弊点,首先,人工测试的工作量很大,这样就会导致测试的覆盖面不全,第三方测试工具虽然相对于人工测试来说工作量小,但在主功能和主流程测试的时候没有侧重点,会很难发现一些隐藏的问题,想要更好的实施兼容性测试,目前主流的是采用兼容测试专业的服务商模式,下任务,等报告就可以了,专业简单可信赖。
兼容性测试
兼容性测试主要有手动测试、自动化测试和云平台测试三种方法。
现在业界主流机型兼容自动化思路,是利用多机型云平台海量的设备进行被测 App 的安装卸载、稳定性、功能测试等测试。本节主要介绍自动化实现部分,云平台使用部分在下一节介绍。
通过在 Android 设备上安装被测应用 → 启动被测应用 → 卸载被测应用,来检验以下两方面内容:
a、安装包的安装兼容性
通过 adb ( Android Debug Bridge )进行安装和卸载。例如:安装包 test.apk ,包名 com.sample.app ,启动 Activity 是 MainActivity 。
安装: adb install test.apk 。
启动: adb shell am start–n com.sample.app/.MainActivity 。
卸载: adb uninstall test.apk 。
覆盖安装: adb install–r test.apk 。
通过上述命令,进行 App 安装、启动、卸载。观察 console 输出,如果是 success 就是成功,反之就是失败。同时抓取 Logcat ,提供给开发人员。
b、通过启动被测应用,检测启动 crash 等低级致命问题
通过对 Logcat ( DDMS 中工具)打印内容进行监控,查找 Java 层和 Native 层 Crash 信息。
Java 层 Crash 信息如下:
Native 层 Crash 信息如下:
如果 Crash 的 Trace 信息中包含被测 App 的包名( com.sample.app ),那么这个 Crash 就是被测 App 引起的。
为了测试 App 在各种不同机型上的稳定性,通过工具测试进行数小时测试,发现 Crash 问题。业界主要通过两种方法进行测试,具体如下:
a、控件遍历测试
现在业界测试实现方法基本包含以下几个步骤。
( 1 )获取当前被测 App 的所有控件方法见下表:
在手机 ( Android )项目中,搭建了一套自动化工具。通过编写功能测试自动化脚本,在内部云平台设备上运行。自动化框架如下图所示:
当你面对下图这样的测试结果,如果仅仅通过文字判断,结果是完全正确的。但是,你能承认结果是正的吗?很显然不能。因为背景颜色发白,不符合预期。
问题的关键在于: 自动化无法验证复杂的界面颜色、布局、背景等元素。
如何破解呢 ?从投入产出比来看,采用自动化运行,人工验证结果(截图)的半自动化方式。
https://mp.weixin.qq.com/s/JNHKJfnW74tDeVilIfnfMg
https://blog.csdn.net/addisonko/article/details/50912357
https://blog.csdn.net/budf01/article/details/53694177
https://testerhome.com/topics/7966
https://blog.csdn.net/yorkz0909/article/details/76523271
UI 级别的自动化给人的印象一直就是 “ 变化太大,收益太低 ” 。一旦 UI 发生了较大变化,之前的自动化脚本就会有较大改动,投入高,收益低。
怎么破解这个难题?思路如下:
(1)降低建设成本: 笔者以编写自动化脚本为例,首先,选择一个低学习成本而且高效率的框架很重要。其次,不断地累计公共函数,让脚本开发速度提升数倍。
(2)提高使用频率: 自动化测试使用频率越高,收益就越高。同一套自动化脚本,在当前版本每次回归时都能使用;同样,经过简单修改后,在下个版本中也能发挥重要作用。
(3)以不变应万变: 自动化的模块还是优先选择 UI 相对变化较小的模块,这些是适合自动化的部分,能在未来减少变化带来的成本。
(4)发展多种经营: 自动化脚本的用途,绝对不只是在功能验证上这么简单。其他各种测试都可以用到,例如:覆盖安装、性能测试、安装包验证 …… 发更多的用途就会有更大的收益。
兼容性测试包括哪些方面?
一、兼容性测试就是测试电脑硬件之间是否有不兼容等问题或软件问题。
二、兼容性测试侧重哪些方面
1、向前兼容和向后兼容。向前兼容是指可以使用软件的未来版本,向后兼容是指可以使用软件的以前版本。
2、不同版本之间的兼容。实现测试平台和应用软件多个版本之间能够正常工作。
3、
标准和规范
高级标准是产品应当普遍遵守的。若应用程序声明与某个平台兼容,就必须接受关于该平台的标准和规范。低级标准是对产品开发细节的描述。
4、数据共享兼容。数据共享兼容是指要在应用程序之间共享数据,要求支持并遵守公开的标准,允许用户与其他软件无障碍的传输数据。
三、兼容性测试平台推荐
我会推荐优测这个平台,产品体验比较好,价格也比较划算,人员也十分专业,是腾讯旗下的一个品牌。从项目接入到方案制定,再到项目实施,标准化流程,流水线管理,可以做到快速实施,高效率、高质量输出,
而且优测深耕兼容性测试多年,服务多款亿级用户app,独立测试团队,兼容性测试领域经验丰富,完善的测试流程和解决方案,为企业提供高效的测试服务。
配置和兼容性测试的区别是什么?
打个很通俗的比喻,就像一台智能电视机:
所谓的配置无疑就是这个电视有多少输入(HIDI、USB、TV、RGB、蓝牙、WIFI、)基础硬件配置就是电视的主板主芯片(看多少RAM+ROM多少G)、系统、解码芯片、电源主板、驱动主板、这些都是硬件配置;
所谓兼容性测试就是这个智能电视机上能装些什么软件,如果你在电视上装上微信,你可以发信息给到收件人,但你如果打视频电话,普通电视上是不内装摄像头,所以你不能打视频电话,这就是兼容性测试一种容易懂的,如果你在智能电视上加装上一个摄像头,再装好驱动之后,就可以打视频电话,但又有一个问题可能发生,如果你的摄像头上不带咪头,可能视频通话,听不到声音,如果摄像头带咪头,就可能顺利进行视频电话
上述所表现的比方就很容易懂这个意思了。
1、配置测试的主要是保证软件在其相关的硬件上能够正常运行
2、兼容性测试主要是测试软件能否与不同的软件正常协作
配置有软件配置文件(驱动),跟硬件配置
手机兼容性测试方案
手机的兼容性测试是提前发现一些可能由于不同系统特性、分辨率等导致的bug,满足Native App、Hybrid App、Web App(以下简称应用)的兼容性测试,兼容性测试需满足以下几点:
1.待测应用在不同的操作系统平台上正常运行,包括待测试项目能在同一操作系统平台的不同版本上正常运行;
2.待测应用能与相关的其他软件或系统“协调工作”;
3.待测应用能在指定的硬件环境中正常运行;
4.待测应用能在不同的网络环境中正常运行。
从上图可以看出,苹果、三星、LG、Motorola占了80%以上,因此需要重点选择这些机型。
机型选择,除了满足市场上的主流机型,还要考虑分辨率、屏幕大小、操作系统版本、网络接入模式等因素,需要考虑的维度如下表。
综合上述标准,并对同类的机型进行合并,最终选定做兼容性测试的手机列表如下:
也可选择云端测试平台,如Testin、TestBird。其中Testin线上有近200种的真机机型,按使用时长付费。每分钟3元,企业用户打9折。详情可看testin官方网址。 www.testin.cn
移动端兼容性测试怎么做?
什么是兼容性测试
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–【百度百科】
为什么要做兼容性测试
目前碎片化十分严重,尤其是安卓设备。安卓设备碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能还有定制的系统,都给我们适配带来了不小的挑战。除了上面的碎片化,当然还有系统版本碎片化,屏幕碎片化等,为了给用户更好的用户体验,做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……)
缓存(ssionstorage、localstorage)
哪些场景需要做兼容性验证
UI显示
多次快速点击
拉起虚拟键盘挡住输入区
虚拟物理按键收起与显示
多个输入框来回切换
控件焦点热区文体
前后台、多个应用切换
指纹识别和faceid等
框架升级
网络
新老版本兼容
第三方依赖库或者SDK升级
前后端版本兼容
如何做兼容性测试
主要分为内部和外部。内部由测试人员自己覆盖主要机型。机型选取的原则是,根据自己APP用户的机型,选取至少top10进行人工兼容性测试。内部还可以进行的就是UI自动化测试。外部可以借助云测平台,比如testin、testbird等。