App测试技术(纯理论)

之前我们也学习过一些普通用例的设计, 如功能, 性能, 安全性, 兼容性, 易用性, 界面的测试用例设计, 之前我们讲的基本都是对于Web应用而言的, 这里我们来讲一下移动端的App测试用例设计.

功能方面

安装&卸载测试

这是只属于App的一类测试, 再平常我们使用移动设备(手机/平板)是会经常接触到这个. 主流的就有安卓的Apk安装包, 还有IOS的ipa包.

我们将测试点主要设置在这四个方面: 安装前, 安装中, 安装后, 以及特殊的重复下载.

对于安装前, 比如说我们空间不足了, 是否能给出相关提示.

对于安装中, 安装过程是否是可以取消的? 再次安装是否成功? 安装后是否可以正常运行?

安装后, 主要就是运行了~, 同时还需要面对一些环境测试.

是否可以卸载应用: (1)通过桌面卸载, (2)通过软件界面卸载 (3)通过资源管理器卸载.

然后就是要看看卸载之后的情况: 卸载后图标是否还在? 卸载的干净吗?

最后我们会再次重新安装这个软件, 尝试运行, 如果与运行不成功, 很可能是之前没有卸干净!

对于重复安装的话, 那主要就是看需求了, 一个是允许覆盖性的安装, 不影响使用, 一个是直接提示版本存在. 当然还有一些要看是需求规格说明是怎么说的.

App升级测试

升级测试当然是App的一个特殊点, 在平常的浏览器中, 上面的应用程序都是直接更新的, 而对于App来说, 这就比较复杂了.

我们分位升级前后, 升级的强制性来讲.

升级前: 当有新版本发布时, 在客户端是否有更新提示.

升级后: 我们当然要保旧更新, 首先就是要检测更新后的数据是否有丢失, 这个就主要是升级前后的一个兼容性. 然后的就是新功能是否使用正常.

非强制升级: 用户可以随时取消更新, 同时支持老版本的一个正常使用. 然后根据功能需求, 看看是否有下次上线提示App更新的功能, 对其进行测试.

 强制升级: 顾名思义, 就是你不升级我不让你用, 如果用户不升级的话, 就会强制其退出, 当用户下次使用时, 仍有这个强制升级的提示.(当然要有提示, 不能不经过用户同意, 不经人同意的软件真的很讨厌).

App登陆测试(安全) 

我们在App上面的登录形式很多样, 特殊的就有: 指纹, 二维码, 收拾, 语音, 头像识别, 一键登录.

然后上面讲的是对登录方式的一个扩充, 但重要的是对于权限的一个控制, 很简单: 登录前你能干什么, 登录后你又能干什么?

对于登录的权限, 我们有两种限制: 压根不让进(游戏等), 让进但有功能限制.

对于完全不让进的, 我们就要想办法测试一些越权的行为, 这里我提供一种, 比如登录后注销, 查看页面是否会跳到登录页面.

而对于让进的, 这也是一种主流, 先对用户介绍一下成熟的产品, 吸引读者的兴趣. 但是当用户对于页面的操作, 要进行控制, 当点击某资源/跳转某界面, 就要要求登录. 如抖音评论功能要登录.

而登录方面还有一个重要的测试就是多开情况.

 一种就是允许多开,  这一种的重中之重就是确保两个端的更新能做到及时的同步, 在这一点上也会有一些意想不到的bug, 比如我之前写的博客系统, 嗯用两个浏览器登同一个账号, 点开同一篇自己的文章, 一边删除这个文章后另一边点击更新, 这时页面就有bug.

一种就是不允许多开, 常见于游戏. 即不让两个地方登录. 处理策略也有两种: 一是提示后登录的客户端无法登录, 二是后登录的能进去, 但是前登录的被挤掉了.

最后也有一种是长时间未登录, 过期了(还是看需求哈).

 消息推送测试

在平常使用手机的时候, 当个人专注度不强时就可能被某App的消息吸引过去了, 一吸引少则几十秒, 多则几十分钟, 更多则一天, 比如是QQ, 你以为是女神给你发消息了, 结果一进去是想让你充QQ VIP.

