😄作者简介:小曾同学.com,一个致力于测试开发的博主⛽️,
如果文章知识点有错误的地方,还请大家指正,让我们一起学习,一起进步。😊
座右铭:不想当开发的测试,不是一个好测试✌️。
如果感觉博主的文章还不错的话,还请点赞、收藏哦!👍
为什么把这个章节单独拎出来,因为它特别特别的重要
!!!
虽然一个产品经历了功能和性能测试,但是可能会出现一些 Crash、设备兼容、流量使用、电量问题等。这些问题在上述的测试中很难找出,所以就需要根据这些问题做针对性的测试。
在本篇文章中您将了解到兼容性测试、弱网测试、稳定性测试、流量测试、安全测试
,节选自《移动App测试实战》
这本书。
文章目录
- 兼容性测试
- 弱网测试
- 稳定性测试
- 流量测试
- 安全测试
兼容性测试
兼容性测试
本质上也是功能测试,只不过侧重在不同的软硬件环境
由于测试人力有限,不可能在有限的时间内覆盖所有的场景,所以要做到取舍,那么如何取舍呢?也就是如何圈定测试范围呢?其实针对不同的产品每个公司的做法可能不太一样,但目的只有一个:尽量覆盖该产品的主要用户
。
可能大家多多少少都会听过TOPX原则
,那么什么是 TOP X 原则:是一种用于排序和筛选数据的方法,其中 X 表示一个数字,通常是具体的整数。TOPX 原则的目标是从数据集中选择出排名前X的最高或最佳项。需要注意的是,TOPX 原则只关注排名前X的项,可能会忽略其他未被选中的数据项。因此,在使用 TOPX 原则时,需要考虑数据的完整性和全面性,以避免忽略重要信息。
具体的实践可以分为两大类:
- 借助第三方统计数据获取相关信息,如腾讯移动分析、友盟、Android 官网、iOS官网等,这种方式一般会运用在产品的初期;
- 是在我们自己的APP移动端内运用埋点技术实现 app 的数据和分析,这种方式一般运用在APP 产品已经投放市场一段时间之后。
建议尽量获取自己产品的数据,因为业界给出的数据是汇总了很多不同类型的APP得出的结果。一般是APP内部埋点的方式。
针对APP兼容性测试通常会考虑以下方面:
- 操作系统版本:高中低版本覆盖,需要紧跟高版本测试,比如 iOS17.4、Android15、微信浏览器等(目前版本为写文章时最高版本)。还有 Win7、Win10、Win11 的兼容性测试。根据埋点数据得到使用众数,再着重测试。
- 屏幕分辨率:以 Android 为例,主流机型覆盖率 540p、960p、720p、1080p 等。如果代码没有对不同的分辨率做适配处理,可能会出现错位、遮挡、留白、拉伸和模糊等各种问题。
- Android CPU 架构类型:目前常见的类型可能是 arm64-v8a,但是我们也要考虑 armv7 的兼容性,因为我们之前就遇到过在 armv7 设备上应用不可用问题。
- 可以通过命令
adb shell getprop ro.product.cpu.abi
来查看 CPU 架构
- 可以通过命令
- 网络类型:一般情况下都是在 WI-FI 下测试,但是也要考虑 4G、5G 情况,还有网络之间的切换问题,因为我们之前就遇到过从WI-FI切换到4G应用卡死的问题。
- 不同厂商的 ROM:这一点是书中提到的,但是在工作中貌似很少关注这块。
- 浏览器兼容性问题:需要适配 Mac OS、Windows、移动端浏览器、当然还包括Safari、Chrome、火狐、QQ 浏览器、Edge 浏览器、微信内置浏览器、移动端自带浏览器等。
在兼容性测试方面书中的做法是:选择在少数主流设备上执行全量的用例,在其他兼容性范围内设备上覆盖主要功能的用例。书中还提到一个值得推荐的方法:为了更好地跟踪和了解进展,可通过一个表格的形式来维护不同功能点的兼容性测试情况。在bug管理方面,可以增加对应的选项,在测试人员提交bug的时候记录,以便后面进行统计和经验的总结。
弱网测试
小编主要是音视频测试,所以针对弱网测试是必不可少的。有一些问题是在复杂的网络情况下才会暴露,在测试中尽可能的模拟各种网络情况,这样可以及时发现和修复问题,从而提升用户体验。
针对iOS弱网测试可以采用手机自动的工具,可以参考这篇文章 : 软件测试之弱网测试工具
基于代理的弱网测试
推荐工具
-
Windows下的Network Delay Simulator(免费工具)
- 基本原理:安装时会添加一个新的网络驱动,进而控制网络状况。
-
Mac下的Network Link Conditioner
另外呢,可以在 Mac 中安装 Charles,以代理的形式连接电脑,在电脑中打开代理和弱网即可模拟移动端手机的弱网。
稳定性测试
之前我们的产品经常会出现各种崩溃问题,对于用户体验不是很好。所以这块就做了针对性的测试,比如反复加房离房、暴力测试、monkey 测试
等。针对 Monkey 的测试可以参考这篇文章:App之Monkey测试,如果应用出现了ANR问题,一般情况下都要给研发提供日志,所以日志的获取就尤为重要,具体的操作可以参考这篇文章:Android ANR日志获取
流量测试
在这部分作者详细介绍了流量的获取和常见的流量节省方法,因为小编所在公司的产品不会关注流量问题,所以有兴趣的小伙伴可以自行去查看。
常见的流量节省方法:
-
数据的压缩
-
缓存
-
不同数据格式的采用
比如采用 JSON格式作为接口数据返回格式通常比XML格式小。
-
控制访问的频次
这里是引用主要是针对后台数据上报,push消息检查等定时机制。
-
只获取必要的数据
这里是引用就是用户浏览到哪里,当前数据才会被自动加载。
-
针对不同网络类型设计不同的访问策略
主要是用户对于在移动网络下 流量消息比较敏感,而在Wi-Fi下无所谓的现象,可以通过不同的策略来控制,通过判断当前的网络状况,控制访问的频率、预加载策略和图片等质量等。就比如我们平时手机上有Wi-Fi下自动加载或者自动下载等功能。
安全测试
可能需要考虑以下几点,有兴趣的小伙伴可以详细看下书籍,因为小编在工作中尚未接触过安全测试,所以暂时没有发言权。
- 能否反编译代码
- 安装包是否签名
- 完整性校验
- 权限设置检查及权限测试
- 敏感信息测试
- 账户安全
- 数据通信安全
- 服务端接口测试
- 软键盘劫持:如果用户安装了第三方软键盘,那么当用户使用第三方软键盘输入一些敏感信息时,输入的内容就能被第三方软键盘截获,如果第三方软件包含恶意代码,可能会引起用户数据被盗取的风险。(比如我们在手机上输入银行卡密码时,系统会自动切到内置软键盘。)
在本篇文章中因为小编的工作性质,所以着重分享了兼容性、稳定性和弱网测试方面的内容。这里所分享的专项测试并不全面,具体的测试情况还需要根据产品的特性展开测试,还有很多的测试技术和方法值得去探索,加油吧小伙伴们。