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中的特殊的安全性测试 --权限测试.

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

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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

nodejs--【Express基本使用】

10 【Express基本使用】 https://www.expressjs.com.cn/ 基于 Node.js 平台,快速、开放、极简的 web 开发框架。 1.Express的安装方式 Express的安装可直接使用npm包管理器上的项目,在安装npm之前可先安装淘宝镜像: npm install -g cnpm -…

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

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

Skipfish一键扫描网站漏洞(KALI工具系列三十四)

目录 1、KALI LINUX 简介 2、Skipfish工具简介 3、信息收集 3.1 目标IP 3.2 kali的IP 4、操作步骤 4.1创建目录 4.2开始扫描 4.3 配置扫描 4.4 指定范围 4.5 查看扫描结果 5、总结 1、KALI LINUX 简介 Kali Linux 是一个功能强大、多才多艺的 Linux 发行版 &#xf…

TopK问题与如何在有限内存找出前几最大(小)项(纯c语言版)

目录 0.前言 1.知识准备 2.实现 1.首先是必要的HeapSort 2.造数据 其他注意事项 3.TopK的实现 0.前言 在我们的日常生活中总有排名系统,找出前第k个分数最高的人,而现在让我们用堆来在有限内存中进行实现 1.知识准备 想要实现topk问题首先我们要…

windows下启动redisSentinel

如果已经安装redis的就继续往下看&#xff0c;还没安装redis&#xff0c;先安装一下redis 安装完redis之后&#xff0c;打开redis的目录。 新建一个sentinel.conf文件 # 端口号 port 26379# Sentinel 监控的主节点信息&#xff0c;格式为 <master-name> <ip> &l…

Spring Cloud Sentinel

官网代码案例: 注意&#xff1a; 1. 引入依赖 <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency> 2. 配置文件application.yml spring:cloud:sent…

海康视频播放,包含h5和web插件

自行下载 海康开放平台 demo 都写得很清楚&#xff0c;不多描述 1.视频web插件 vue2写法&#xff0c;公共vue文件写法&#xff0c;调用文件即可 开始时需要以下配置&#xff0c;不知道的找对接平台数据的人&#xff0c;必须要&#xff0c;否则播不了 getParameterData: {po…

4.Android逆向协议-详解二次打包失败解决方案

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a;微尘网校 上一个内容&#xff1a;3.Android逆向协议-APP反反编译及回编译 工具下载&#xff1a; 链接&#xff1a;https://pan.baidu.…

什么是协程?协程和线程的区别

文章目录 前置知识应用程序和内核阻塞和非阻塞同步和异步并发和并行IO 发展历史同步编程异步多线程/进程异步消息 回调函数&#xff08;响应式编程&#xff09; 协程协程基本概念go 示例代码协程和线程的区别 个人简介 前置知识 在了解协程前&#xff0c;我们先理解一些相关的…

前端学习笔记(2406261):jquery使用checkbox控制页面自动刷新

文章目录 需求登录页面主页面 API用户登录login获取数据getdata 代码登录页面主页面 关于后端 需求 这是一个物联网的演示项目&#xff0c;web端能够实时显示后台数据的变化&#xff0c;其流程非常简单&#xff1a; 用户登录登录成功后显示主界面面主界面进入后自动显示数据数…

为什么网络爬虫广泛使用HTTP代理?

一、引言 网络爬虫作为自动抓取互联网信息的重要工具&#xff0c;在现代社会中发挥着不可或缺的作用。然而随着网络环境的日益复杂&#xff0c;网站反爬虫技术的不断进步&#xff0c;网络爬虫在获取数据的过程中面临着越来越多的挑战。为了应对这些挑战&#xff0c;HTTP 代理成…

已解决 SyntaxError: invalid syntax,Python报错原因和解决方案。

「作者简介」&#xff1a;冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础著作 《网络安全自学教程》&#xff0c;适合基础薄弱的同学系统化的学习网络安全&#xff0c;用最短的时间掌握最核心的技术。 这篇文章带大家…

创建一个Django用户认证系统

目录 1、Django2、Django用户认证系统User 模型&#xff1a;Authentication 视图&#xff1a;认证后端 (Authentication Backends)&#xff1a;Form 类&#xff1a;中间件 (Middleware)&#xff1a;权限和组 (Permissions and Groups)&#xff1a; 3、创建一个django用户认证系…

科普文:一文搞懂jvm原理(二)类加载器

概叙 科普文&#xff1a;一文搞懂jvm(一)jvm概叙-CSDN博客 前面我们介绍了jvm&#xff0c;jvm主要包括两个子系统和两个组件&#xff1a; Class loader(类装载器) 子系统&#xff0c;Execution engine(执行引擎) 子系统&#xff1b;Runtime data area (运行时数据区域)组件&am…

“一带一路”再奏强音!秘鲁总统博鲁阿尔特参访苏州金龙

6月27日下午&#xff0c;首次访华的秘鲁共和国总统博鲁阿尔特一行到苏州金龙参观访问&#xff0c;受到了苏州金龙总经理黄书平的热情接待。 黄书平&#xff08;左二&#xff09;向博鲁阿尔特&#xff08;右一&#xff09;介绍苏州金龙发展情况 从苏州金龙发展历程、产品技术研…

【UE5.1】Chaos物理系统基础——02 场系统的应用

目录 步骤 一、运用临时场&#xff08;外部张力&#xff09;破裂几何体集 二、使用构造场固定几何体集 步骤 在上一篇中&#xff08;【UE5.1】Chaos物理系统基础——01 创建可被破坏的物体&#xff09;我们已经创建了可被破碎的几何体集&#xff0c;在最后我们防止几何体集…

基于K线最短路径构造的非流动性因子

下载地址https://download.csdn.net/download/SuiZuoZhuLiu/89492221

暴雨来袭,陈赫家变“水帘洞”网友:赫哥滴滴打船吗?

在魔都上海&#xff0c;一场突如其来的暴雨 不仅让街道变成了河流&#xff0c;还悄悄上演了一场现实版的“水帘洞”奇遇 而这场奇遇的主角&#xff0c;竟然是喜剧界的明星——陈赫&#xff01; 这天&#xff0c;乌云密布&#xff0c;电闪雷鸣 魔都的天空仿佛被捅了个窟窿 雨…

通过源码抽丝剥茧理解enable_shared_form_this/shared_ptr/weak_ptr智能指针实现原理

源码解析 首先先看如下简单代码,我们通过代码的顺序逐步解析 #include <iostream> #include <memory> using namespace std;class C :public enable_shared_from_this<C>{ public:C(){ std::cout<<"construct"<<endl; }~C(){ cout&l…

mqtt介绍和环境安装

Mqtt介绍 MQTT是机器对机器(M2M)/物联网(IoT)连接协议。它被设计为一个极其轻量级的发布/订阅消息传输协议。对于需要较小代码占用空间和/或网络带宽非常宝贵的远程连接非常有用&#xff0c;是专为受限设备和低带宽、高延迟或不可靠的网络而设计。 下载一个开源的emqx服务器和…