测试基础 Android 应用测试总结

目录

启动:

功能介绍,引导图,流量提示等:

权限:

文件错误

屏幕旋转:

流量:

缓存(/sdcard/data/com.your.package/cache/):

正常中断:

异常中断:

用户体验:

多语言:

升级:

应用外部升级:

列表:

双卡双待:

网络:

monkey 测试:

性能测试:


启动:

  1. 启动入口:桌面正常启动,最近运行启动,所有程序列表中启动,锁屏快捷启动
  2. 其他入口:从其他程序开启应用,从外部以文件形式打开应用(如果有)
  3. 退回:从其他程序退回时回到被测应用,被测应用打开其他应用再从桌面图标启动 以上需要交叉组合测试。
  4. 异常启动:崩溃后启动,写文件时被强制杀进程后启动,网络请求未收到回包强制杀进程后再启动,网络超时时启动(启动需要有超时机制)

功能介绍,引导图,流量提示等:

1 全新安装程序第一次启动,会有些初始化,或者弹框提示,功能介绍,当外部打开,比如第三方打开(一般不算做第一次启动)后,再启动程序,检查该有的动作是否都有。

权限:

1 当某些权限被安全软件或者系统禁止时,是否可以正常使用,需要注意的权限:麦克风/摄像头/定位/短信息等权限 ---_luguo
2 在做兼容性测试时,需要特别注意权限管理较严的 Rom,比如魅族在摄像头等权限为默认关闭
3 第三方安全软件弹框请求禁止权限时,选择后,是否会影响到被测应用的正常流程

文件错误

1 使用错误的文件类型(但是有正确的后缀名),替代被测应用使用的文件
2 adb push 从 pc 上传到设备的文件如果有中文名,会生成一个错误的文件,被测应用需要适应这种错误情况

屏幕旋转:

1 确认哪些界面是需要允许横屏或者禁止横屏的
2 将屏幕锁定为竖屏或者横屏,在几个界面跳转,界面是否正常
3 当适应横屏时,是否对横屏进行了适配

流量:

1 首次启动应用的流量是否符合预期
2 在主界面有很多图片时,是否已经达到图片文件大小与显示效果的平衡
3 当需要使用较大的网络流量时(加载大图片,视频播放缓冲,下载更新包),显示出当前网速或者进度,对用户来说更友善

缓存(/sdcard/data/com.your.package/cache/):

  1. 卸载后将删除缓存,其中是否存在不应该删除的文件(下载文件,用户资料)
  2. 缓存易被 360 手机卫士,猎豹清理大师等清理,需检查该文件夹是否放了适合的文件

正常中断:

  1. 在所有界面执行锁屏操作,解锁后观察是否正常运行
  2. 在所有界面执行长时间锁屏操作,解锁后观察是否正常运行
  3. 在所有界面,和所有过程,按 home 键切后台,再切回时观察是否正常
  4. 在所有的 loading 过程中,按 back 键
  5. 在所有的 loading 过程中,按 home 键
  6. 界面切换动画时尝试多次按 back 键
  7. 正常的点击动作,尝试快速按两次
  8. 后摄像头和前摄像头无法同时启动,后摄像头启动还包括打开闪光灯(与手电筒类应用的兼容性)
  9. 检查键盘展开和收起的时机,与 home、back、锁屏组合测试
  10. 从第三方启动后,home 键回到桌面,再从桌面打开被测应用,显示是否正确(应确定是显示第三方启动界面,还是显示程序正常启动界面,前者如微信,后者如 QQ)

异常中断:

  1. 断电后重启
  2. 当界面被意外崩溃,是否可以重启界面,并且恢复到崩溃之前的状态
  3. 来电结束后,返回被测应用界面
  4. 在某些特殊情况下,来电后,移动网络会被切断

用户体验:

  1. 以最挑剔最无理的用户角度来使用应用的主打功能
  2. 是否每个动作都有反馈
  3. 每个按钮都有按下的状态
  4. 当界面有返回按钮时,back 将执行同样的操作
  5. 当图片需要网络拉取,或者无图片时,是否有默认图片替代
  6. 开启开发者选项,勾选显示布局边界,检查每一个按钮的可点击范围是否合理

多语言:

  1. 其他语言的语言习惯(如繁体)
  2. 英文注意复数
  3. 多语言下,需要特别检查以图片形式展示的文案(如果功能引导,启动引导图)
  4. 一致性。(一方面是代指的一致性,一方面如果有系列应用共用功能的文案也需要保持一致)
  5. 如果在简体下载了一个文件 or 创建了一个快捷方式 or 进行了一笔购买,马上切换语言去做一次同样的动作
  6. 检查英文语言下的切断、断行是否正确---by chenhengjie123
  7. 当文字长度不一致时,UI 界面是否能正常适配---by chenhengjie123

