20 与时俱进:浅谈移动应用测试方法与思路

news2024/9/27 7:17:42

移动端应用可以细分为三大类:Web App、Native App 和 Hybrid App

  • Web App 指的是移动端的 Web 浏览器。
  • Native App 指的是移动端的原生应用, 对于 Android 是 apk,对于 iOS 就是 ipa。
  • Hybrid App(俗称:混血应用),是介于 Web App 和 Native App 两者之间的一种 App 形式。

       Hybrid App 通过一个原生实现的 Native Container 展示 HTML5 的页面。更通俗的讲法可以归结为,在原生移动应用中嵌入了 Webview,然后通过该 Webview 来访问网页。

 自适应网页设计

        自适应网页设计(Responsive Web Design)是指,同一个网页能够自动识别屏幕分辨率、并做出相应调整的网页设计技术。

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

除了功能测试外,还需要进行专项测试

1)交叉事件测试也叫中断测试,是指 App 执行过程中,有其他事件或者应用中断当前应用执行的测试。

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

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

2) 兼容性测试,要确保 App 在各种终端设备、各种操作系统版本、各种屏幕分辨率、各种网络环境下,功能的正确性。

        常见的 App 兼容性测试往往需要覆盖以下的测试场景:

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

        兼容性测试,通常都需要在各种真机上执行相同或者类似的测试用例,所以往往采用自动化测试的手段。大公司会基于 Appium + Selenium Grid + OpenSTF 去搭建自己的移动设备私有云平台。其他公司一般用第三方的移动设备云测平台,国外最知名的是 SauceLab,国内主流的是 Testin。

3)流量测试

        流量测试,通常包含以下几个方面的内容:

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

        流量测试,往往借助于 Android 和 iOS 自带的工具进行流量统计,也可以利用 tcpdump、Wireshark 和 Fiddler 等网络分析工具。对于 Android 系统,网络流量信息通常存储在 /proc/net/dev 目录下,也可以直接利用 ADB 工具获取实时的流量信息。对于 iOS 系统,可以使用 Xcode 自带的性能分析工具集中的 Network Activity,分析具体的流量使用情况。

        减少APP消耗流量的常用的方法:

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

4)耗电量测试

        耗电量测试通常从三个方面来考量:

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

5)弱网测试

        开源移动网络测试工具:Facebook 的 Augmented Traffic Control(ATC)。

        ATC 最好用的地方在于,它能够在移动终端设备上通过 Web 界面随时切换不同的网络环境,同时多个移动终端设备可以连接到同一个 Wifi,各自模拟不同的网络环境,相互之间不会有任何影响。也就是说,只要搭建一套 ATC 就能满足你所有的网络模拟需求。

6)边界测试

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

        主要的场景有:

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

补充测试点:

  • 安装、卸载、升级测试
  • 兼容性测试:对外分为硬件/软件,对内相对于其他app
  • 性能测试:服务端的性能、app本身的性能测试
  • 稳定性测试
  • 安全性测试:权限、扣费、敏感信息、第三方工具、服务器安全
  • 易用性测试:操作性、菜单设计符合使用习惯、单手操作、UI界面测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907319.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MeterSphere开源项目GitHub Star数量超过10000!

截至2023年8月21日11:00,MeterSphere一站式开源持续测试平台GitHub Star数超过10000个!继JumpServer、DataEase、Halo之后,MeterSphere成为FIT2CLOUD飞致云旗下第四个GitHub Star数量超过10000个的开源项目。

如何提升城市空气质量?一招教会你

空气质量监控,作为保障人类健康和维护环境可持续的关键手段,在现代社会发挥着重要作用。通过实时监测、数据采集和分析,我们能够深入了解空气中各种污染物的浓度以及气象参数的变化,从而评估空气质量的状况。 空气质量监控通过科学…

浅析Python爬虫ip程序延迟和吞吐量影响因素

作为一名资深的爬虫程序员,今天我们很有必要来聊聊Python爬虫ip程序的延迟和吞吐量,这是影响我们爬取效率的重要因素。这里我们会提供一些实用的解决方案,让你的爬虫程序飞起来! 网络延迟 首先,让我们来看看网络延迟对…

office open xml

微信在线文档下载本地word,XXX.docx,打不开

管家婆中了mallox勒索病毒该怎么办?勒索病毒解密数据恢复

管家婆是很多中小企业使用的财务软件,它的性价比高、操作简单,适用行业也非常广。这也是它能够赢得众多中小企业主欢迎的原因之一。俗话说的好,木秀于林风必摧之,正是因为管家婆有着非常庞大的使用群体,所以它才成为了…

33.@RequestMapping注解

RequestMapping注解 从注解名称代表RequestMapping注解的作用就是将请求和处理请求的控制器方法关联起来,建立映射关系。SpringMVC 接收到指定的请求,就会来找到在映射关系中对应的控制器方法来处理这个请求 注解位置 RequestMapping标识一个类&#xf…

