移动应用专项测试的思路和方法

对于移动应用,顺利完成所有业务功能测试每每是不够的。若是你的关注点只是业务功能测试,那么, 当你的移动应用被大量用户安装和使用时,就会暴露出不少以前彻底没有预料到的问题,好比:
流量使用过多;shell

耗电量过大; 缓存

在某些设备终端上出现崩溃或者闪退的现象;安全

多个移动应用相互切换后,行为异常; 微信

在某些设备终端上没法顺利安装或卸载;网络

弱网络环境下,没法正常使用; tcp

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安装完成后首次启动耗费的流量; App安装包自己的大小; App内购买或者升级须要的流量。
流量测试,每每借助于Android和iOS自带的工具进行流量统计,也能够利 用tcpdump、Wireshark和Fiddler等网络分析工具。
对于Android系统,网络流量信息一般存储在/proc/net/dev目录下,也能够直接利用ADB工具获取实时 的流量信息。另外,我还推荐一款Android的轻量级性能监控小工具Emmagee,相似于Windows系统 性能监视器,可以实时显示App运行过程当中CPU、内存和流量等信息。
对于iOS系统,可使用Xcode自带的性能分析工具集中的Network Activity,分析具体的流量使用情 况。
可是,流量测试的最终目的,并非获得App的流量数据,而是要想办法减小App产生的流量。虽然, 减小App消耗的流量不是测试工程师的工做,但了解一些经常使用的方法,也将有助于你的测试平常工做:
启用数据压缩,尤为是图片; 使用优化的数据格式,好比一样信息量的JSON文件就要比XML文件小; 遇到既须要加密又须要压缩的场景,必定是先压缩再加密; 减小单次GUI操做触发的后台调用数量; 每次回传数据尽量只包括必要的数据; 启用客户端的缓存机制; 


第四,耗电量测试

耗电量也是一个移动应用可否成功的关键因素之一。
在目前的生态环境下,能提供相似服务或者功能的App每每有不少,若是在功能相似的状况下,你 的App特别耗电、让设备发热比较严重,那么你的用户必定会卸载你的App而改用其余App。最典型的 就是地图等导航类的应用,对耗电量特别敏感。
耗电量测试一般从三个方面来考量:
App运行但没有执行业务操做时的耗电量; App运行且密集执行业务操做时的耗电量; App后台运行的耗电量。
耗电量检测既有基于硬件的方法,也有基于软件的方法。我所经历过的项目都是采用软件的方 法,Android和iOS都有各自本身的方法:
Android经过adb命令“adb shell dumpsys battery”来获取应用的耗电量信息; iOS经过Apple的官方工具Sysdiagnose来收集耗电量信息,而后,能够进一步经过Instrument工具链 中的Energy Diagnostics进行耗电量分析。


第五,弱网络测试


与传统桌面应用不一样,移动应用的网络环境比较多样,并且常常出现须要在不一样网络之间切换的场景, 即便是在同一网络环境下,也会出现网络链接状态时好时坏的状况,好比时高时低的延迟、常常丢包、 频繁断线,在乘坐地铁、穿越隧道,和地下车库的场景下常常会发生。
因此,移动应用的测试须要保证在复杂网络环境下的质量。具体的作法就是:在测试阶段,模拟这些网 络环境,在App发布前尽量多地发现并修复问题。
在这里,我推荐一款很是棒的开源移动网络测试工具:Facebook的Augmented Traffc Control(ATC )。
ATC 最好用的地方在于,它可以在移动终端设备上经过Web界面随时切换不一样的网络环境,同时多个移 动终端设备能够链接到同一个Wif,各自模拟不一样的网络环境,相互之间不会有任何影响。也就是说, 只要搭建一套ATC 就能知足你全部的网络模拟需求。
若是你对ATC 感兴趣,能够在它的官方网站找到详细的使用说明。


第六,边界测试

边界测试是指,移动App在一些临界状态下的行为功能的验证测试,基本思路是须要找出各类潜在的临 界场景,并对每一类临界场景作验证和测试。 主要的场景有:系统内存占用大于90%的场景; 系统存储占用大于95%的场景; 飞行模式来回切换的场景; App不具备某些系统访问权限的场景,好比App因为隐私设置不能访问相册或者通信录等; 长时间使用App,系统资源是否有异常,好比内存泄漏、过多的连接数等; 出现ANR的场景; 操做系统时间早于或者晚于标准时间的场景; 时区切换的场景;

相关文章
相关标签/搜索