APP测试(十一)

APP测试要点提取与分析

一、功能测试

  • APP是什么项目?核心业务功能梳理清楚 — 流程图分析
  • APP客户端的单个功能模块 — 细化分析
    • 需要使用等价类,边界值,考虑正常和异常情况(长度,数据类型,必填,重复,隐形需求)
  • 依据功能业务逻辑考虑功能交互

功能测试点提取与用例设计方法都跟web测试一致,但是APP有一些自己的特性测试,也要额外考虑到测试点中

1.1 安装与卸载
  • 软件安装前:
    • 空间不足时,是否有相应提示 – 异常
  • 软件安装中:
    • 安装过程中是否可以取消,再次安装成功 – 僵尸程序
    • 安装是否可以正常运行
  • 软件安装后: – 运行
    • 是否可以卸载应用:1)通过桌面卸载 2)通过软件设置卸载 – 重新安装
      常见bug,发现在IOS手机上有个应用安装时未完全安装,终止安装后,未完成安装的应用图标一直显示在手机上,并且无法成功删除 – 僵尸程序
    • 安装完是否自动删除安装包 — Android
    • 卸载之后,重新安装
  • 重复安装:
    • 提示版本已存在
    • 直接覆盖安装,但是能正常使用 – 正常
1.2 软件更新升级
  • 升级之前
    • 当客户端有新版本时,是否有更新提示
  • 升级之后
    • 更新后各个功能(新/老功能)是否能正常使用;
    • 更新后老数据存在并正常 – 新旧版本兼容性;
  • 非强制升级版
    • 用户可以取消更新,老版本正常使用,下次启动app时候,依旧可以出现更新提示
  • 强制升级版
    • 用户没有做更新时,退出客户端,下次启动app时,仍出现强制升级提示
  • 在线跨版本升级
    • 升级后正常使用
    • 选择的版本 — 用户使用量最多的版本 – 主流版本

问题:

  1. 新功能正常使用
  2. 旧功能ok
  3. 旧数据不会丢失
  4. 跨版本 – 主流
1.3 登陆测试
  • 登录方式
    • 用户名,短信验证码,指纹,二维码,手势,语音,头像识别,第三方登录(微信,QQ,微博),一键登录
  • 未登录方式
    • 一些页面的操作,是否有有效控制,点击某资源时,提示需要先进行登录
    • 用户主动退出登录后,下次启动APP时,应该进入登录界面 – 参考成熟产品
  • 切换账号登录:检验登录的信息是否做到及时更新、用户越权安全问题
  • 登录控制:通过功能限制只能在单个客户端或者指定个数的客户端进行登录操作
    • 不允许多点登录时,是否将原用户踢下线,且能够给出提示信息
    • 允许多点登录时,提示信息;且确保数据库操作无误,每个端可以及时看到数据的更新
  • 用户登录持续时间太久,账号信息会过期
    • 出现”虽然是登录状态,系统会提示用户没有登录“
    • 强制退出,并提示:账户信息过期,请重新登录
  • 单点登录(SSO)
    一个系统登录了账号,在跳转到别的页面就不用再登录了, – 系统内信息可以互通
1.4 手机行为测试

触屏及操作测试 – 可以不支持,但不能有异常

  • 触屏快捷手势:两指,三指,五指
  • 长按,短按屏幕
  • 手机横屏,竖屏检测 – 切换,APP兼容性,闪退,可以支持,出现问题
  • 同时触摸不同地方,同时进行不同操作 – 随机性测试,monkey

查看客户端的处理情况,是否会crash,ANR(无响应),

注意:需要与开发和产品确认是否支持!

1.5 消息推送
  • 开关设置
    • 默认状态全部打开,客户端可以接受推送消息
    • 设置开关可以打开,关闭;app设置关闭时,client不会接收消息推送
  • 手机客户端未锁屏时
    • app应用后台运行,消息推送是否可以正常接收,且可以点击查看
    • app应用前台使用,可以收到消息提醒,且点击查看
  • 手机客户端锁屏时,消息推送是否正常接收
  • 登录状态:
    • 退出登陆后,是否接收push消息,根据需求确定
    • 重新登录用户,批量接收多条消息推送
    • 切换用户时,推送消息是否符合当前登录用户
  • 消息栏(通知中心)是否可以接收到消息提醒,且点击可查看,点击后消息栏中消失

二、UI 界面测试

  • 确保产品UI符合产品经理指定的原型图与UI实际效果图一致
  • 依据经验,用户使用习惯,参看其他成熟的产品,界面可优化的bug
    • 一般涉及界面布局,风格,文字是否正确,页面是否美观,操作是否友好

UI界面测试和web思路一致

三、兼容性测试

  • app是否在不同操作系统正常使用,一般Android和IOS是两个不同的app,但功能类似
  • 每个平台的不同系统版本 – 系统更新后,需要做回归测试
  • 是否适配各种屏幕尺寸 – 与开发确认是否支持pad
  • 选择手机品牌,市场占有率高
  • 分辨率适配,保证主流分辨率下页面显示完整,文字不被遮挡
  • 特定用户指定要求

