APP项目前置知识
APP项目前置知识
一、APP手工项目前置内容
1)今日目标
- 熟悉APP测试范围
- 掌握APP专项测试
- 了解app测试环境与发布平台
- 了解敏捷开发模型
- 掌握敏捷测试流程(一次迭代)
- 进一步理解需求评审的重要性
2)APP概念
Application的缩写,APP指智能手机的应用程序,如微信、支付宝等
3)APP测试范围
(1)APP测试分类
- 业务功能测试
- APP专项测试
- 兼容性测试
- 安装、卸载、升级测试
- 交叉事件测试
- 交叉测试又叫事件或冲突测试,是指一个功能正在执行过程中,同时另外一个事件或操作对该过程进行干扰的测试。如;App在前/后台运行状态时与来电、文件下载、音乐收听等关键运用的交互情况测试等。交叉事件测试非常重要,能发现很多应用中潜在的性能问题。
- Push消息推送测试
- 性能测试
- 其他测试
- 用户体验
- 极限、边界
- 权限
(2)业务功能测试
1、概念
按照用户的需求(需求说明书、原型等)去检验开发的代码实现是否满足用户的功能性需求。
2、测试对象
- 功能点(单独模块)==》单元测试
- 多模块==》集成测试
- 业务流程==》系统测试、验收测试、冒烟测试
3、测试方法
- 测试理论阶段与测试用例设计方法等即适用于WEB产品,也适用于APP产品。
- 理论阶段设计测试用例8大方法:
- 等价类
- 边界值
- 因果图
- 判定表
- 场景法
- 流程图
- 正交法
- 错误推测法
- 项目阶段适用的测试用例设计方法:
- 等价类与边界值组合
- 需求==》测试点==》测试用例(一个测试点就是一条测试用例)
- 基于场景与业务流程设计测试用例
(3)APP专项测试——兼容性测试
1、概念
APP产品在不同的软件环境与硬件环境上都有很好的可移植性(都能正常工作)。
2、测试关注点
1 手机型号
- 参考在线统计数据,根据数据确定测试的机型
2 操作系统
以客户需求为准,若客户没有需求,则参照统计数据
- Android
- 4.X
- 5.X
- 6.X
- 7.X
- 8.X
- 9.X
- iOS
- 11.X
- 12.X
3 屏幕分辨率、尺寸
参考在线统计数据
3.1屏幕分辨率
- Android
- 1080x1920
- 720x1280
- IOS
- 2208*1242
- 1334*750
3.2尺寸
- 4.7
- 5.5
参考网站:http://www.woshipm.com/screen/
4 网络环境
- wifi
- 2G
- 3G
- 4G
- 5G
3、测试机的选取原则
- 一定要在一定数量的真机上进行测试
- 借助testin等云测平台(https://www.testin.cn/business/landing/machine.htm)
- 模拟器
- Genymotion(http://www.genymotion.net/)
- Xcode
4、信息的获取渠道(扩展)
- 第三方在线统计排名(腾讯移动分析、百度研究院等)
- 官方数据(android、ios的官网)
- 埋点技术(技术手段)
(4)APP专项测试——交叉事件测试
1、概念
交叉测试又叫冲突测试或者干扰测试。
是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。
2、测试的关注点
- 拨打/接听电话
- 接收/发送短信息
- 插拔耳机
- 网络切换
- 系统自带应用(摄像头、计算器等)
(5)APP专项测试——安装、卸载、升级测试
1、安装类型
- Andriod:.apk
- ios: .ipa
2、安装渠道
- Andriod
- 应用商城(小米、华为、vivo等)
- 豌豆荚
- 应用宝、360手机助手等
- ios
- APP Store
3、安装测试测试关注点
1 正常情况
- 正常安装测试,检查是否安装成功
- APP版本覆盖测试
- 回退版本测试
- 在不同型号、操作系统、屏幕大小、分辨率上的手机进行安装
- 安装完成后,能否正常启动应用程序
- 安装完成后,重启手机能否正常启动应用程序
2 异常情况
- 安装时内存不足
- 安装过程中的意外情况(强行断电、断网、来电话了、查看信息)等等
- 能否取消安装
4、卸载测试关注点
1 正常情况
- 用自己的卸载程序进行卸载,检查是否卸载干净
- 用第三方工具,检查是否卸载干净
- 不同系统、硬件环境、网络环境下进行卸载
- 卸载后再次安装,是否正常使用
2 异常情况
- 卸载中出现异常情况能否恢复(比如手机关机,内存、没电等),程序是否还能运行
- 卸载后是否有残留,是否能够再次进行安装
- 是否可以取消卸载 软件恢复使用
5、升级测试关注点
1 更新版本需要提示用户
2 考虑是否进行强制升级
- 软件存在严重缺陷
- 软件不能够向前兼容
3 是否能够跨版本升级
- V5.0 ==》 V6.0 ==》 V7.0
6、断点续传
程序下载中间断开(断网,关机),恢复后,能够接着原来的内容继续下载。
(6)APP专项测试——push消息推送测试
1、概念
push即为消息推送测试,主要目的就是为了唤醒或提醒用户
2、对象
- 全部推送
- 部分推送
- 精确推送
3、消息形式
- 弹窗
- 消息通知栏
4、测试关注点
- Push消息应该按设定规则发送特定用户
- APP在后台运行时,应能正常收到其Push消息
- 设备锁屏状态下,应能正常收到APP的Push消息
- 设备网络断开后再一次建立连接时,应能收到Push消息
- 系统设置不接收该APP通知消息时,用户应该不再收到Push消息
(7)APP专项测试——性能测试
1、性能测试指标
- 内存
- CPU
- 流量
- 电量
- 启动速度
- 界面切换速度
2、测试的关注点
- APP的启动时间是否过长;
- APP使用时对CPU、内存的占用情况;
- APP使用时,电量流量的消耗情况;
- 反复长期的操作情况下,系统资源的使用情况。
3、面试题(扩展)
1 内存溢出与内存泄漏
- 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;
- 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光;
- 二者的关系:memory leak会最终会导致out of memory!
2 冷启动与热启动
- 指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动;
- 热启动:指app没有被后台杀死,仍然在后台运行,通常我们再次去打开这个app,这种启动方式叫热启动。
(8)APP专项测试——其他测试
1、用户体验
1 测试关注点
- 界面的美观性
- 保持登录(APP)
- 页面层级关系在4层左右
2、边界(极限测试)
1 测试关注点
- 电量不足(<5%)
- 内存不足
3、权限测试
1 测试关注点
- 摄像头权限
- 相册权限
- 位置权限
- 通讯录权限
(9)Web测试与APP测试的差异性(面试题)
- APP的兼容性测试尤为重要:由于手机厂商生产的手机型号及相关软硬件存在千千万万的差异性,进而APP端需要着重考虑分辨率、系统版本、尺寸、主流机型等等;
- APP性能测试指标不一样:除了需要和web一样考虑APP客户端的性能外,我们还需要考虑电量、流量的消耗、GPU渲染等;
- APP网络测试场景的复杂性:如2G、3G、4G、5G、wifi、弱网环境等
- APP基于手机载体存在的交叉事件测试、前后台切换、安装/卸载/升级测试
- APP基于手机载体特有的一些用户操作习惯类测试,如横竖屏切换、多点触控、事件触发区域等
4)APP测试环境
(1)APP的项目环境
- 开发环境==》开发工程师
- 测试环境==》测试工程师
- 生产/线上环境==》运维工程师
(2)APP项目环境与项目流程的对照关系
- 开发(开发环境)》测试(测试环境)》上线(生产/线上环境)
5)APP发布平台
(1)内测分发平台
1、工作流程
- 开发将打好的程序包上传到内测分发平台上
- 内测分发平台基于上传的安装包生成唯一的二维码
- 测试扫描此二维码即可进行下载、安装并测试
2、常见的内测分发平台
- 蒲公英(https://www.pgyer.com/)
- fir.im(https://fir.im/)
(2)线上发布平台
- Andriod
- 应用商店(华为、小米)
- 豌豆荚
- 360手机助手等
- ios
- APP Store
注意:需要一定的审核过程、审核周期。
- APP Store
6)敏捷开发模式(了解)
(1)前置基础
- 瀑布模型
- 快速原型
(2)互联网的特点
- 追求创新
- 需求的高度不确定性
(3)移动互联网的解决方案
- 快速的反馈机制
- 快速试错
- 思考:瀑布模型能解决移动互联网的痛点吗?
(4)敏捷开发模式
分阶段完成一件事,每一个阶段都是独立的功能
1、Scrum
1 角色
- 产品负责人(PO):主要是负责整理需求,需求的呈现形式为用户故事
- Scrum Master(SM):负责带领团队完成相关任务
- 开发团队(Dev Team)
- 开发
- 测试
- UI/UE
2 输出物
- 产品待办列表(用户故事)
- 迭代待办列表
- 产品增量(可工作的软件)
3 5个活动
- 迭代(冲刺):大的事情拆小,拆分为阶段。
- 迭代计划:确定迭代待办列表的内容,确定这次做哪些需求
- 每日站会:借助看板技术达到团队共同更新任务状态及进度的目的。(昨天做了什么?今天做了什么?遇到了什么问题?)
- 评审会
- 回顾会
7)敏捷测试流程(一次迭代)
- 需求分析与评审
- 编写测试计划(测试方案)
- 设计测试用例与评审
- 执行测试用例与缺陷跟踪
- 编写测试报告
每一次的迭代都要按照这个流程来
黑马头条项目说明
- 业务特性
- 用户与角色
- 组织架构图
- 技术栈
黑马头条测试流程(一次迭代)
测试流程
- 需求分析与评审
- 编写测试计划(测试方案)
- 设计测试用例与评审
- 执行测试用例与缺陷跟踪
- 编写测试报告
本轮迭代范围
- 文章点赞评论(写评论、评论显示、点赞)
- 图像上传
- 实名认证
需求分析与评审
需求
- 软件需求是指为用户解决某一问题或达到某一目标所需的软件功能
为什么要做需求评审?
- 保证需求的完整、准确
- 保证团队(开发、测试)对需求理解的一致性
怎样做需求评审?
需求评审会
参会人员
- 项目经理/产品经理
- 开发工程、架构师等
- 测试工程师
- UI/UE
- 运维工程师(DEVOPS)
- DBA
测试工程师在需求评审中的主要职责是什么?
- 确认自己对需求要有清晰的理解,没有疑惑
- 确认需求文档的完整与正确性,能够指导后期的工作
- 对需求中不合理的地方提出自己的修改意见
黑马头条实名认证流程需求评审实战
第一轮需求评审
图1
- 身份证正面照片与示例中的反面案例?
- 包含身份证有效期的反面照不需要上传吗?
图2
- 姓名与身份证号显示不对齐
- 提示语位置超出界面范围
- 识别后的姓名信息可以修改,但是证件号不可以进行修改
图3
- 技术上存在疑惑,系统能实时给出实名认证判定结果?
图4
- 认证通过以后应该是结束
- 通过后,不需要返回上一步
图5
- 认证不通过以后建议重新发起认证流程
- 简化业务流程,认证失败后不需要返回上一步
第二轮需求评审
图1
- 身份证的正反面的示例图片的修改
图6
- 提示语错误,不应该是“支付失败”与实名认证完全无关
图1~图6
- 流程节点(审核中)缺失,所有的图片都应该增加该节点状态
图4
- 节点状态应该是审核中,而不是验证完成
编写测试计划(测试方案)
主要内容
- 测试的概要说明
- 测试进度及轮次安排
- 测试策略(方案)
- 测试风险分析
- 测试各项标准