移动应用专项测试的思路和方法
对于移动应用,顺利完成全部业务功能测试往往是不够的。如果你的关注点只是业务功能测试,那么,当你的移动应用被大量用户安装和使用时,就会暴露出很多之前完全没有预料 到的问题,比如:
- 流量使用过多;
- 耗电量过大;
- 在某些设备终端上出现崩溃或者闪退的现象
- 多个移动应用相互切换后,行为异常
- 在某些设备终端上无法顺利安装或卸载
- 弱网络环境下,无法正常使用
- Android环境下,经常出现ANR(Application Not Responding)
叉事件测试、兼容性测试、流量测试、耗电量测试、弱网络测试、边界测试这6个最主要的专项测试
交叉事件测试
交叉事件测试也叫中断测试,是指App执行过程中,有其他事件或者应用中断当前应用执行的测试。
比如,App在前台运行过程中,突然有电话打进来,或者收到短信,再或者是系统闹钟等等情况。所以,在App测试时,就需要把这些常见的中断情况考虑在内,并进行相关的测试。
此类测试目前基本还都是采用手工测试的方式,并且都是在真机上进行,不会使用模拟器
首先,采用手工测试的原因是,此类测试往往场景多,而且很多事件很难通过自动化的方式来模拟,比如呼入电话、接收短信等,这些因素都会造成自动化测试的成本过高,得不偿
失,所以工程实践中,交叉事件测试往往全是基于手工的测试。 其次,之所以采用真机,是因为很多问题只会在真机上才能重现,采用模拟器测试没有意义。
交叉事件测试,需要覆盖的场景主要包括:
- 多个App同时在后台运行,并交替切换至前台是否影响正常功能;
- 要求相同系统资源的多个App前后台交替切换是否影响正常功能,比如两个App都需要播放音乐,那么两者在交替切换的过程中,播放音乐功能是否正常;
- App运行时接听电话;
- App运行时接收信息;
- App运行时提示系统升级;
- App运行时发生系统闹钟事件;
- App运行时进入低电量模式;
- App运行时第三方安全软件弹出告警;
- App运行时发生网络切换,比如,由Wif切换到移动4G网络,或者从4G网络切换到3G网络等;
这些需要覆盖的场景,也是我们今后测试的测试用例集,每一场景都是一个测试用例的集合
兼容性测试
兼容性测试顾名思义就是,要确保App在各种终端设备、各种操作系统版本、各种屏幕分辨率、各种网络环境下,功能的正确性。常见的App兼容性测试往往需要覆盖以下的测试场景:
- 不同操作系统的兼容性,包括主流的Andoird和iOS版本
- 主流的设备分辨率下的兼容性
- 主流移动终端机型的兼容性
- 同一操作系统中,不同语言设置时的兼容性
- 不同网络连接下的兼容性,比如Wif、GPRS、EDGE、CDMA200等
- 在单一设备上,与主流热门App的兼容性,比如微信、抖音、淘宝等
兼容性测试,通常都需要在各种真机上执行相同或者类似的测试用例,所以往往采用自动化测试的手段。 同时,由于需要覆盖大量的真实设备,除了大公司会基于Appium + Selenium Grid + OpenSTF去搭建自己的移动设备私有云平台外,其他公司一般都会使用第三方的移动设备云测平台完成兼容性测试
第三方的移动设备云测平台,国外最知名的是SauceLab,国内主流的是Testin
流量测试
流量测试,通常包含以下几个方面的内容
- App执行业务操作引起的流量
- App在后台运行时的消耗流量
- App安装完成后首次启动耗费的流量
- App安装包本身的大小
- App内购买或者升级需要的流量
流量测试,往往借助于Android和iOS自带的工具进行流量统计,也可以利用tcpdump、Wireshark和Fiddler等网络分析工具
减少App消耗的常用方法
- 启用数据压缩,尤其是图片
- 使用优化的数据格式,比如同样信息量的JSON文件就要比XML文件小
- 遇到既需要加密又需要压缩的场景,一定是先压缩再加密
- 减少单次GUI操作触发的后台调用数量
- 每次回传数据尽可能只包括必要的数据
- 启用客户端的缓存机制
耗电量测试
典型的就是地图等导航类的应用,对耗电量特别敏感
耗电量测试通常从三个方面来考量:
- App运行但没有执行业务操作时的耗电量
- App运行且密集执行业务操作时的耗电量
- App后台运行的耗电量
弱网络测试
移动应用的网络环境比较多样,而且经常出现需要在不同网络之间切换的场景,即使是在同一网络环境下,也会出现网络连接状态时好时坏的情况,比如时高 时低的延迟、经常丢包、频繁断线,在乘坐地铁、穿越隧道,和地下车库的场景下经常会发生
Facebook的Augmented Trafc Control(ATC)
边界测试
边界测试是指,移动App在一些临界状态下的行为功能的验证测试,基本思路是需要找出各种潜在的临界场景,并对每一类临界场景做验证和测试。 主要的场景有:
- 系统内存占用大于90%的场景
- 系统存储占用大于95%的场景
- 飞行模式来回切换的场景
- App不具有某些系统访问权限的场景,比如App由于隐私设置不能访问相册或者通讯录等
- 长时间使用App,系统资源是否有异常,比如内存泄漏、过多的链接数等
- 出现ANR的场景
- 操作系统时间早于或者晚于标准时间的场景
- 时区切换的场景
文章链接 https://fangzongzhou.github.io/2021/01/05/计算机/软件测试/移动专项测试/移动专项测试/