在之前的文章简单介绍了移动端应用类型及特点https://blog.csdn.net/dou_being/article/details/119304770,这篇文章主要介绍Web  App、Native App 和 Hybrid App三类不同移动应用的测试方法以及移动应用专项测试的思路和方法:

一、Web  App、Native App 和 Hybrid App三类不同移动应用的测试方法

1、Web  App测试:其本质就是 Web 浏览器的测试,测试方法基本上同Web浏览器测试

2、Native App测试:不同的平台会使用不同的自动化测试方案,比如,iOS 一般采用 XCUITest Driver,而 Android 一般采用 UiAutomator2 或者 Espresso 等。但是数据驱动、页面对象以及业务流程封装的思想是相通的,可以把这些方法应用到测试用例设计中

3、Hybrid App 测试:对 Native Container 的测试,可能需要用到 XCUITest 或者 UiAutomator2 这样的原生测试框架,而对 Container 中 HTML5 的测试,基本和传统的网页测试没什么区别,所以原本基于 GUI 的测试思想和方法都能继续适用。

注意:Native Container 和 Webview 分别属于两个不同的上下文(Context),Native Container 默认的 Context 为“NATIVE APP",而 Webview 默认的 Context 为“WEBVIEW_+ 被测进程名称”

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

1.移动应用专项测试最主要的有:交叉事件测试、兼容性测试、流量测试、耗电量测试、弱网络测试、边界测试

2.交叉事件测试:

(1)交叉事件测试也叫中断测试,是指 App 执行过程中,有其他事件或者应用中断当前应用执行的测试。比如,App 在前台运行过程中,突然有电话打进来,或者收到短信,再或者是系统闹钟等等情况。

(2)交叉事件测试,需要覆盖的场景主要包括:

  • App 运行时接听电话

  • App 运行时接收信息

  • App 运行时提示系统升级

  • App 运行时发生系统闹钟事件

  • App 运行时进入低电量模式

  • App 运行时第三方安全软件弹出告警

  • App 运行时发生网络切换,比如,由 Wifi 切换到移动 4G 网络,或者从 4G 网络切换到 3G 网络等

(3)此类测试目前基本还都是采用手工测试的方式,并且都是在真机上进行,不会使用模拟器。

3.兼容性测试:

(1)容性测试顾名思义就是,要确保 App 在各种终端设备、各种操作系统版本、各种屏幕分辨率、各种网络环境下,功能的正确性。

(2)常见的App兼容性测试主要覆盖以下场景:

  • 不同操作系统的兼容性,包括主流的 Andoird 和 iOS 版本

  • 主流的设备分辨率下的兼容性

  • 主流移动终端机型的兼容性

  • 同一操作系统中,不同语言设置时的兼容性

  • 不同网络连接下的兼容性,比如 Wifi、GPRS、EDGE、CDMA200 等

  • 在单一设备上,与主流热门 App 的兼容性,比如微信、抖音、淘宝等

(3)兼容性测试,通常都需要在各种真机上执行相同或者类似的测试用例,所以往往采用自动化测试的手段。

4.流量测试:

(1)由于 App 经常需要在移动互联网环境下运行,而移动互联网通常按照实际使用流量计费,所以如果 App 耗费的流量过多,那么一定不会很受欢迎

(2)流量测试通常包含以下几方面的内容:

  • App 执行业务操作引起的流量

  • App 在后台运行时的消耗流量

  • App 安装完成后首次启动耗费的流量

  • App 安装包本身的大小

  • App 内购买或者升级需要的流量

(3)流量测试,往往借助于 Android 和 iOS 自带的工具进行流量统计,也可以利用 tcpdump、Wireshark 、 Fiddler 和Charles等网络分析工具

(4)对于 Android 系统,网络流量信息通常存储在 /proc/net/dev 目录下,也可以直接利用 ADB 工具获取实时的流量信息

(5)对于 iOS 系统,可以使用 Xcode 自带的性能分析工具集中的 Network Activity,分析具体的流量使用情况

(6)减少app消耗流量的一些常用方法:

  • 启用数据压缩,尤其是图片

  • 使用优化的数据格式,比如同样信息量的 JSON 文件就要比 XML 文件小

  • 遇到既需要加密又需要压缩的场景,一定是先压缩再加密

  • 减少单次 GUI 操作触发的后台调用数量

  • 每次回传数据尽可能只包括必要的数据

  • 启用客户端的缓存机制

5.耗电量测试:

(1)耗电量测试主要从3个方面来考量:

  • App 运行但没有执行业务操作时的耗电量

  • App 运行且密集执行业务操作时的耗电量

  • App 后台运行的耗电量

(2)耗电量检测方法:

  • Android 通过 adb 命令“adb shell dumpsys battery”来获取应用的耗电量信息

  • iOS 通过 Apple 的官方工具 Sysdiagnose 来收集耗电量信息,然后,可以进一步通过 Instrument 工具链中的 Energy Diagnostics 进行耗电量分析

6.弱网测试:

(1)移动应用的测试需要保证在复杂网络环境下的质量。具体的做法就是:在测试阶段,模拟这些网络环境,在 App 发布前尽可能多地发现并修复问题

7.边界测试:

(1)边界测试是指,移动 App 在一些临界状态下的行为功能的验证测试,基本思路是需要找出各种潜在的临界场景,并对每一类临界场景做验证和测试