总结

  • app兼容性测试一般覆盖,Android系统手机,选取市面上主流手机即可,例如:小米,vivo,oppo等
    ios系统就是 x xs 11 11plus

  • 公司里有哪些测试手机,申请设备

  • 云测平台

四、安全性测试

在这里插入图片描述

五、中断测试

  • app被手机行为打扰的情况,观察手机能否正常处理,保证数据正确性,
  • 主要对核心功能存在实时数据交换的页面进行中断测试,除了确保中断过程中有合理的处理,还需要确保中断过后,恢复正常
    • 来电,来短信,锁屏解锁,断网重连,断电,低电量提醒,前台后台切换,app切换
    • 手机端硬件上,如,插拔数据线,耳机,闹铃弹出框提示等操作
  • 常见bug场景
    • 爱奇艺视频播放过程中,微信通话/电话中断:
      • 正常,app暂停状态,通话接收后,恢复直播正常
      • 异常 ,app卡死,音视频不同步
    • 微信视频聊天,低电量提醒中断
      • 正常,聊天不中断,关掉提示信息后,正常通讯
      • 异常,app卡死,崩溃,微信聊天被强行断开,bug

六、网络测试

  • 测试3G,4G,5G,wifi,热点,网络切换 – 用户场景
    • 例如,从wifi环境切换到4G环境,提示是否启动4G网络,会产生扣费,是否有提醒
  • 测试有网,无网切换下应用的运行
    • 网络连接 -> 网络断开 -> 网络连接,数据是否可以自动恢复,正常加载
    • 无网络情况,各种提示是否友好,数据本地化是否正确
  • 弱网测试(工具模拟 延时+丢包),关注弱网情况下是否有合理提示,且是否有重发机制
    • 提交数据是否一直处理提交中,是否会有延迟,数据交换失败是否会有提醒;
    • 数据多次提交(支付类app),是否只能被执行一次
    • 最大尝试次数,app是否正常工作
  • APP离线测试
    在这里插入图片描述

Q:为什么要进行弱网测试,弱网测试关注点有哪些?用什么工具模拟弱网?

A:贴近用户真实使用环境,fiddler,charles

七、性能测试

在这里插入图片描述

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

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

相关文章

【微机原理】v和∧区别

🌟 嗨,我是命运之光! 🌍 2024,每日百字,记录时光,感谢有你一路同行。 🚀 携手启航,探索未知,激发潜能,每一步都意义非凡。 在汇编语言和逻辑表达…

【C++ Primer Plus习题】8.7

问题: 解答: #include <iostream>using namespace std;template <typename T> T SumArray(T arr[], int n) {T sum arr[0] - arr[0];for (int i 0; i < n; i){sum arr[i];}return sum; }template <typename T> T SumArray(T *arr[], int n) {T sum *…

Vue3:通信组件

1.Props 父传子&#xff1a;直接传递需要获取的属性 子传父&#xff1a;需要借助函数&#xff0c;也就是方法&#xff0c;通过传递函数&#xff0c;子接着入参给函数&#xff0c;父调用函数即可获取到参数。 父&#xff1a; <template><div class"father&quo…

python破解[5分钟解决拼多多商家后台字体加密]

可【QQ群】拿源码 进入经营总览想把数据存下来发现返回的json数据部分空白如下 这可怎么办 稳住应该是字体的问题&#xff0c;可能是多多自己实现了某种字体&#xff0c;我们去找他的js 发现如我们所想&#xff0c;进行跟踪&#xff0c;发现的确是在css端进行了字体替换&am…

【高阶数据结构】图的应用--最小生成树

一、最小生成树 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成树就不在连通&#xff1b;反之&#xff0c;在其中引入任何一条新边&#xff0c;都会形成一条回路。 若连通图由n个顶点组成&am…

华为云征文|基于Flexus云服务器X实例的应用场景-部署脚手架开源项目若依

&#x1f534;大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂 先看这里 写在前面**Flexus X实例**的云服务器简介环境准备若依项目拉取导入数据库启动本地项目&#xff08;后端&#xff09;启动本地项目&#xff08;前端&#xff09;打包后…

Linux——性能调优工具一览

一、CPU 1.调优工具 根据指标找工具 性能指标工具说明 平均负载 uptime、top uptime最简单、top提供了更全的指标 系统整体CPU使用率 vmstat、mpstat、top、sar、/proc/stat top、vmstat、mpstat只可以动态查看&#xff0c;而sar还可以记录历史数据 /proc/stat是其他性…

【知识图谱】4、LLM大模型结合neo4j图数据库实现AI问答的功能

