App的专项测试

news2024/11/25 2:40:27

文章目录

  • App的专项测试都从哪个方面测试
  • 安装和卸载
  • 版本升级
  • 消息推送
  • 弱网测试
  • 兼容性测试
  • 交互性测试

App的专项测试都从哪个方面测试

在APP测试过程中,除了功能测试外,还需要进行一些专项测试来发现更为深层的问题,这些问题主要是针对某个特殊方面进行,比如安装卸载升级测试、兼容性测试、弱网测试、中断测试、流量测试、耗电量测试等。

  • 安装和卸载
  • 版本升级
  • 消息推送
  • 弱网测试
  • 兼容性测试
  • 交互性测试

性能测试

  • cpu
  • 内存
  • 启动速度
  • 响应时间
  • 耗电量测试

安装和卸载

安装卸载升级:APP是客户端程序,客户端程序就需要提前进行安装才能使用,因此需要测试安装/卸载/升级操作。

安装测试其实需要覆盖的测试点也很多,并非简单的说常规状态下能够下载即可,既然是要进行测试就需要对客户在异常情况下能够接触到的所有情况进行验证。

所以安装测试的关注点可以从两个部分出发:

    正常场景:

                    在不同的操作系统版本上安装

                    从不同的安装渠道安装(APP商城/手机助手/直接下载apk或者ipa文件安装)

                    不同的安装路径(安装到手机上,安装到SD卡上)

    异常场景:

                    安装时出现异常(关机/断网),恢复后能否继续安装

                    安装时存储空间不够

                    安装时手动取消后再次安装

                    正在运行时覆盖安装高版本

                    卸载后安装

版本升级

强制升级

非强制升级

从临近版本升级

跨版本升级

不同渠道升级(应用商场/手机助手)

升级提醒成功(可不提醒/可以提示升级/强制升级/是否有红点)

应用内升级时非WIFI提醒

升级注意:要看是否升级前后改变了数据的结构,因为可能开发没有处理好会出现升级前后的数据没有正常导入变得混乱。

消息推送

push消息根据英文单词的意思就是推送,在这里也就是APP给你推送的各种消息。通常手机中“设置”-“通知”就是进行push消息的设置,因此需要进行push消息测试。

使用场景:

  • 产品角度:功能需要,如咨询类产品的新闻推送/工具类产品的公告推送/快递签收通知等,常见如百度,支付宝等
  • 运营角度:活动运营需要,如:电商类产品的促销活动,召回用户/提高活跃度等,常见如淘宝,京东

实现原理

有push就会对应有pull(客户端主动获取),当客户端固定时间主动向服务器获取信息,若有更新信息,则发送到客户端,这样的pull是基于短连接(凡是在一次消息交互(发请求-收响应)之后立刻断开连接的情况都称为短连接);那么push(客户端被动接受)在这里很显然就是当服务器有更新信息时,主动发送到客户端,push是基于长连接(也叫持久连接,在TCP层握手成功后,不立即断开连接,并在此连接的基础上进行多次消息(包括心跳)交互,直至连接的任意一方(客户端OR服务端)主动断开连接,此过程称为一次完整的长连接)。

需要频繁交互的场景使用长连接,如即时通信工具(微信/QQ,QQ也有UDP),相反则使用短连接,比如普通的web网站,只有当浏览器发起请求时才会建立连接,服务器返回相应后,连接立即断开。

push和pull对比的话,push方式会比pull方式更好;原因很简单,push方式在满足需求的情况下会更省资源,使用pull方式下客户端需不断监测服务器变化,更费客户端的资源如(CPU/网络流量/系统电量);所以,在APP项目中,基于手机电量与流量的考虑,使用的都是push方式进行消息推送,因此又叫push消息。

常见的推送服务器分类:

操作系统级别的消息推送服务器

  • IOS:APNs(Apple Push Notification service)

  • Android:C2DM(Cloud to Device Messaging)