导致你非常的嗯 ? 沮丧? 当然, 开个玩笑, 消息推送作为移动端App的一个重要部分, 我们也要做好测试.

 首先是消息推送功能设置, 我们是让它推送还是不让推送? 这个可以在系统上进行设置, 同时App也要设置这个, 推送功能开启/关闭功能.

然后就是对于用户情况进行一个分配(假设开启了推送功能.)

手机客户端未锁屏时: 当App在后台运行/前台使用, 是否可以推送, 且可点击传送到对应App的对应界面, 注: 能否跳转到对应界面也是个重点, 如果进错了用户就会出现: 我是谁, 我在哪, 我要干什么的疑问.

然后手机客户端为锁屏时, 是否可以正常推送.

然后还要根据登录状态进行测试: 退登后, 是否还会收到消息推送, 再次登录后, 是否能够显示多条推送的信息(我平板上有个原神, 基本不登, 更新时会上去领300原石)

当切换用户时, 推送的消息是否相符.

兼容性方面

这里有些部分是和Web端测试一致的, 当然也有一些是App所独有的(主要是解决适配的问题).

应用是否可在不同操作系统上使用(Andriod/IOS), 一般它们是两个不同的App, 但是功能相似. 然后就是它们是有不同版本的, 要对这个做回归测试. 我这里说一个栗子(不是尬黑).

环境: IPad AIR5, IOS17, QQ 9.0.65

问题: 分屏情况下的QQ空间显示异常行为.

步骤: 打开QQ, 分到左/右屏(占1/3),  将ipad横屏, 发现空间访客消息不存在, 再将ipad竖屏, 发现信息展示异常(说说内容占据比例过大.)

该问题到现在也未解决, 但之前是没有这个问题的(希望鹅能够解决这个问题哈哈哈).

然后就是屏幕尺寸的适应性测试, 手机品牌测试. 分辨率适配性等问题, 这里我就不展开讲了, 但肯定有这种问题.

App中断测试

想像一下这个场景, 打王者正打团呢, 突然, 很快啊, pia, 告诉你电量剩不到10%了, 游戏也给你停住了, 然后你让对面秒了, 这就很难受, 有时几秒就能决定战斗的胜负, 当然对于中断, 用户是不可忍受的, 因此这里要引入App独有的中断测试.

即App被手机行为打扰, App能否正常处理, 保证数据的正确性 -- 运行, 数据

主要核心功能在于实时的数据交换的页面做中断测试. 考察标准就是是否能够正常处理中断情况, 中断后是否能够恢复正常两个方面. (可以类比之前讲过的上下文).

常见的中断包括但不限于: 手机来电, 来短信, 闹铃, 耳机插拔, 断网, 断电, 低电量, 数据线插拔, 蓝牙连接, 前后台切换, 系统状态栏, App切换等.

这里就不展开说了, 提一下几个经典的场景:

爱奇艺播放过程中, 微信电话/电话中断:

正常: app暂停状态, 接听完电话后, 恢复正常(手动/自动)

异常: app卡死, 音视频不同步.

微信视频聊天, 低电量/电话:

正常: 聊天不中断, 关掉提示信息后, 正常通讯

异常: app卡死, 视频断开.

网络测试

不详细说明了, 直接引入分类.

测试 3G/4G/5G/wifi/热点, 网络的切换 -- 用户场景.

例如从wifi切换到4G是否有提示, 生活上的例子就比如当忙碌了一周后, 躺床上疯狂刷抖音, 把抖音都快刷爆了, 然后一开状态栏, 显示你使用了105.68G流量, 这对于一个忙碌的打工人绝对是沉重的打击, 当然有些软件就非常友好, 会提示当前用的是流量, 就非常舒服.

 然后是测试有网/无网状态下是否能正常运行.

就比如从有网->无网的情况下是否能够给出提示, 缓存功能是否正常, 无网->有网的情况下, 数据是否正常恢复, 正常加载(重连). 

弱网

关注弱网场景下是否有合理提示, 且是否有重发机制. 提交数据是否一直处理提交中, 是否有延迟, 数据交换的提醒, 数据多次提交(支付场景, 学校洗澡的那个某某校园app没有处理这个bug, 导致我洗澡充了两次钱, 望周知), 最大尝试次数.

