《移动端App手工测试项目实战(学车不APP)》视频学习目标:
1.APP测试基础知识
2.《学车不》App项目
1)app应用测试要点
2)业务功能测试
3)兼容性测试
4)安装卸载升级测试
5)交叉事件测试
6)Push消息测试
7)性能测试
移动端App手工测试项目实战(学车不APP),最新2021教学视频(含Scrum敏捷开发流程、性能测试、稳定性测试)_哔哩哔哩_bilibili
视频http://yun.itheima.com/course/826.html?stt
资料链接:https://pan.baidu.com/s/1b5YIpzBook_aviHcZT2gAw
提取码:o5q6
APP测试基础知识
了解APP项目的应用架构和项目环境
掌握基于敏捷开发的测试流程
掌握APP测试的要点,熟悉各专项测试项目的关注点
熟悉GT工具的使用,能使用GT进行各项性能测试
一、APP应用系统架构
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应用发布(前端)
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的各个功能的实现。
隐性需求:
相关业务:功能影响到的相关业务
其他角度:分支流程、逆向操作、异常操作
补充精简:测试策略、业务知识、测试经验
兼容性测试
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兼容
后台在播放音乐时,进入动态页面点击动态视频的播放,系统如何处理
第三方平台测试
安装卸载升级测试
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消息测试
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简介:
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
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启动的时间
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
版本功能优化