升级:

  1. 是否有完整的升级策略(强制升级,灰度发布)
  2. 下载升级包过程中是否可以取消
  3. 升级包下载是否可以续传
  4. 升级过程是否可以中断(取消按钮,back 键)
  5. Android 系统第一次安装非官方市场应用,需要手动取消限制,此过程是否会影响到 apk 包安装(正对预装应用的测试)
  6. 在没有更新或者网络时,需要给予用户正确的信息表达
  7. 如果升级有忽略本次版本升级,那么当有新的升级版本时,是否还有提示升级
  8. 收到升级提示后,下载了 apk 并未安装,同名替换该 apk,下次再收到升级提示后,是否正常升级

应用外部升级:

1 应用如果是跳网页下载安装包升级,需要在文件名加版本号或者标识,防止浏览器下载时有缓存,而无法安装最新版本---_luguo
2 交由系统下载升级安装包,尝试进行两次版本升级

列表:

  1. 列表中的文字长度超过限制
  2. 点击列表项返回后的列表项的状态变化(尤其在有多个进度条存在时,需要注意状态)
  3. 上下滑动时,是否可接受卡顿(帧率)

双卡双待:

  1. 当手机为双卡双待时,影响到的功能有:需要获取手机号码的功能,如支付;自动读取短信息

网络:

  1. 是否以较好的体验从网络问题导致的数据问题中恢复界面展示数据
  2. 是否每个需要网络请求的操作,都有做超时处理,并且测试出他的超时时间
  3. 检查每一个需要网路请求的动作在网络延迟,服务器发生错误时,界面的响应

monkey 测试:

  1. 必跑 monkey,不要仅跑一次,不要到测试后期才跑
  2. 更换不同的界面和不同的参数跑 monkey
  3. 记得记录所有日志,如果能有日志筛选的工具更好

性能测试:

  1. cpu 占用,内存,流量,耗时等数据,必须有标准和参考值(可以是市场上同类应用的类似操作的表现,或者同应用的不同版本测试) 2 特定操作(一般为主打功能)的压力测试,一般长时间大批量执行某个动作或者组合,尤其为该动作是通过 JNI 实现,或者使用了其他第三方 sdk。一般写脚本或者录制脚本。

  作为一位过来人也是希望大家少走一些弯路

在这里我给大家分享一些自动化测试前进之路的必须品,希望能对你带来帮助。

(软件测试相关资料,自动化测试相关资料,技术问题答疑等等)

相信能使你更好的进步!

点击下方小卡片

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

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

相关文章

jupyter notebook更换虚拟环境(内核)

jupyter notebook更换虚拟环境(内核) 创建一个新的虚拟环境 # stk_env 虚拟环境的名字,任取。 conda create -n stkenv python3.9激活虚拟环境 conda activate stkenv安装ipykernel # 为该虚拟环境,安装内核。 conda install -c a…

【Spring core学习三】对象装配:获取Bean对象的四种方式

目录 对象装配的四种方式 🌷1、Autowired属性注入(使用最多) 🌷2、Setter注入 🌷3、构造函数注入 🌷4、Resource:另⼀种注⼊关键字 对象装配的四种方式 对象装配:获取bean对象也…

linux之Ubuntu系列(-)常见指令 重定向

Ubuntu 中文 版本 注意点 通过修改语言改成英文 在终端录入:export LANGen_US 在终端录入:xdg-user-dirs-gtk-update 单用户和多用户 命令格式 command [-选项] [参数] –查看命令的帮助 命令 --help man 命令 |操作键| 功能| |空格键|-显示手册的下…

B070-项目实战-用户模块--手机注册

目录 用户模块需求分析静态网站部署与调试两种前端项目的部署两种前端项目的调试(热部署)创建静态web项目 注册分析与设计分析需求设计 界面设计(ui)设计表(后台) 流程设计(后台)三范式表设计流程设计 相关…

Appium+python自动化(十二)- Android UIAutomator终极定位凶器(超详解)

简介 乍眼一看,小伙伴们觉得这部分其实在异性兄弟那里就做过介绍和分享了,其实不然,上次介绍和分享的大哥是uiautomatorviewer,是一款定位工具。今天介绍的是一个java库,提供执行自动化测试的各种API。 Android团队在4…

SPSS中级统计--S05-5多个样本率的卡方检验及两两比较

小伙伴们,今天我们学习SPSS中级统计--多个样本率的卡方检验及两两比较。 例1、2 C列联表资料 上期我们学习了双向无序RC表资料(c2)的检验,案例如下,比较不同污染地区的动物畸形率是否有差异? H0&#xff…

旅游管理系统的设计与实现(论文+源码)_kaic

摘 要 旅游业走过了改革开放,到现在依旧蓬勃发展。但是放眼国际社会,我们在旅游业发展的深度和广度上所做的努力还远远不够。在中国,旅游业也将成为经济崛起中的重要一环。目前,我们生活在一个信息时代里。无论是工作,…