SpringCloud全家通新人入门手册

一、架构图 二、springCloud全家桶组件库 三、Spring Cloud 实战项目全景规划 四、技术选型 第一阶段:搭建基础的微服务功能,实现微服务之间的通信; 1、服务治理:服务治理的重点是搭建基础的跨服务调用功能。我会把用户服务、优…

2023年国赛数学建模思路 - 案例:退火算法

文章目录 1 退火算法原理1.1 物理背景1.2 背后的数学模型 2 退火算法实现2.1 算法流程2.2算法实现 建模资料 ## 0 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 1 退火算法原理 1.1 物理背景 在热力学上&a…

让你专注于工作的电脑桌面日程提醒软件

在现代职场中,上班族们常常在繁忙的工作中会遇到各种各样的事情干扰。比如,当我们专注于完成重要的报告时,却又有同事来询问问题;在准备去会议事项时,手机却突然收到了一系列的短信和通知。这些干扰不仅浪费了我们的时…

Linux 内存管理 pt.1

今天我们来学习一下 Linux 操作系统核心之一:内存 跟 CPU 一样,内存也是操作系统最核心的功能之一,内存主要用来存储系统和程序的指令、数据、缓存等 关于内存的学习,我会尽量以通俗易懂的方式且分成多篇文章去讲解 那么今天在 pt…

电商商家花式整活,真蚌不住了

这年头,大数据永远比你自己更懂你,每个人手机里面的各种应用仿佛都是为自己量身定做的一般,总会准时准点推送你喜欢的内容。 我只是跟同事抱怨了一句“夏天太阳好晒”,转头淘宝就给我推防晒衣猜我喜欢?猜得很准&#…

echarts 饼图 值为0时页面显示undefined%的解决方案

当饼图的数据为0时,页面会出现 undefined% 的情况 值为0的数据: pieData: [{name: 分类一,value: 0,},{name: 分类二,value: 0,}, ], //饼图数据 页面显示为undefined% 我们可以通过 label 的 formatter 来进行自定义调整,具体点就是在 fo…

cesium学习记录08-鼠标绘制实体(点,线,矩形,圆,多边形)

上一篇学习了创建实体的一些基础知识,但有时还需要我们使用鼠标进行手动绘制,这一篇就来进行鼠标绘制实体的实现(点,线,矩形,圆,多边形)。 一、鼠标事件 既然是鼠标绘制&#xff…

Work Experience

上班工作体验感测算,纯属娱乐 这b班上的值不值测算版(1).xlsx https://download.csdn.net/download/spencer_tseng/88237617

Python开发环境(Visual Studio Code、Anaconda、PyInstaller、Enigma Virtual Box)

Python开发环境 [Anaconda、PyInstaller、Enigma Virtual Box] AnacondaAnaconda安装搭建Python环境Anaconda命令 Visual Studio CodeVisual Studio Code中Python设置Visual Studio Code中使用Qt Designer Python打包发布.exe可执行文件PyinstallerEnigma Virtual Box Anaconda…

Const的区别 学习笔记

C程序设计之const八大用法_哔哩哔哩_bilibili const优先修饰const左边,若左边没有东西,则修饰右边的东西 前两个a,b不是指针由于修饰的是int,是类型,所以a和b的值不能改变 c的类型的指针,const修饰的是int&#xff0…

Apinto 网关进阶教程,插件开发入门指南

Apinto 是基于Go语言,由 Eolink 自主研发的一款高性能、可扩展、易维护的云原生 API 网关。Apinto 能够帮助用户简单、快速、低成本、低风险地实现:系统微服务化、系统集成、向合作伙伴、开发者开放功能和数据。 通过 Apinto,企业能够专注于…

天锐绿盾加密软件——「文件数据防泄密系统」

文件加密功能 采用透明加解密技术, 企业内部文件自动加密,内部正常使用,不改变使用习惯。加密后的文件未经许可,私自外发拷贝到公司以外,都将显示为乱码无法使用,从源头上保障核心数据安全。 产品跨平台支持…

Vulhub之sick0s篇

靶场 靶机wp:【网络安全】sick0s 靶场实践之getshell - 知乎 靶机地址:https://download.vulnhub.com/sickos/sick0s1.1.7z 环境搭建 将虚拟机网络配置为nat与kali同一网络模式 kali扫描同一网段内存活的ip 访问目标端口web服务 3128端口是squid代理…

Python Pandas 处理Excel数据 制图

目录 1、饼状图 2、条形统计图 1、饼状图 import pandas as pd import matplotlib.pyplot as plt import numpy as np #from matplotlib.ticker import MaxNLocator # 解决中文乱码 plt.rcParams[font.sans-serif][SimHei] plt.rcParams[font.sans-serif]Microsoft YaHei …