安全性测试

之前在Web端测试时我们着重 讲了SQL注入, XSS注入, 数据传输安全等方面, 接下来介绍App中的特殊的安全性测试 --权限测试.

扣费风险: 就是在一些场景下会提示用户扣费.

隐私泄漏: 指需要用户权限才能访问用户一些私人信息(现在个人隐私泄漏真的很严重!)

开启相册/照相权限, 定位权限, 录音权限等.

注: 这些权限默认情况都是开放的, 需要用户选择.

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

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

相关文章

【第11章】MyBatis-Plus条件构造器(上)

文章目录 前言一、功能详解1. allEq2. eq3. ne4. gt5. ge6. lt7. le8. between9. notBetween10. like11. notLike12. likeLeft13. likeRight14. notLikeLeft15. notLikeRight16. isNull17. in18. notIn19. inSql20. notInSql21. eqSqlSince 3.5.622. gtSql Since 3.4.3.223. ge…

Linux4(Docker)

目录 一、Docker介绍 二、Docker结构 三、Docker安装 四、Docker 镜像 五、Docker 容器 六、Docker 安装nginx 七、Docker 中的MySQL部署 一、Docker介绍 Docker:是给予Go语言实现的开源项目。 Docker的主要目标是“Build,Ship and Run Any App,Anywhere” 也…

类和对象【上】【C++】

P. S.:以下代码均在VS2019环境下测试,不代表所有编译器均可通过。 P. S.:测试代码均未展示头文件stdio.h的声明,使用时请自行添加。 博主主页:LiUEEEEE                        …

依托天拓四方工业智能网关实现CNC数控机床的远程运维

随着工业4.0时代的到来,智能制造和工业互联网成为了推动制造业转型升级的重要力量。CNC数控机床作为制造业的核心设备,其运行效率与稳定性直接关系到企业的生产效益。因此,实现CNC数控机床的远程运维,对于提升企业竞争力、降低运营…

安装 Docker 环境(通过云平台创建一个实例实现)