uniapp动态获取列表中每个下标的高度赋值给另一个数组(完整代码附效果图)

uniapp实现动态获取列表中每个下标的高度&#xff0c;赋值给另一个数组。 先看效果图&#xff1a; 完整代码&#xff1a; <template><div class""><div class"">我是A列表&#xff0c;我的高度不是固定的</div><div class&qu…

Docker使用总结

Docker 1.什么是 Docker 官网的介绍是“Docker is the world’s leading software container platform.” 官方给Docker的定位是一个应用容器平台。 Docker 是一个容器平台的领导者 Docker 容器平台 Docker 应用容器平台 application项目 Mysql Redis MongoDB ElasticSeacrh …

我国版式文档格式OFD前端WEB展示之EasyOFD

EasyOFD an ofd file web shower 一个在web端展示ofd文件的控件&#xff0c;该控件基于CANVAS绘制。 该控件使用了以下外部程序 1&#xff09;jszip&#xff1a;解决解压文件。 2&#xff09;x2js: 解决XML文件到JS转换 3&#xff09;easyjbig2: 解决ofd内部使用jb2文件存储的…

java项目之足球赛会管理系统(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的足球赛会管理系统。技术交流和部署相关看文章末尾&#xff01; 项目地址&#xff1a; https://download.csdn.net/download/sinat_26552841…

什么是渲染?一文看懂,萌新赶紧收藏码住!

十四五规划提出“加快数字化发展&#xff0c;建设数字中国”&#xff0c;数字技术的快速发展&#xff0c;从起初的内容创建到最终的效果呈现&#xff0c;都离不开渲染技术。目前&#xff0c;渲染技术被广泛应用于教育、医疗、影视动画、建筑设计等多个领域。它能有效满足用户对…

docker基础1——架构组成、安装配置

文章目录 一、发展起源1.1 传统虚拟化与容器虚拟化1.2 docker底层核心技术1.2.1 命名空间1.2.2 控制组 1.3 docker工作方式1.4 docker容器编排1.5 docker优劣势1.6 docker架构组成 二、yum安装docker三、配置docker加速器 一、发展起源 背景了解&#xff1a; 容器是内核里的一项…

【Python】PyCharm中调用另一个文件的函数或类

&#x1f389;欢迎来到Python专栏~PyCharm中调用另一个文件的函数或类 ☆* o(≧▽≦)o *☆嗨~我是小夏与酒&#x1f379; ✨博客主页&#xff1a;小夏与酒的博客 &#x1f388;该系列文章专栏&#xff1a;Python学习专栏 文章作者技术和水平有限&#xff0c;如果文中出现错误&…

Langchain-ChatGLM配置文件参数测试

1 已知可能影响对话效果的参数&#xff08;位于configs/model_config.py文件&#xff09;&#xff1a; # 文本分句长度 SENTENCE_SIZE 100# 匹配后单段上下文长度 CHUNK_SIZE 250 # 传入LLM的历史记录长度 LLM_HISTORY_LEN 3 # 知识库检索时返回的匹配内容条数 VECTO…

leetcode 9 回文数

class Solution {public boolean isPalindrome(int x) {if(x < 0){return false;}int num x;int value 0;while(num > 0){value value * 10 num % 10;num num / 10;}return value x;} }

golang 日志库logrus和lumberjack 日志切割库实践

package mainimport (log "github.com/Sirupsen/logrus""gopkg.in/natefinch/lumberjack.v2" )func main() {logger : &lumberjack.Logger{// 日志输出文件路径Filename: "/var/log/myapp/foo.log",// 日志文件最大 size, 单位是 MBMaxSiz…

【问题解决】VSCode 远程安装插件特别慢

【问题描述】 我要配置 VSCode WSL 的开发环境&#xff0c;需要在 WSL 里也装上 C、CMake 系列的插件&#xff0c;如下图的直接下载方式特别慢&#xff1a; 【解决方法】 先去网站下载插件&#xff1a;https://marketplace.visualstudio.com/&#xff0c;后缀名&#xff1a;…

re学习(18)[ACTF新生赛2020]rome1(Z3库+window远程调试)

参考视频: Jamiexu793的个人空间-Jamiexu793个人主页-哔哩哔哩视频 代码分析&#xff1a; 其主要内容在两个while循环中&#xff08;从定义中可知flag位16个字符&#xff09;。 看第二个循环&#xff0c;可知是比较result和经过第一个循环得到的v1比较&#xff08;就是flag…

Django MultiValueDictKeyError 表单数据用request.POST 非表单数据用request.body

表单数据&#xff1a;Content-Type(请求头)为application/x-www-form-urlencoded的数据。 用request.POST获取 a request.POST.get(a) a request.POST[a] alist request.POST.getlist(a) 非表单数据&#xff1a;Content-Type(请求头)为非application/x-www-form-urlenco…