第三方推送平台

  • 手机厂商类:小米推送/华为推送

  • 第三方平台类:友盟推送/极光推送/云巴(基于MQTT)

  • BAT大厂的平台推送:阿里云移动推送/腾讯信鸽推送/百度云推送

PUSH推送内容测试设置(产品经理关注角度):

  • APP服务器设置:推送内容/推送时机/推送频率/推送人群(全部用户/部分用户)

  • 手机端设置:是否接收通知,提醒位置等

弱网测试

手工测试

第三方软件

image.png

网络测试的一般流程:

step1:首先要考虑网络正常的情况

  • 各个模块的功能正常可用
  • 页面元素/数据显示正常

step2:其次要考虑无网络的情况

  • APP各个功能在无网络情况下是否可用
  • APP各个页面之间切换是否正常
  • 发送网络请求时是否会导致闪退、卡死等异常情况
  • APP各个页面是否显示完整美观,未刷新的页面是否做了相应的提示和处理
  • 在无网络情况下数据是否会丢失
  • 无网络提示信息是否友好

step3:再次考虑弱网情况

①弱网情况下APP是否针对请求做了超时处理

②络延迟的情况下,操作app进行数据同步、OTA升级是否会发生Crash、ANR等严重错误③ 弱

网情况下,APP请求回调未完成时,执行其他动作以及交互时,是否会出现APP闪退等异常。

④ 弱网情况下,原始数据是否出现丢失的情况(弱网下载时会出现丢包情况)

⑤ 弱网环境下,是否会出现请求堆积的情况

⑥ 弱网环境下,APP各个页面是否显示完整

⑦ 系统超时,提示信息是否清晰明确

⑧ 弱网情况下APP的响应时间是否在一个合理的时间范围内

⑨ 请求回调未完成–驾考科四难题攻克弹窗

⑩ 这个弹窗是服务器说了算,服务器知道该用户啥时候弹弹窗。若用户在做题页面时返回了,则该用户下次进入且在服务器缓存时间内,应该给出弹窗(产品逻辑:弹窗出现后用户必须看到才消失)

⑪ 请求堆积:水池注水排水问题

step4:最后考虑网络状态之间的转变

① 断开网络连接以后,操作APP各个功能是否正常

② 同步数据过程中,断开网络连接,APP是否出现异常情况

③ 传输数据过程中,网络由wifi切换到gprs,APP是否出现异常情况

④ 弱网环境下发送的请求是否在恢复网络以后出现重复提交的情况tips:gprs—就是咱们通常所说的流量

二、弱网测试小结

弱网测试作为健壮性测试的重要部分,对于移动端的测试来说必不可少。目前的网络并非完全的流畅WiFi,目前使用最多的是2G,3G,4G,5G,且使用场景多变,如近地铁,上公交,进电梯,进山区等弱网测试显得尤为重要。

总结:

1、弱网测试主要进行特殊网络状态下的功能测试,同时关注用户体验。

2、弱网测试主要包括弱网功能测试、无网状态测试、网络切换测试,用户体验等

三、弱网功能测试

① 这一部分主要是在各种非wifi网络环境下进行的功能测试,同时模拟高延时和高丢包的异常网络环境进行健壮性测试。

② 2G/3G/4G的网络可以通过使用电话卡移动/联通/电信等网络进行模拟,关注页面的响应时间、页面呈现是否完整一致等。

③ 高延迟和高丢包的网络环境需要借助工具来模拟,如Charles。

④ 弱网功能测试建议将整体的功能测试用例在弱网环境下进行一轮测试,相同模块下的功能可以分多个网络条件进行测试。这部分发现的问题可能会有:页面图片在弱网环境下加载不出来(图片加载逻辑需优化)需要模版的页面版式结构混乱(模版文件在弱网环境的加载需优化)页面响应时间较长没有任何显示(页面显示逻辑待优化、重试机制加入)

四、弱网UI测试

弱网情况下:APP很可能出现UI刷新不及时或者不刷新的情况,此时就可能会导致呈现在用户面前的是一个残缺的页面;偶会也会导致出现页面UI元素错乱的情况;

五、无网状态测试