昨天写了一篇文章&#xff0c;使用fastapi直接操作neo4j图数据库插入数据的例子&#xff0c; 本文实现LLM大模型结合neo4j图数据库实现AI问答功能。 废话不多说&#xff0c;先上代码 import gradio as gr from fastapi import FastAPI, HTTPException, Request from pydantic…

HarmonyOS开发实战( Beta5版)耗时分析器Time Profiler实践指导

DevEco Studio集成的DevEco Profiler性能调优工具&#xff08;以下简称为Profiler&#xff09;&#xff0c;提供Time、Allocation、Snapshot、CPU等场景化分析任务类型。开发应用或服务过程中&#xff0c;如果遇到卡顿、加载耗时等性能问题&#xff0c;开发者通常会关注相关函数…

机器学习周报(8.26-9.1)

文章目录 摘要Abstractself-attetionQKV理解如何让self-attention更有效local attention/truncated attention方法stride attention方法Global Attention方法data driving方法Clusteringsinkhorn sorting network选取representative keys减少Keys数量的方法self-attentionSynth…

jQuery库

注明&#xff1a;本文参考自&#xff1a;jQuery - 白月黑羽 (byhy.net) jQuery安装 Download jQuery | jQuery下载到本地 ps: script标签中的src属性&#xff1a;表示包含要执行的代码的外部文件位置 <!DOCTYPE html> <html lang"en"><head><s…

让自家的智能语音助手实现todo任务的添加

我家的树莓派在成为了“智能语音助手”后&#xff0c;经过rasa学习训练&#xff0c;已经可以帮忙查日期/时间&#xff0c;查天气预报&#xff0c;进行一些简单的闲聊。但是&#xff0c;我希望它的功能还可以再强大些&#xff0c;比如说&#xff0c;可以帮我记录todo任务。为了实…

当网络适配器的Wireless出现感叹号

1.出现如下情况 链接&#xff1a; &#xff1a;一招搞定Intel(R) Wireless-AC 9560显示感叹号&#xff0c;无法打开wifi模块&#xff01;_intel(r)wireless-ac9560感叹号-CSDN博客z 重点&#xff1a; 原因是因为电脑静电的问题。

生产es所有节点全部掉线 排查

生产es所有节点全部掉线 查看message日志发现 内存溢出 修改jvm的改小 清理buff/cache sync && echo 1 > /proc/sys/vm/drop_caches sync && echo 2 > /proc/sys/vm/drop_caches sync && echo 3 > /proc/sys/vm/drop_caches 把es内存的…

Bean 的生命周期

什么是Bean的生命周期 Bean 的生命周期就是&#xff1a;对象从创建开始到最终销毁的整个过程&#xff0c;Bean 对象从创建到销毁中经历了哪些过程 什么时候创建Bean对象&#xff1f;创建Bean对象的前后会调用什么方法&#xff1f;Bean对象什么时候销毁&#xff1f;Bean对象的销…

13-springcloud gateway集成nacos实现负载均衡

网关作为访问系统的入口&#xff0c;负载均衡是必选项而不是可选项&#xff0c;本文介绍gateway与nacos集成&#xff0c;实现负载均衡的过程。关于springcloud gateway的基本用法&#xff0c;同学可以看看上篇文章: 12-使用gateway作为网关。 0、环境 jdk&#xff1a;1.8spri…

idea插件开发的第一天-写一个小Demo

介绍 Demo说明 本文基于maven项目开发,idea版本为2022.3以上,jdk为1.8本文在Tools插件之上进行开发 Tools插件说明 Tools插件是一个Idea插件,此插件提供统一Spi规范,极大的降低了idea插件的开发难度,并提供开发者模块,可以极大的为开发者开发此插件提供便利Tools插件安装需…

LLM系列 | 36:Google最新开源大模型:Gemma 2介绍及其微调(下篇)

引言 环境安装 数据准备 下载 处理 模型训练 模型inference 结果 gemma-2-9b gemma-2-9b-it 引言 低头观落日&#xff0c;引手摘飞星。 小伙伴们好&#xff0c;我是微信公众号《小窗幽记机器学习》的小编&#xff1a;卖黑神话的小女孩。本文紧接前文Google最新开源大…

栈和队列——用队列实现栈

题目中给出&#xff0c;让我们应用两个队列实现栈&#xff0c;首先我们先来想一下&#xff0c;栈是先进后出&#xff0c;队列是先进先出。所以我们就需要应用两个队列来回导才能实现栈的特点。因为这道题是基于队列来实现的&#xff0c;所以在下方若有看不懂的函数名称可以去栈…

【indirect 函数 ★二级下拉菜单】

Indirect 函数 &#x1f33c;indirect函数参数&#x1f33c;应用&#xff1a;&#x1f33c;跨表引用同一单元格&#x1f33c;二级下拉列表 &#x1f33c;indirect函数参数 返回⬅️【文本字符串所指定的引用】 INDIRECT(ref_text,[a1]) 其中【ref_text】是引用的文本 [a1] 是…