目录 1. 删除原有 yum 2. 手动配置 yum 源 3. 删除防火墙规则 4. 保存防火墙配置 5. 修改系统内核。打开内核转发功能。 6. 安装 Docker 7. 设置本地镜像仓库 8.重启服务 1. 删除原有 yum rm -rfv /etc/yum.repos.d/* 2. 手动配置 yum 源 使用 centos7-1511.iso 和 Xi…

Java [ 基础 ] 方法引用 ✨

✨探索Java基础✨ Java基础:方法引用 方法引用是Java 8中引入的一种新特性,它使得代码更加简洁和易读。方法引用提供了一种可以直接引用已有方法作为Lambda表达式的替代方案。本文将深入介绍方法引用的基本概念、使用方法、具体实例及其在实际开发中的…

【深入浅出 】——【Python 字典】——【详解】

目录 1. 什么是 Python 字典? 1.1 字典的基本概念 1.2 字典的用途 1.3 字典的优势 2. 字典的基本特点 2.1 键的唯一性 2.2 可变性 2.3 无序性 3. 如何创建字典? 3.1 使用 {} 符号 3.2 使用 dict() 工厂方法 3.3 使用 fromkeys() 方法 4. 字…

[工业网络][2] 安全背景知识

安全背景知识 物理、网络和人员安全 在考虑企业和工业的安全性时,安全从业人员传统上将自己划分为三个专业领域。我们借助于安全中经常使用的两个术语来描述这三个领域 业内人士。属于您的设施的人员,包括员工和受邀承包商,访客或交付和服…

K8s的基本使用和认识

目录 介绍 控制端 Node(节点) 控制端与节点的关系图 基本使用 创建和运行资源 查找和参看资源 修改和删除资源 介绍 控制端 api-server(api)是集群的核心是k8s中最重要的组件,因为它是实现声明式api的关键 kubernetes api-server的核心功能是提供了Kubernetes各类资…

应用监控SkyWalking调研

参考: 链路追踪( Skyworking )_skywalking-CSDN博客 企业级监控项目Skywalking详细介绍,来看看呀-CSDN博客 SkyWalking 极简入门 | Apache SkyWalking 使用 SkyWalking 监控 ClickHouse Server | Apache SkyWalking https://zhuanlan.zhihu.com/p/3…

Linux应急响应靶机 2

一、靶机介绍 应急响应靶机-Linux2 前景需要:看监控的时候发现webshell告警,领导让你上机检查你可以救救安服仔吗!! 1,提交攻击者IP 2,提交攻击者修改的管理员密码(明文) 3,提交第一次Webshell的连接URL(http://xxx.xxx.xxx.…

【每日刷题】Day78

【每日刷题】Day78 🥕个人主页:开敲🍉 🔥所属专栏:每日刷题🍍 🌼文章目录🌼 1. 1608. 特殊数组的特征值 - 力扣(LeetCode) 2. 1385. 两个数组间的距离值 - …

R可视化:好看的气泡图

加载R包 library(tidyverse) library(camcorder)gg_record(dir "tidytuesday-temp", device "png", width 8, height 8, units "in", dpi 320)导入数据 team_results <- readr::read_csv(https://raw.githubusercontent.com/rfordata…

设置Docker中时区不生效的问题

项目中使用docker-compose&#xff0c;并通过以下方式设置了时区 environment:- SET_CONTAINER_TIMEZONEtrue- CONTAINER_TIMEZONEAsia/Shanghai 但是并没有正确生效&#xff0c;网上有很多博客都在推荐这个做法&#xff0c;另外一种是使用标准环境标量 -TZAsia/Shangehai …

24 年程序员各岗位薪资待遇汇总(最新)

大家好&#xff0c;我是程序员鱼皮。今天分享 24 年 6 月最新的程序员各岗位薪资待遇汇总。 数据是从哪儿来的呢&#xff1f;其实很简单&#xff0c;BOSS 直聘上有一个免费的薪酬查询工具&#xff0c;只要认证成为招聘者就能直接看&#xff0c;便于招聘者了解市场&#xff0c;…

RabbitMQ消息可靠性等机制详解(精细版三)

目录 七 RabbitMQ的其他操作 7.1 消息的可靠性(发送可靠) 7.1.1 confim机制(保证发送可靠) 7.1.2 Return机制(保证发送可靠) 7.1.3 编写配置文件 7.1.4 开启Confirm和Return 7.2 手动Ack(保证接收可靠) 7.2.1 添加配置文件 7.2.2 手动ack 7.3 避免消息重复消费 7.3.…

【C语言】23.文件操作

由于要对数据进行持久化保存&#xff0c;我们就有了文件。 一、程序文件与数据文件 磁盘&#xff08;硬盘&#xff09;上的文件是文件。 但是在程序设计中&#xff0c;我们⼀般谈的文件有两种&#xff1a;程序文件、数据文件&#xff08;从文件功能的角度来分类的&#xff09…

“论云上自动化运维及其应用”写作框架,软考高级论文,系统架构设计师论文

论文真题 云上自动化运维是传统IT运维和DevOps的延伸&#xff0c;通过云原生架构实现运维的再进化。云上自动化运维可以有效帮助企业降低IT运维成本&#xff0c;提升系统的灵活度&#xff0c;以及系统的交付速度&#xff0c;增强系统的可靠性&#xff0c;构建更加安全、可信、…

2024年最适合Python小白的零基础入门教程!

伴随着云计算、大数据、AI等技术的迅速崛起&#xff0c;市场对Python人才的需求和市场人才的匮乏&#xff0c;让长期沉默的Python语言一下子备受众人的关注&#xff0c;再加上简单易学&#xff0c;使得Python一跃成为TIOBE排行榜的第一。 准备学Python或者想学Python的小伙伴们…

13 Redis-- 数据一致性模型、MySQL 和 Redis 的数据一致性

数据一致性模型 根据一致性的强弱分类&#xff0c;可以将一致性模型按以下顺序排列&#xff1a; 强一致性 > 最终一致性 > 弱一致性 数据一致性模型一般用于分布式系统中&#xff0c;目的是定义多个节点间的同步规范。 在这里&#xff0c;我们将其引入数据库和缓存组…