无网状态测试则是在切换网络的情况下进行的测试,主要关注页面的显示与交互、本地数据的存储、断网功能的使用等,经常该部分也需要与网络切换部分协同进行。

断网情况下请求非本地数据的页面需要设定一定的时间等待上限,及时提示网络异常以及提示重试;

断网情况下请求部分本地数据的页面需要观察本地数据的部分是否加载显示正常,待请求的部分是否符合交互给的缺省样式一致;

断网情况下请求完全本地数据的页面是否显示正常。这里还需考虑本地数据存储的情况,有些需要联网后上报服务器的数据本地是否正确存储,联网后这些数据能否正常上报。

无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常。

六、网络切换测试

这部分主要是进行几个不同网络场景的切换,包括:

wifi-2G/3G/4G、wifi-无网、2G/3G/4G-wifi、2G/3G/4G-无网、无网-2G/3G/4G、无网-wifi

主要关注页面的显示与交互,尤其:弱网到wifi;wifi到弱网

以上两种情况验证是否会有页面的crash以及显示的错乱、session是否一致、请求堆积处理等。

七、用户体验关注

弱网测试的目的就是尽可能保证用户体验,测试点如下:

用户体验:以主现的消费者的角度去考虑我们的产品,以及产品的舒服度,友好感受程度。

(1)页面响应时间是否可接受,关注包括热启动、冷启动时间,页面切换,前后台切换。

(2)页面呈现是否完整一致

(3)超时文案是否符合定义,异常信息是否显示正常。

(4)是否会有超时重连

(5)大流量事件风险:是否会在弱网下进行更新apk包、下载文件等大流量动作。

兼容性测试

兼容性测试是指测试软件在特定的硬件平台上、不同的应用软件之间、不同的操作系统平台上、不同的网络等环境中是否能够很友好的运行的测试。–百度百科

为什么要做兼容性测试

目前碎片化十分严重,尤其是安卓设备。安卓设备碎片化、品牌碎片化,大家熟知的安卓品牌都有好多家,每家可能还有定制的系统,都给我们适配带来了不小的挑战。除了上面的碎片化,当然还有系统版本碎片化,屏幕碎片化等,为了给用户更好的用户体验,做APP的兼容性测试,还是非常有必要的。

1:手工测试

厂商的选择 --》热门的厂商 小米,华为,oppo,vivo

设备选择 -->android 可以根据市面上比较热销的机型,top 前几的手机型号 比如 小米12 红米k50

不同分辨率的选择 2560*1080

不同的屏幕大小选择 6.5 5.5 7

2:用第三方的软件进行测试

APP在不同的机型上由于软件/硬件等不同可能出现各种各样的问题,因此需要做兼容性测试

常见的兼容性测试有手机型号/系统版本/分辨率屏幕尺寸/网络/应用兼容性

手机型号:需要对市场上主流的机型进行覆盖(android:华为,苹果,三星小米,OPPO)需要考虑APP线上排名

系统版本:安卓系统:4.4/5.1/6.0/7.0,ios系统:9.x/10.x/11.x/12.x

分辨率:1080x1920/720x1280

屏幕尺寸:5.5/4.7

网络:3g/2g,4g,wifi…

应用兼容性:手机硬件/外部硬件/操作系统/其他APP

那么如何来执行兼容性测试,一般情况下公司会存在各种型号的手机可以使用真机来进行兼容性测试即可。但是,如果项目的用户量非常大,真机无法覆盖完全,这时候就可以找第三方的兼容性平台进行测试。如:

1、线上云测平台Testin云测

2、Wetest,与Antest类似,也是一个在线测试平台,其提供的功能也与Antest类似,值得一提的是,Wetest的兼容性测试是收费的,而且收费相对来说较高;

3、精灵云测,这个平台提供的功能与前两个在线测试工具提供的功能类似,但是这个平台提供的机型比较全面,但是这个平台也是收费的。

交互性测试