(2)主要场景:

  • 系统内存占用大于 90%

  • 系统存储占用大于 95%

  • 飞行模式来回切换

  • App 不具有某些系统访问权限的场景,比如 App 由于隐私设置不能访问相册或者通讯录等

  • 长时间使用 App,系统资源是否有异常,比如内存泄漏、过多的链接数等

  • 出现 ANR 的场景

  • 操作系统时间早于或者晚于标准时间

  • 时区切换的场景

欢迎关注公众号:

移动应用专项测试思路和方法相关推荐

  1. 【软件测试工程师】App 应用测试方法以及测试思路

    分析三种主流的移动 App 类型,并给出和普通web测试不同的地方,给出测试的思路,并给出部分场景组合. 移动端测试还是 PC 端测试,业务测试其实都属于 GUI 测试的范畴,所以基本的测试思路,比如 ...

  2. App 应用测试方法以及测试思路……

    分析三种主流的移动 App 类型,并给出和普通web测试不同的地方,给出测试的思路,并给出部分场景组合. 移动端测试还是 PC 端测试,业务测试其实都属于 GUI 测试的范畴,所以基本的测试思路,比如 ...

  3. App 应用测试方法以及测试思路

    分析三种主流的移动 App 类型,并给出和普通web测试不同的地方,给出测试的思路,并给出部分场景组合. 移动端测试还是 PC 端测试,业务测试其实都属于 GUI 测试的范畴,所以基本的测试思路,比如 ...

  4. 移动app应用测试方法与测试思路(德鲁)

    1 三种移动端产品类型的介绍 2 移动端应用的测试其自身特点,和其他传统测试又有一些独特 3 测试方法和思路. 4 5 移动端应用又可以进一步细分为三大类: 6 Web APP 指的是移动端的Web浏 ...

  5. Android测试solo,SoloPi支付宝开源的 Android 专项测试工具的介绍与快速上手

    SoloPi支付宝开源的 Android 专项测试工具的介绍与快速上手 SoloPi:支付宝开源的 Android 专项测试工具的介绍与快速上手 MTSC2019大会上,Soloπ算是一次正式的在公众 ...

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

    对于移动应用,顺利完成全部业务功能测试往往是不够的.如果你的关注点只是业务功能测试,那么, 当你的移动应用被大量用户安装和使用时,就会暴露出很多之前完全没有预料到的问题,比如: 流量使用过多: 耗电量 ...

  7. 简单学习kali高级渗透测试思路方法

    前言 KaliLinux面向专业的渗透测试和安全审计,集成了大量精心挑选的安全检测工具.Kali Linux高级渗透测试在KaliLinux平台上从一个攻击者的角度来审视网络框架,详细介绍了攻击者&q ...

  8. 渗透测试-靶机打靶思路与方法

    渗透测试-靶机打靶思路与方法 文章目录 渗透测试-靶机打靶思路与方法 一.对靶机进行信息收集 1.首先对目标存活靶机发起嗅探: 2.对目标主机开放端口及服务发起探测 3.对非web端口的服务发起迅速的 ...

  9. 【测试】编写测试用例的思路和方法

    文章目录 1)什么是测试用例? 1.1 测试用例的定义 测试用例的内容: *为什么需要测试用例? 测试用例的作用: 1.2 测试用例的元素 测试目标(Why): 测试对象(What): 测试环境(Wh ...

最新文章

  1. 腾讯云CMQ消息队列在Windows环境下的使用
  2. 我来告诉你考研还是找工作!
  3. spring中的依赖注入——构造函数注入、set方法注入( 更常用的方式)、复杂类型的注入/集合类型的注入
  4. qt5.5 静态编译 mysql_QT5.3.2+mingw静态编译(生成exe大约14M)
  5. Oracle修改表结构字段名和字段长度
  6. UI实用素材模板|天气应用app的ui设计
  7. Linux 中断所有知识点
  8. 【003】【深入解析Java中volatile关键字的作用】
  9. 中国食品安全检测市场专项调研及投资前景预测报告2022-2027年
  10. 比CAM350好用的工具-DFM工具下载,PCB被板厂做坏了,谁的锅?
  11. JavaEE下宠物领养网站的设计与实现
  12. 425_PICkit2烧写PIC18F4580 MCU
  13. 苹果系统简易音乐播放器
  14. 外汇短线交易者的规则
  15. CornerNet,CenterNet关键代码解读: kp,_decode,left pooling
  16. 软件测试中常用的简称
  17. oracle 11g新的后台进程
  18. wince挂起和唤醒_relayon
  19. 我在深圳这10年,历经的房价和我买房的故事
  20. 特征工程——缺失值显示和填充(集中趋势(众数、平均数、中位数)、缺失值矩阵图、条形图、集中趋势填充)

热门文章

  1. linux-shell数据重定向详细分析
  2. Maven详解之聚合与继承
  3. 【推荐】iOS汉字转拼音第三方库
  4. 互联网创业如何与传统行业人士合作?
  5. Android--使用AIDL和远程服务实现线程通信
  6. SSH配置优化和慢的解决方法
  7. 微信-js sdk invalid signature签名错误 问题解决
  8. python cmd 窗口 中文乱码 解决方法 (附:打印不同颜色)
  9. CSS——清除浮动的六种解决方案
  10. Android webview 写入cookie的解决方法以及一些属性设置