移动应用测试方法与思路


# 移动应用测试方法与思路

# 三类移动应用的特点

常见三类移动端应用:

  • Web App
  • Native App
  • Hybrid App

# Web App:

概念:移动端的Web浏览器

主要技术

  • HTML、JavaScript、CSS 等 Web 技术栈

  • Web App 所访问的页面内容都是放在服务器端的,本质上就是 Web 网页,所以是跨平台的

# Native App

指的是移动端的原生应用,Android 是 apk,iOS 是 ipa

Native App 可以提供比较好的用户体验以及性能,而且可以方便地操作手机本地资源

# Hybrid App

在原生移动应用中嵌入了 Webview,然后通过该 Webview 来访问网页,利用了 Web App 和 Native App 的优点

优点

  • Hybrid App 维护更新简单
  • 用户体验优异
  • 较好的跨平台特性

# 三类不同移动应用的测试方法

# Web App

本质:Web 浏览器的测试 ,所有的 GUI 测试都适用

# Native App

数据驱动、页面对象以及业务流程封装的思想依旧适用,可以把这些方法应用到测试用例设计中

# Hybrid App

  • 对 Native Container 的测试,可能需要用到 XCUITest 或者 UiAutomator2 这样的原生测试框架
  • 对 Container中HTML5 的测试,基本和传统的网页测试没区别,原本基于 GUI 的测试思想和方法都能适用

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

6 个主要专项:

  • 交叉事件测试
  • 兼容性测试
  • 流量测试
  • 电量测试
  • 弱网络测试
  • 边界测试

# 交叉事件(中断事件)

概述:App 执行过程中,有其他事件或者应用中断当前应用执行的测试

比如:App 在前台运行过程中,突然有电话打进来,或者收到短信

测试方式:手工测试 ,且是在真机上进行,不使用模拟器

覆盖的一些主要场景

  • 多个 App 同时在后台运行,并交替切换至前台是否影响正常功能
  • 要求相同系统资源的多个 App 前后台交替切换是否影响正常功能
    比如两个 App 都需要播放音乐,那么两者在交替切换的过程中,播放音乐功能是否正常;
  • App 运行时接听电话
  • App 运行时接收信息
  • App 运行时提示系统升级
  • App 运行时发生系统闹钟事件
  • App 运行时进入低电量模式
  • App 运行时第三方安全软件弹出告警
  • App 运行时发生网络切换
    比如由 Wifi 切换到移动 4G 网络,或者从 4G 网络切换到 3G 网络等

# 兼容性测试

App 在各种终端设备、各种操作系统版本、各种屏幕分辨率、各种网络环境下,功能的正确性

覆盖的一些测试场景

  • 不同操作系统的兼容性,包括主流的 Andoird 和 iOS 版本
  • 主流的设备分辨率下的兼容性
  • 主流移动终端机型的兼容性
  • 同一操作系统中,不同语言设置时的兼容性
  • 不同网络连接下的兼容性,比如 Wifi、GPRS、EDGE、CDMA200 等
  • 在单一设备上,与主流热门 App 的兼容性,比如微信、抖音、淘宝等

云测平台: 国外最知名的是 SauceLab,国内主流的是 Testin

# 流量测试

包含内容

  • App 执行业务操作引起的流量
  • App 在后台运行时的消耗流量
  • App 安装完成后首次启动耗费的流量
  • App 安装包本身的大小
  • App 内购买或者升级需要的流量

目的: 想办法减少 App 产生的流量

测试方法

  • 借助于 Android 和 iOS 自带的工具进行流量统计
  • 可利用 tcpdump、Wireshark 和 fiddler 等网络分析工具

测试工具

  • Android
    网络流量信息通常存储在 /proc/net/dev 目录下,也可以直接利用 ADB 工具获取实时的流量信息 性能监控小工具 Emmagee,实时显示 App 运行过程中 CPU、内存和流量等信息

  • iOS
    使用 Xcode 自带的性能分析工具集中的 Network Activity

减少 App 消耗的流量常用方法

  • 启用数据压缩,尤其是图片
  • 使用优化的数据格式,比如同样信息量的 JSON 文件就要比 XML 文件小
  • 遇到既需要加密又需要压缩的场景,一定是先压缩再加密
  • 减少单次 GUI 操作触发的后台调用数量
  • 每次回传数据尽可能只包括必要的数据
  • 启用客户端的缓存机制

# 耗电量测试

三个方面考量

  • App 运行但没有执行业务操作时的耗电量
  • App 运行且密集执行业务操作时的耗电量
  • App 后台运行的耗电量

测试方法

  • Android 通过 adb 命令 adb shell dumpsys battery 来获取应用的耗电量信息
  • iOS 通过 Apple 的官方工具 Sysdiagnose 来收集耗电量信息,通过 Instrument 工具链中的 Energy Diagnostics 进行耗电量分析

# 弱网络测试

概述:移动应用的网络环境比较多样,而且经常出现需要在不同网络之间切换的场景

目的:保证在复杂网络环境下的质量

做法:模拟这些网络环境

测试工具:Facebook 的 Augmented Traffic Control(ATC),能够在移动终端设备上通过 Web 界面随时切换不同的网络环境,同时多个移动终端设备可以连接到同一个 Wifi,各自模拟不同的网络环境,相互之间不会有任何影响

# 边界测试

概述:App 在一些临界状态下的行为功能的验证测试

基本思路:找出各种潜在的临界场景,并对每一类临界场景做验证和测试

主要场景

  • 系统内存占用大于 90% 的场景
  • 系统存储占用大于 95% 的场景
  • 飞行模式来回切换的场景
  • App 不具有某些系统访问权限的场景,比如,App 由于隐私设置不能访问相册或者通讯录等
  • 长时间使用 App,系统资源是否有异常,比如内存泄漏、过多的链接数等
  • 出现 ANR 的场景
  • 操作系统时间早于或者晚于标准时间的场景
  • 时区切换的场景

(完)