《移动端App手工测试项目实战(学车不APP)》视频学习目标: 1.APP测试基础知识 2.《学车不》App项目 1)app应用测试要点 2)业务功能测试 3)兼容性测试 4)安装卸载升级测试 5)交叉事件测试 6)Push消息测试 7)性能测试
移动端App手工测试项目实战(学车不APP),最新2021教学视频(含Scrum敏捷开发流程、性能测试、稳定性测试)_哔哩哔哩_bilibili
https://blog.csdn.net/itcast_cn/article/details/112902162
视频http://yun.itheima.com/course/826.html?stt 资料链接:https://pan.baidu.com/s/1b5YIpzBook_aviHcZT2gAw 提取码:o5q6
APP测试基础知识
了解APP项目的应用架构和项目环境 掌握基于敏捷开发的测试流程 掌握APP测试的要点,熟悉各专项测试项目的关注点
熟悉GT工具的使用,能使用GT进行各项性能测试
App应用架构
- APP 应用架构:客户端程序+应用服务器+数据库
- App 与 web 系统应用架构相比
相同点: 1、APP和web使用的后端服务器是相同的 2、前后端都使用HTTP协议进行交互 (也有部分APP用socket来交互) 不同点: 1、APP是C/S结构,web浏览器是B/S结构 2、APP前后端交互的数据格式以ison为主,web前后端交互的数据格式以HTML为主
APP项目环境及发布平台 一、APP项目环境(后端) 一般公司内部开发、测试人员会使用不同的环境,以隔离工作过程中彼此之间的干扰。同时,上线给用户使用的产品也会单独部署环境。 - 开发环境 指开发人员进行开发时调试运行的环境 - 测试环境 提供测试人员使用,用于测试人员执行测试,回归缺陷。 - 预发布环境 这个环境中,一般会连接生产环境的数据库,使用生产环境的数据来进行测试 - 生产环境 指正式提供对外服务的环境,产品的实际用户使用的环境 预发布环境过后,正式发布生产环境之前,一般会进行灰度发布。灰度发布:由于一个项目,一般线上部署时有多台机器运行,所以灰度1台至三台,看看新功能是否OK,如果失败则只需要回滚几台,比较方便
APP开发完成后,相应的开发人员会打出应用程序包,由测试人员安装测试。 测试人员
-
安卓:APK测试包
-
IOS:IPA测试包
应用内测分发平台 在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些免费的应用内测分发平台。将应用测试包上传到这些平台上,可以生成对应的二维码,直接扫码进行应用安装
-
蒲公英
-
fir.im
应用线上发布平台 产品测试完成后要在线上进行发布,让用户进行下载使用。下面是安卓和IOS应用常用的发布平台和渠道:
- 安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等;
- IOS应用:主要有Appstore、iTools
三、Scrum敏捷开发流程
Scrum介绍 学习目标:学握Scrum的三种角色 学习目标:熟悉敏捷开发流程 下面以Scrum为例简单介绍下敏捷开发流程 Scrum是一个敏持开发框架,是一个增量的,迭代的开发过程,在这个框架中,整个开发周期包括若干个小的迭代周期,每个小的选代周期成为一个Sprint(sprint: 项目开发过程中最小这代周期),每个Sprint的周期建议为2-4周。在Scrum中,将产品Backlog(产品待办列表)按商业价值排出需求列表,在每个送代中开发团队从产品Backlog挑选最有价值的需求进行开发,实现完成后产品推出市场,进入下一个迭代。
Scrum的三种角色: Product owner(产品负责人)
定义所有的产品功能 决定产品发布的内容及日期 根据市场变化对需要开发的功能排列优先顺序
Scrum Master(项目经理)
领导团队完成scrum的实践以及体现其价值 确保团队的人胜任其工作,并保持高效的生产率 保护团队不受外界无端影响
Dev Team(开发团队)
规模(经典团队一般5到9人) 成员组成: 程序员 测试员 用户体验设计师 主要职责: 卖现客户需求
scrum 敏捷开发流程:
1、产品负责人收集需求,转化为产品功能列表 2、启动迭代的计划会,评审产品功能列表,挑选优先级高的需求作为迭代任务 3、项目组成员完成迭代任务的开发、测试工作 4、迭代结束后,开评审会,评估当前迭代任务的完成情况 5、开反思会。总结迭代过程中的好的与不好的地方。 下一迭代,循环 2-5步
对于APP项目的测试,一般是进行系统测试。 系统测试的要点一般包括如下这些方面
显性需求 根据软件说明,设计文档或用户需求验证App的各个功能的实现。 隐性需求: 相关业务:功能影响到的相关业务 其他角度:分支流程、逆向操作、异常操作 补充精简:测试策略、业务知识、测试经验
兼容性测试 APP在不同的机型上由于软件、硬件等不同可能出现各种各样的问题,因此需要做兼容性测试。 兼容性测试关注点
1、手机型号
- 覆盖市场主流机型 (Android: 三星,小米,OPPO,华为)
- 考虑APP线上用户机型排名
2、系统版本
- 安卓系统 4.4、5.1、6.0、7.0
- ios系统 9.x、10.x、11.x、12.x
3、屏幕尺寸,分辨率
- 分辨率 1080x1920、720x1280
- 屏幕尺寸 5.5、4.7
4、网络 2G、3G、4G、WIF
5、应容性
-
与手机硬件兼容 home键、电源键、音量调节等
-
与外部硬件设备兼容 耳机、蓝牙等
-
与操作系统软件兼容 wlan设置、系统时间调节、LBS定位等
-
与其他APP兼容 后台在播放音乐时,进入动态页面点击动态视频的播放,系统如何处理
第三方平台测试
https://www.testin.cn/
APP是客户端程序,客户端程序就需要提前进行安装才能使用,因此需要测试安装、卸载、升级操作。 安装测试关注点 正常场景: 1、在不同的操作系统版本上安装 2、从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装) 3、不同的安装路径 (安装到手机上、安装到SD卡上)异常场景 4、安装时出现异常(关机、断网),恢复后能否继续安装 5、安装时存储空间不足 6、安装时手动取消后再次安装 7、正在运行时覆盖安装 8、低版本覆盖安装高版本 9、卸载后安装
卸载测试: 1、正常卸载(APP手动卸载、工具卸载) 2、运行时卸载 3、取消卸载 4、卸载异常中断 5、卸载后无数据残留
升级测试: 1、从临近版本升级 2、跨版本升级 3、不同渠道升级 (应用商场、手机助手) 4、升级提醒成功 (可不提醒、可以提示升级、强制升级) 5、应用内升级时非WIFI提醒 升级后要观察升级前的数据正常 (当数据结构改变而开发没有处理好时很容易出现升级前的数据混乱)
交叉测试又叫冲突测试或者干扰测试。 是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。例如: 在App前台/后台运行同时接听来电或者下载文件等等
交叉事件测试关注点 如何测试: 模拟用户场景 (所有可能会影响APP正常运行的场景) 1、APP运行时接打电话; 2、APP运行时收发信息; 3、APP运行时查看应用推送 4、APP运行接上蓝牙设备 5、APP运行时接收文件弹窗提醒 6、APP运行时旋转屏幕 7、APP运行时切换网络 (4G、Wi-Fi) ; 8、App运行时使用相机、计算器等手机自带应用; 9、App运行时电量告警、插拔充电器。
Push消息推送基础知识 APP使用push消息的原因: 消息推送场景: 产品角度:功能需要,如: 资讯类产品的新闻推送、工具类产品的公告推送等等运营角度: 活动
运营需要,如: 电商类产品的促销活动;召回用户/提高活跃度等等
消息推送原理:
Push消息推送的实质: 实际上,是当服务器有新消息需推送给用户时,先发送给应用App,应用App再发送给用户。
push消息推送的方式 1 操作系统级别的消息推送服务 ios: Android: C2DM (Cloud to Device Messaging)
应用的后台服务器 ——> 消息推送服务 ——> 手机 ——> 应用app
2 用第三方推送平台 手机厂商类:小米推送、华为推送。第三方平台类:友盟推送、极光推送、云巴 (基于MQTT)BAT大厂的平台推送: 阿里云移动推送、腾讯信鸽推送、百度云推送
3 自己搭建推送服务器 好处:功能好、性能强、安全性高 缺点:成本高
push 消息推送的方式:
1、操作系统自建的 push 服务器 2、第三方的 push 服务器
3、自建 push 服务器(安全、稳定、高效、成本高)
push推送设置:
APP服务器设置
push消息针对不同的用户群体: 全部用户、部分用户、特定用户
手机端设置
push消息推送是否接收通知,提醒位置等
push消息测试关注点 1、Push消息是否按指定业务规则发送; 2、当Push消息是针对特定用户时,检查收到的Push与用户身份是否相符
3、设置不接收推送消息时,用户是否会收到Push消息; 4、设置push消息显示的位置,是否与配置一致 5、收到push消息,是否能正常打开。 6、APP在前台使用时,收到push消息如何提示
7、APP在后台运行时,收到push消息如何提示
8、APP离线,是否能收到PUSH消息。
性能测试 性能是衡量APP质量的一个重要指标 APP性能测试常见指标: 内存,CPU,流量,电量,启动速度,流畅度等。
性能测试关注点 APP使用时对CPU、内存的占用情况 APP使用时是否流畅等 APP使用时,电量流量的消耗情况; APP的启动时间是否过长;
GT简介: GT(随身调)Android版是腾讯 MIG 专项测试组自行研发的A 随身调测平台,它是直接运行在手机上的“集成调测环境”ITE,Integrated Test Environment)。 之所以叫“集成调测环境”,是因为仅用 GT即可独立完成如下针对 AUT 的测试工作:
- 基础性能测试: 手机整机或者手机上安装的任何一个 APP 的 CPU、内存、网络流量、流畅度/率、电量等基础性能指标的实时展示、历史数据采集及 excel 格式存储、曲线绘制等
- 日志查看: APP的 Logcat 日志查看,便于直接用手机现场定位 APP 功能异常、crash。·网络数据包抓包: 直接用手机抓包保存成 pcap 文件,下载到 PC 后用 Wireshark 查看
GT安装: GT有两种版本: (1)可独立安装的 GT (APK,IOS无该版本),像普通APP一样安装
(2)GT SDK: 将GT的SDK嵌入到被调测的应用的工程里
GT使用: 性能测试工具 GT 的基本使用: 安装:手机有 root 权限 (1)进入 AUT 界面,配置要监控的指标 (2)进入参数页面,选择要统计的参数,选择需要实时监控的数据 (3)配置日志开头为 logcat 为 on (4进入APP进行测试 (5)回到 GT 界面,在参数界面看查看监控指标的数据统计
(6)进入日志,查看响应的日志记录
APP性能测试工具——GT 使用方法_Bruce小鬼的博客-CSDN博客_gt工具兼容性
CPU关键指标:GT工具提供了两个CPU的监控指标: CPU和jiffies
CPU:
用户态:应用程序占用的CPU时间
系统态:系统内核占用的CPU时间
空闲态:空闲进程占用的CPU时间(idle process)
CPU使用率=非空闲态/CPU总时间=(用户态+系统态)/CPU总时间
jiffies:
从开机到目前为止应用程序占用的CPU的总时间片。
CPU问题产生的影响:
1、CPU长时间超过90% 2、手机发热、耗电量增加 3、手机卡顿、出现ANR(Application Not Responding)
CPU测试的步骤:
(1)打开GT,配置CPu的监控指标
(2)进入被测APP,进行相关的业务操作
(3)进入GT,查看CPU的监控统计(先看曲线图)
(4)收集CPU详细数据并分析
实战:
1-037-性能测试—CPU测试的步骤_哔哩哔哩_bilibili
监控结果保存到目录文件的步骤: (1)打开模拟器桌面上的 文件管理器 (2)在文件管理器内,自己找你需要导出的文件,然后点击勾。 (3)连续点击返回按钮,一直到文件管理器的根目录下 (4)点击mnt文件夹,点击shared文件夹,然后点击other文件夹,再点击点击粘贴此选项。 (5)出现表示粘贴成功,再点击我的电脑 按钮,点击打开文件夹,就可以看到刚刚保存的文件了
1-038-监控结果保存到目录文件_哔哩哔哩_bilibili
内存关键指标: GT工具提供了两个内存的监控指标: PSS和Private dirty
Private dirty (私有内存): 进程独占内存,也就是进程销毁时可以回收的内存容量
PSS (实际使用内存) : 将跨进程共享页也加入进来,进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。
内存问题:
1、内存泄漏:程序操作时申请内存,操作结束后内存未全部释放
一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。
2、内存溢出:程序操作时申请内存,但是此时内存不够,不能满足申请的要求,就出现内存溢出。
内存问题出现的现象:
1、实际使用内存PSS持续增长
2、程序崩溃(出现crash,可能是内存溢出)
内存测试的步骤:
1、打开GT工具,配置内存相关的指标
2、打开被测APP,测试相关业务,监控内存指标
3、打开GT,查看内存监控数据(曲线)
4、收集内存相关的数据,并分析
1-041-性能测试—内存测试的步骤_哔哩哔哩_bilibili
流畅度的重要指标:
FPS:每秒渲染的帧数。
流畅度问题的影响:
表现形式:卡顿
FPS指标的数据要求:
通常要求在24帧/s以上,保证流畅。(动作连续10-12帧、最高60帧/s)
流畅度测试的步骤: 1、打开GT,配置流畅度指标FPS 2、打开被测APP,滑动页面,统计FPS值 3、进入GT,查看流畅度曲线 4、收集滑动操作时的流畅度数据,计算平均值。(24帧/s——60帧/s之间就是正常的)
1-043-性能测试—流畅度测试的步骤_哔哩哔哩_bilibili
流量:手机通过运营商上网时,运营商的网络替我们转发报文,报文包括上下行的报文。
GT工具提供了流量的监控指标: NET
常用流量测试方法: 1 统计测试法 获取应用程序收发的数据报文,统计出对应的流量 2抓包测试法 主要是利用工具 Tcpdump 或者fiddler抓包,导出 pcap 文件,再在 wireshark 中打开进行分析
流量测试的步骤:
(1)打开GT,配置流量指标NET
(2)进入GT的插件tab,选择抓包,开始
(3)进入被测APP,进行相关的业务测试
(4)进入GT,查看NET指标的流量曲线
(5)手机抓包的报文,进行进一步分析
1-045-性能测试—流量测试的步骤_哔哩哔哩_bilibili
场景的流量优化方法: 1 数据的压缩 2 不同数据格式的采用。 3 控制访问的频次 4 只获取必要的数据 5 缓存机制 6 针对不同的网络类型设置不同的访问策略 面试题; 打开页面迷度过慢,如何优化?
电量测试: 测试移动APP消耗电量的快慢速度。主要通过测试APP使用时的平均电流(对手机而言,总电量是固定的mAh),来计算APP电量消耗的大小。 GT提供了几个指标:电流、电压、电量和温度 常见的耗电场景: 定位GPS 网络传输(4G、wifi) 屏幕亮度 CPU频率 内存调度机制 锁屏、解锁
电量测试的步骤: (1)打开GT,进入插件tab,点击电量收集 (2)配置电量收集的频率、亮度、收集的数据指标 (3)进入被测APP,进行相关的业务操作 (4)进入GT,收集电量的相关数据来进行分析。
电量结果的分析: (1)与基准数据做对比(可以来源于产品经理、或者来源于历史数据积累) (2)横向对比(竞品分析对比)
冷启动:app从后台被杀死,此时再打开app,记录app启动的时间 热启动:app在后台运行,此时再打开app,记录APP启动的时间
APP启动时间的测试方法:
1-051-性能测试—APP启动时间的测试方法_哔哩哔哩_bilibili
adb命令:
adb shell am start -W -n 包名/Activity名(学车不为:com.bjcsxq.chat.carfriend/.module_main.activity.MainActivity)
三个重要时间指标:
Thistime:当前activity的时间
Totaltime:APP启动时间:包括创建进程、APP初始化、activity初始化到界面显示。
waittime:totaltime+前一个activity pause时间
APP启动时间结果的分析: (1)与基准数据对比(历史数据分析) (2)横向对比(竞品数据对比)
用户体验测试关注点 (1) UI界面测试 对照UI交互设计文档,检查每个界面设计菜单、对话框、窗口、风格、布局等 注意事项: 图片、按钮(选中效果)、字体大小、颜色、居中对齐等等 (2) 易用性测试 是否有空数据界面设计,引导用户去执行操作 菜单层次是否太深 交互流程分支是否太多
完成业务操作的步骤是否过多
界面中按钮可点击范围是否适中
是否定义Back的逻辑。涉及软硬件交互时,Back键应具体定义 (3) 横竖屏测试 横竖屏的切换是否正常 (针对每个页面都要做横竖屏测试)
特别要关注APP中有表格,因为横竖屏的显示宽度不一样 (4)关注手机应用上的其他辅助功能
可以重点关注“放大字体”、反色”、“语音转换”、多点触碰等功能
通过长时间对应用程序进行无序操作,检验应用程序是否会出现异常。如闪退crash、无响应ANR等
稳定性测试工具一-Monkey Monkey是一个命令行工具,是由安卓官方提供的 测试人员可以通过Monkey来模拟用户的触摸、点击、滑动以及系统按键等操作(操作事件都是随机的),从而实现对APP压力的测试和稳定性测试。 (具体Monkey的使用在后续app自动化章节介绍)开发人员结合monkey 打印的日志和系统打印的日志,修改测试中出现的问题。
稳定性测试的时机 一般需要等产品稳定了,bug比较少的时候,再用monkey去测试待测试应用的稳定性。
如何测试APP?
1、业务功能测试
2、兼容性测试
3、安装卸载升级测试
4、交叉事件测试
5、用户体验测试
6、PUSH消息测试
7、性能测试(CPU、内存、流量、电量、流畅度、启动速度)
8、稳定性测试
发布上线后,工作:
跟踪用户反馈
处理线上bug
本文地址:http://nhjcxspj.xhstdz.com/quote/3153.html 物流园资讯网 http://nhjcxspj.xhstdz.com/ , 查看更多