应用如何测试App 应用测试方法以及测试思路( 三 )


3. 流量测试
由于 App 经常需要在移动互联网环境下运行,而移动互联网通常按照实际使用流量计费,所以如果你的App耗费的流量过多,第一会导致用户流量费用增加,第二会会导致功能加载缓慢 。
流量测试,通常包含以下几个方面的内容:
1.App 执行业务操作引起的流量;
2.App 在后台运行时的消耗流量;
3.App 安装完成后首次启动耗费的流量;
4.App 安装包本身的大小;
5.App 内购买或者升级需要的流量;

流量测试,往往借助于 Android 和 iOS 自带的工具进行流量统计,也可以利用 tcpdump、Wireshark 和 Fiddler 等网络分析工具 。
对于 Android 系统,网络流量信息通常存储在/proc/net/dev目录下,也可以直接利用 ADB工具获取实时的流量信息 。Android的轻量级性能监控小工具Emmagee,类似于 Windows 系统性能监视器,能够实时显示App运行过程中CPU、内存和流量等信息 。
对于 iOS 系统,可以使用 Xcode 自带的性能分析工具集中的 Network Activity,分析具体的流量使用情况 。
但是,流量测试的最终目的,并不是得到 App 的流量数据,而是要想办法减少 App 产生的流量 。减少App消耗的流量不是测试工程师的工作,但了解一些常用的方法,也将有助于你的测试日常工作:
1.启用数据压缩,尤其是图片;
2.使用优化的数据格式,比如同样信息量的 JSON 文件就要比 XML 文件小;
3.遇到既需要加密又需要压缩的场景,一定是先压缩再加密;
4.减少单次 GUI 操作触发的后台调用数量;
5.每次回传数据尽可能只包括必要的数据;
6.启用客户端的缓存机制;

4. 耗电量测试
耗电量也是一个移动应用能否成功的关键因素之一 。在目前的生态环境下,能提供类似服务或者功能的 App往往有很多,如果在功能类似的情况下,App特别耗电、让设备发热比较严重,那么你的用户一定会卸载你的 App 而改用其他 App 。最典型的就是地图等导航类的应用,对耗电量特别敏感 。
耗电量测试通常从三个方面来考量:

  • App 运行但没有执行业务操作时的耗电量;
  • App 运行且密集执行业务操作时的耗电量;
  • App 后台运行的耗电量;
耗电量检测既有基于硬件的方法,也有基于软件的方法 。我所经历过的项目都是采用软件的方法,Android 和 iOS 都有各自自己的方法:Android 通过 adb 命令“adb shell dumpsys battery”来获取应用的耗电量信息耗电测试中,Google推出的history batterian工具很好分析耗电情况;
iOS 通过 Apple 的官方工具 Sysdiagnose 来收集耗电量信息,然后,可以进一步通过Instrument 工具链中的 Energy Diagnostics 进行耗电量分析 。
5. 弱网络测试
与传统桌面应用不同,移动应用的网络环境比较多样,而且经常出现需要在不同网络之间切换的场景,即使是在同一网络环境下,也会出现网络连接状态时好时坏的情况,比如时高时低的延迟、经常丢包、频繁断线,在乘坐地铁、穿越隧道,和地下车库的场景下经常会发生 。
所以,移动应用的测试需要保证在复杂网络环境下的质量 。在测试阶段,模拟这些网络环境,在 App 发布前尽可能多地发现并修复问题 。推荐开源移动网络测试工具:FacebookAugmented TrafficControl(ATC) 。
ATC 最好用的地方在于,它能够在移动终端设备上通过Web界面随时切换不同的网络环境,同时多个移动终端设备可以连接到同一个Wifi,各自模拟不同的网络环境,相互之间不会有任何影响 。也就是说,只要搭建一套ATC就能满足你所有的网络模拟需求 。
6. 边界测试
边界测试是指,移动 App在一些临界状态下的行为功能的验证测试,基本思路是需要找出各种潜在的临界场景,并对每一类临界场景做验证和测试 。
主要的场景有:
1)系统内存占用大于 90% 的场景;
2)系统存储占用大于 95% 的场景;
3)飞行模式来回切换的场景;
4)App不具有某些系统访问权限的场景,比如App由于隐私设置不能访问相册或者通讯录等;
5)长时间使用 App,系统资源是否有异常,比如内存泄漏、过多的链接数等;
6)出现 ANR 的场景;
7)操作系统时间早于或者晚于标准时间的场景;
8)时区切换的场景;

耗电量测试,流量测试,以及app性能测试,如何界定数据是否正常?例如流量消耗是到哪个值觉得有优化空间,内存CPU到哪个值不正常需要优化
其实并没有明确的标准,主要基于一些历史统计数据,主要的做法是和现有版本,以及同类app做比较 。

推荐阅读