交互性测试也被叫做冲突测试或者干扰测试,这样从字面意思上来进行理解是不是比较好理解了。它指的是一个功能正在执行过程中,另外一个事件或者操作对该过程进行干扰的测试。例如:在APP前台发短信,接打电话等等。

常见的交叉事件测试点有:

手机开锁屏对运行中的 App的影响

APP运行时切换网络(4G/Wi-Fi)

运行中的 App前后台切换的影响

多个运行中的 App的切换

App运行时关机

App运行时重启系统

App运行时充电

App运行时kill掉进程再打开

APP运行时接打电话

APP运行时接收发信息

APP运行时查看应用推送

APP运行接上蓝牙设备

APP运行时接收文件弹窗提醒

APP运行时旋转屏幕

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

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

相关文章

时空智友企业流程化管控系统文件存在任意文件上传漏洞 附POC

、 文章目录 时空智友企业流程化管控系统文件存在任意文件上传漏洞 附POC1. 时空智友企业流程化管控系统文件简介2.漏洞描述3.影响版本4.fofa查询语句5.漏洞复现6.POC&EXP7.整改意见8.往期回顾 时空智友企业流程化管控系统文件存在任意文件上传漏洞 附POC 免责声明&#…

【Redis】深入探索 Redis 的哨兵(Sentinel)机制原理,基于 Docker 模拟搭建 Redis 主从结构和哨兵分布式架构

文章目录 一、对 Redis Sentinel 的认识1.1 什么是 Redis Sentinel1.2 为什么要使用 Redis Sentinel1.2.1 主从复制问题1.2.2 人工恢复主节点故障 二、Redis Sentinel 原理剖析2.1 Redis Sentinel 架构2.2 Raft 算法和领袖节点2.3 哨兵节点2.4 故障检测2.5 故障切换2.6 监控和通…

Android调用相册并展示选中的图片

调用相册 //定义请求码int PICK_PHOTO_REQUEST 1234;int RESULT_CANCELED 0;//定义取消码//触发监听后调用相册findViewById(R.id.image_gallery).setOnClickListener(new View.OnClickListener() {Overridepublic void onClick(View view) {//创建一个意图并开启startActivi…

Visual Studio 2017 安装

C自学精简实践教程 目录(必读) 这篇文章会保证你第一次安装VS2017就成功运行Hello World! 下载Visual Studio Installer Gitee 下载 VS2017/vs2017_Community.exe CalmReason/VisualStudio - 码云 - 开源中国 (gitee.com) 百度云下载 链接:https://pan.baidu…

ArangoDB关键知识点汇总大全(不定时更新)

二、ArangoDB数据模型与索引 2.1 数据模型 ArangoDB的数据模型分为数据库(databse)、集合(collection)、文档(document),分别与RDBMS中的数据库、表、行对应。 数据类型包括:string、boolean、number、array、document/object Collection&#xff1a…

【详细图文】Windows下安装RustRover和配置Rust环境

前言 Rust已经火了挺长时间了,连微软的Windows内核都用它来重新改写,可想而知其厉害之处。之前有看过Rust的教程,但一直没有去尝试。今天看到JetBrains出了Rust 专用的IDE:RustRover。作为JetBrains的粉丝,决定进行一…

【强化学习】02—— 探索与利用

文章目录 1. 探索与利用2. 探索策略3. 多臂老虎机3.1. 形式化描述3.2. 估计期望奖励3.3. 懊悔regret函数 4. 贪心策略和 ϵ − g r e e d y \epsilon-greedy ϵ−greedy策略5. 积极初始化6. 显示地考虑动作的价值分布7. UCB上置信界算法8. 汤普森采样算法总结参考 1. 探索与利用…

Hive 的权限管理

目录 ​编辑 一、Hive权限简介 1.1 hive中的用户与组 1.1.1 用户 1.1.2 组 1.1.3 角色 1.2 使用场景 1.2.1 hive cli 1.2.2 hiveserver2 1.2.3 hcatalog api 1.3 权限模型 1.3.1 Storage Based Authorization in the Metastore Server 1.3.2 SQL Standards Based …

