兼容性测试怎么做?
说到兼容性测试,大多数人***时间都会只想到浏览器的兼容,很少有人能够准确理解兼容性测试,实际上兼容性还包括其他内容,比如PC/Web端、APP兼容、智能硬件兼容等等。下面先具体说一下什么是兼容性测试:
兼容性测试(Compatibility Test Suite),官方简称CTS,是指对所设计程序与硬件、软件之间的兼容性的测试。一般来说,兼容性是指能同时容纳多个方面,在计算机术语上兼容是指几个硬件之间、几个软件之间或者是软硬件之间的相互配合程度。
那么如何进行兼容性测试,我们以常见的web端和APP端的兼容性测试为例,说一下具体该如何进行兼容性测试:
一种方法是人工测试即全手工测试兼容性,第二种方法是借助于第三方兼容性测试工具,第三种是采用兼容测试服务商,比如国内做的比较好的Testin云测。
前两种方法都有利弊点,首先,人工测试的工作量很大,这样就会导致测试的覆盖面不全,第三方测试工具虽然相对于人工测试来说工作量小,但在主功能和主流程测试的时候没有侧重点,会很难发现一些隐藏的问题,想要更好的实施兼容性测试,目前主流的是采用兼容测试专业的服务商模式,下任务,等报告就可以了,专业简单可信赖。
【app测试-安卓】兼容性测试
1 概述
兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。
2 兼容性测试的目的
由于Android设备在品牌、系统、屏幕、硬件等碎片化较为严重,导致一些app在特定的机型上未能按预计的设计展示和运行,导致用户体验较差,不利于app的推广,影响业务发展。为此,app需在上线前进行兼容性专项测试,以便尽可能适配市面上已上市或即将上市的手机和系统。
3 影响兼容性问题的因素
3.1 硬件
1、处理器
a) CPU架构,常规手机均是arm64 ,若app要适配x86架构则需要针对性测试
b) 不同CPU厂商,尤其是小众CPU,需要特别考虑,例如华为海思、小米澎湃
2、 显卡
a) 显卡影响图形渲染和部分场景的计算,app如用到OpenGL、OpenCV、深度学习、AR、VR、AI,则需要重点考虑
3、 屏幕
a) 分辨率影响UI展示,需兼容HVGA、VGA、WVGA、FWVGA、720p、1080p屏幕分辨率,并考虑不同PPI的情况
b) 关注异形屏幕:刘海屏、水滴屏、打孔屏、全面屏
4、 传感器
a) 视app实际调用情况进行选择:如指纹模块,则需要考虑不同供应商的情况
5、 物理按键
a) 检测物理按键是否生效:音量键、电源键、拍照键
b) 与系统或其他app是否存在冲突
3.2 系统
1、 Rom
a) 不同版本的系统存在一些API、功能、权限等差异,需要结合app的功能进行适配;
b) 第三方定制rom具有一些特殊功能或权限,需要特别考虑,如MIUI
2、 编译版本
a) app编译时以***版本设置值为标准,操作系统会拒绝将应用安装在系统版本低于标准的设备上
b) Android版本更新,新的版本会引入一些新的特性和方法,新的方法带来很多便利,但是对系统版本有要求,无法再低版本手机上运行,如果未做兼容性处理,强行运行,会导致Crash
附:Android 已发布版本和API对应表及占用率(官方数据)
3、 浏览器内核
a) 不同浏览器内核影响web页面展示及功能
3.3 网络
1、 2G/3G/4G/5G
a) 不同网络下兼容各种类型的网络请求,关注数据请求过程及结果
2、 WiFi
a) 部分WiFi非直连网络,需要有一步认证的过程,需要特别考虑
b) 对于可能弹出广告的WiFi要做兼容处理
4 介入时机
1、产品发布前或发布后更新涉及上述 “影响兼容性问题的因素”中一个或多个点时,且面临用户数较多、使用人群较为复杂
2、产品上市后出现较多兼容性问题
5 场景选择
以下罗列的一些通用场景,并针对场景做了具体的描述,有些场景是非必测项,具体可视app功能来确定
5.1 安装卸载
该场景会涉及系统权限,可能会出现无法安装或安装后数据丢失,甚至无法启动
5.2 UI展示
受不同屏幕分辨率、PPI影响,可能会出现展示错乱、图片丢失、图片穿透等
5.3 高频交互
高频交互场景受一系列因素影响,考验整机兼容性,需特别考虑
5.4 H5页面(JS/CSS)
不同浏览器内核、浏览器标识会影响具体样式的展示及数据请求
5.5 文字输入
受输入法、虚拟键盘影响,可能会出现无法上屏,或上屏错乱
5.6 系统API交互
受不同厂家、版本的rom影响,可能会导致功能无法使用
5.7 权限相关
受不同厂家、版本的rom影响,可能会导致一些权限无法正常获取
5.8 音视频播放/录制
音视频的录制会调用麦克风(多麦)及摄像头(双摄、三摄等),可能存在不可使用或音视频出现错乱
5.9 传感器调用
可能存在传感器无法调用、权限异常或数据异常
5.10 升级覆盖
受存储权限、安全性影响,可能会出现数据丢失、无法启动等错误
5.11 三方SDK
三方SDK的架构、技术选型会影响上层正常调用
5.12 外设交互
特殊厂商的键盘、鼠标等外设可能存在冲突或无法调用
6 设备选择
1、通过用户调研、竞品分析、三方平台数据(近阶段各设备占用率分布及设备出货量、预出货量等)等确定设备选择范围;
附:
友盟设备统计:
百度设备统计:
艾瑞移动设备分析:
腾讯移动分析:
2、根据app类型,确定重点考虑的指标(通常考虑rom、分辨率、厂商),剔除重复,保留用户量较多的设备
7 测试方法
参照上文中列出的和兼容性相关的点以及产品特性,整体相关场景,并选择合适的设备进行手工或自动化方式进行测试验证(附:设备选择方式参考)
自行协调云测平台优点拥有设备的完全控制权,测试范围更广设备丰富,执行较为简单,有完整的测试报告缺点需要采购,成本较大,有些特殊系统很难协调到资源需要支出一定费用,设备不完全可控,灵活性较差
附:
常见云测平台对比报告
怎么测试内存条的兼容性?
1)内存结构测试,
2)内存基本功能测试,
3)操作系统兼容性测试,
4)稳定性测试。
对内存做兼容性和稳定性评估,在各项测试中,若发现异常情况,则不兼容简单点,就是你买个不同牌子的,不同代的不同频率的放机子跑,机子容易蓝屏的就是不兼容的。
兼容性,是指几个硬件之间、几个软件之间或是几个软硬件之间的相互配合的程度。
兼容的概念比较广,相对于硬件来说,几种不同的电脑部件,如CPU、主板、显示卡等,如果在工作时能够相互配合、稳定地工作,就说它们之间的兼容性比较好,反之就是兼容性不好。
兼容性,常见于电脑组装机制中 ,在一定程度上加速了电脑的普及,而电脑配件制造商们自然也为此做出了巨大贡献。
所谓兼容性,是指几个硬件之间、几个软件之间或是几个软硬件之间的相互配合的程度。
兼容的概念比较广,相对于硬件来说,几种不同的电脑部件,如CPU、主板、显示卡等,如果在工作时能够相互配合、稳定地工作,就说它们之间的兼容性比较好,反之就是兼容性不好。
APP 兼容性测试
APP 兼容性测试维度包含:新旧版本兼容测试、不同机型测试(系统兼容性、屏幕兼容性、分辨率兼容、尺寸兼容)、不同网络兼容,具体如下:
一、新旧版本兼容性测试
1、新旧版本覆盖安装升级正常
2、新增功能,新旧版本覆盖安装后使用正常
二、不同机型测试
1.系统兼容性
(1)iOS 系统:iOS11.x、iOS12.x、iOS13.x、iOS14.x
(2)Android 系统:Android5.x、Android6.x、Android7.x、Android8.x、Android9.x、Android10.x、Android11.x
2.屏幕兼容性
iOS:
(1)刘海屏:例如:iPhone x、iPhone xs 、iPhone XR、iPhone 11、iPhone 11 Pro、iPhone 11 pro max、iPhone 12、iPhone 12 pro、iPhone 12 pro max、iPhone 12 mini
(2)非刘海屏:例如:iPhone 8、iPhone 8 plus、iPhone 7、iPhone 7 plus、iPhone 6、iPhone 6s、iPhone 6s plus、iPhone 5s
Android:
(1)全面屏:例如:华为 P30、红米 K30 至尊纪念版、荣耀 X10、vivo APEX 2020 等
(2)非全面屏:例如:华为 P10、华为 P10 plus、荣耀 8 等
(3)曲面屏:例如:三星 Galaxy S10+、三星 Galaxy Note 10+ 5G、华为 Mate30 Pro、华为 P30 Pro、vivo NEX3 等
(4)折叠屏:例如:华为 Mate XS 5G、华为 mate X2、三星 Galaxy Z Fold2 5G、三星 Galaxy W21 5G
3.分辨率兼容性
iOS
(1)1080*2340 :iPhone 12 mini
(2)1284*2778:iPhone 12 pro max
(3)1170*2532:iPhone 12 、iPhone 12 pro
(4)750*1334:iPhone SE 2、iPhone 7、iPhone 8、iPhone 6、iPhone 6s
(5)1242*2688:iPhone 11 pro max、iPhone XS Max
(6)1125*2438:iPhone 11 pro
(7)828*1792:iPhone 11、iPhone XR
(8)1125*2436:iPhone XS、iPhone X
(9)1242*2208:iPhone 8 plus、iPhone 7 plus、iPhone 6s plus
(10)640*1136:iPhone 5s
(11)iOS 系统自带的显示模式:标准模式、放大模式
Android
(1)1440*3200:小米 11
(2)1344*2772:华为 mate 40 Pro
(3)1080*2400:一加 8T、vivo S7、OPPO Reno5、荣耀 30、小米 10 青春版、荣耀 X10、荣耀 Pl***4T Pro、OPPO A92s、Redmi K30 Pro、华为 nova7、三星 Galaxy S20 Ultra、荣耀 30 Pro 5G、荣耀 V30、荣耀 V30 Pro、vivo S5、OPPO R17
(4)1080*2460:中兴 AXON 20
(5)1080*2376:IQOO 5、vivo X50、vivo X50 Pro、vivo X60 Pro、一加 8Pro
(6)1080*2340:锤子坚果 R2、荣耀 30Pro、魅族 17、魅族 17Pro、iQOO U1、华为畅享 20Pro、华为 nova7 Pro、红米 9、realme X2
(7)1600*720:红米 9A
(8)1080*2408:vivo Y31s、IQOO Neo3、IQOO z1
(9)720*1560:荣耀 Pl***4T
(10)1080*2256:vivo NEX 3 5G
(11)720*1600:OPPO A32、OPPO A8
(12)1080*1920:Mi 10 Pro
(13)2340*1080:小米 10
(14)3220*1400:三星 Galaxy S20
(15)1080*2280:三星 Galaxy Note10
说明:因为 Android 不同厂家机型多,不同屏幕分辨率也多,以上主要是列举常见的
4.尺寸兼容性
(1)iOS 主要机型尺寸:4 寸-6.7 寸
(2)Android 主要机型尺寸:5 寸-6.7 寸
5.不同网络兼容性
(1)Wi-Fi 切换 4G/5G 网络情况下功能是否正常
(2)4G/5G 网络切换 Wi-Fi 情况下功能是否正常
(3)有网切换无网情况下功能是否正常
(4)无网切换有网情况下功能是否正常
手游兼容性测试
1.兼容性测试目的:确保游戏能在不同终端上的正常运行;
首先,兼容性测试包括:UI适配、终端适配;
2.UI适配(主要在于手机型号的多样性,端游和页游相对简单)
手游:分辨率,主要测试全屏界面、边界按钮的适配;
1)主流分辨率:2k( 2048×1080)、1080P(1920 x1080 )、720P(1280 x 720、1280 x 640、1280 x 544 )、540P(960*540)、18:9(2880×1440)、19:9(1080×2280)-- 根据市场白皮书持续优化
主要测试全屏界面、边界按钮的适配;
主流分辨率:2k( 2048×1080)、1080P(1920 x
1080 )、720P(1280 x 720、1280 x 640、1280 x 544 )、540P(960*540)、18:9(2880×1440)、19:9(1080×2280)--根据市场白皮书持续优化
3.终端适配
测试设备进行适配测试, 主要测试异型设备的适配;--可选择远程测试
主流异形设备:刘海屏(魅族X8)、水滴屏(红米7)、全面屏(vivo Y85)、曲面屏(三星S8)、折叠屏等;-- 根据市场设备发布持续优化
Android: Android4.0-Android11各系统版本差异性测试;
IOS: IOS7.0-IOS13各系统版本差异性测试;
4.远程真机测试
根据公司规模节省成本的方式可以选择远程真机进行测试,兼容性测试平台:wetest、testbird、testin等,手机厂商兼容性测试平台:华为、OPPO、vivo、小米、三星等;
兼容性测试
兼容性测试主要有手动测试、自动化测试和云平台测试三种方法。
现在业界主流机型兼容自动化思路,是利用多机型云平台海量的设备进行被测 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 )项目中,搭建了一套自动化工具。通过编写功能测试自动化脚本,在内部云平台设备上运行。自动化框架如下图所示:
当你面对下图这样的测试结果,如果仅仅通过文字判断,结果是完全正确的。但是,你能承认结果是正的吗?很显然不能。因为背景颜色发白,不符合预期。
问题的关键在于: 自动化无法验证复杂的界面颜色、布局、背景等元素。
如何破解呢 ?从投入产出比来看,采用自动化运行,人工验证结果(截图)的半自动化方式。
UI 级别的自动化给人的印象一直就是 “ 变化太大,收益太低 ” 。一旦 UI 发生了较大变化,之前的自动化脚本就会有较大改动,投入高,收益低。
怎么破解这个难题?思路如下:
(1)降低建设成本: 笔者以编写自动化脚本为例,首先,选择一个低学习成本而且高效率的框架很重要。其次,不断地累计公共函数,让脚本开发速度提升数倍。
(2)提高使用频率: 自动化测试使用频率越高,收益就越高。同一套自动化脚本,在当前版本每次回归时都能使用;同样,经过简单修改后,在下个版本中也能发挥重要作用。
(3)以不变应万变: 自动化的模块还是优先选择 UI 相对变化较小的模块,这些是适合自动化的部分,能在未来减少变化带来的成本。
(4)发展多种经营: 自动化脚本的用途,绝对不只是在功能验证上这么简单。其他各种测试都可以用到,例如:覆盖安装、性能测试、安装包验证 …… 发更多的用途就会有更大的收益。
关于兼容性测试和兼容性测试包含哪些测试内容的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。