【Vue.js】vue-cli搭建SPA项目并实现路由与嵌套路由---详细讲解

一,何为SPA SPA(Single Page Application)是一种 Web 应用程序的开发模式,它通过使用 AJAX 技术从服务器异步加载数据,动态地更新页面内容,实现在同一个页面内切换不同的视图,而无需整页刷新 1.…

部署Kafka

kafka:kafka_2.13-3.5.1 NOTE: Your local environment must have Java 8 installed. Apache Kafka can be started using ZooKeeper or KRaft. To get started with either configuration follow one the sections below but not both. 1 Windows单机 1.1 Kafka w…

wx.canvasToTempFilePath导出的图片不清晰

使用wx.canvasToTempFilePath接口,导出的canvas图片在手机上看不清晰 解决办法:本质上就是生成一个更大的图片,因为手机的屏幕设备的像素比现在一般都是超过2的。实际上我们只需要在使用wx.canvasToTempFilePath的时候,设置参数d…

LabVIEW在运行时调整表控件列宽

LabVIEW在运行时调整表控件列宽 如何在LabIEW中运行时调整表控件的列宽大小? 在VI运行时,有两种不同的方法可以更改表中列的宽度。首先,可以使用鼠标手动更改它们;其次,可以从框图中以编程方式更改它们。 手动更改列宽 只有在…

Unity中UI组件对Shader调色

文章目录 前言一、原理在Shader中直接暴露的Color属性,不会与UI的Image组件中的Color形成属性绑定。因为UI的Image组件中更改的颜色是顶点颜色,如果需要在修改组件中的颜色时,使Shader中的颜色也同时改变。那么就需要在应用程序阶段传入到顶点…

Docker容器启动失败:找不到映像

Docker容器启动失败:找不到映像 Docker容器启动失败:找不到映像摘要 😕引言 😮正文 🤓为什么会找不到映像? 😕1. 映像不存在2. 映像标签错误3. 映像不兼容 如何预防和解决问题? &…

国家开放大学 考试试题训练

经济数学基础 参考 试题 导数基本公式: 积分基本公式: c0 ∫0dxc xaaxa-1 ∫xadxxa1a1c(a≠-1) axaxlna(a>0且a≠1) …

大转盘抽奖活动制作流程,让你轻松打造火爆营销活动

抽奖活动一直是商家吸引顾客、推广产品的利器之一。而如何让抽奖活动更加顺利、高效地进行呢?今天我们就要介绍的就是乔拓云平台,通过它,商家可以轻松地制作、发布抽奖活动,让您的营销更加便捷、迅速!以下是具体操作步…

总结 HTTP 协议的基本格式和 fiddler 的用法

HTTP基本格式 HTTP协议也是日常开发中非常常用的的一种协议,在众多协议栈里HTTP可能是实际开发中用的最多的。 注意 这里说的HTTP是指HTTP1以及HTTP2,他们都是基于TCP协议的,注意:如今最新版的HTTP3是基于UDP的。 但如今在互联网…

基于矩阵分解算法的智能Steam游戏AI推荐系统——深度学习算法应用(含python、ipynb工程源码)+数据集(三)

目录 前言总体设计系统整体结构图系统流程图 运行环境模块实现1. 数据预处理2. 模型构建1)定义模型结构2)优化损失函数 3. 模型训练及保存1)模型训练2)模型保存 4. 模型应用1)制作页面2)模型导入及调用3&am…

【MySQL】 MySQL的增删改查(进阶)--壹

文章目录 🛫数据库约束🌴约束类型🎋NOT NULL约束🎍UNIQUE:唯一约束🌳DEFAULT:默认值约束🎄PRIMARY KEY:主键约束🍀FOREIGN KEY:外键约束&#x1f…

web:[ACTF2020 新生赛]Include

前提知识 文件包含漏洞 php伪协议 题目 点开题目,页面只显示一个tips,点进去看看 点进去之后 没有别的提示,先看源代码,恩,什么都没有 再看一下点进tips显示的页面,发现url中 flag可能就藏在这个页面中&…