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 网络环境
  • wifi
  • 2G
  • 3G
  • 4G
  • 5G

3、测试机的选取原则

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 内存溢出与内存泄漏
  1. 内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;
  2. 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光;
  3. 二者的关系:memory leak会最终会导致out of memory!
2 冷启动与热启动
  1. 指app被后台杀死后,在这个状态打开app,这种启动方式叫做冷启动;
  2. 热启动:指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、工作流程

  1. 开发将打好的程序包上传到内测分发平台上
  2. 内测分发平台基于上传的安装包生成唯一的二维码
  3. 测试扫描此二维码即可进行下载、安装并测试

2、常见的内测分发平台

(2)线上发布平台

  • Andriod
    • 应用商店(华为、小米)
    • 豌豆荚
    • 360手机助手等
  • ios
    • APP Store
      注意:需要一定的审核过程、审核周期。

6)敏捷开发模式(了解)

(1)前置基础

  • 瀑布模型
  • 快速原型

(2)互联网的特点

  • 追求创新
  • 需求的高度不确定性

(3)移动互联网的解决方案

  • 快速的反馈机制
  • 快速试错
  • 思考:瀑布模型能解决移动互联网的痛点吗?

(4)敏捷开发模式

分阶段完成一件事,每一个阶段都是独立的功能

1、Scrum

APP项目前置知识

1 角色
  • 产品负责人(PO):主要是负责整理需求,需求的呈现形式为用户故事
  • Scrum Master(SM):负责带领团队完成相关任务
  • 开发团队(Dev Team)
    • 开发
    • 测试
    • UI/UE
2 输出物
  • 产品待办列表(用户故事)
  • 迭代待办列表
  • 产品增量(可工作的软件)
3 5个活动
  • 迭代(冲刺):大的事情拆小,拆分为阶段。
  • 迭代计划:确定迭代待办列表的内容,确定这次做哪些需求
  • 每日站会:借助看板技术达到团队共同更新任务状态及进度的目的。(昨天做了什么?今天做了什么?遇到了什么问题?)
  • 评审会
  • 回顾会

7)敏捷测试流程(一次迭代)

  1. 需求分析与评审
  2. 编写测试计划(测试方案)
  3. 设计测试用例与评审
  4. 执行测试用例与缺陷跟踪
  5. 编写测试报告
    每一次的迭代都要按照这个流程来

黑马头条项目说明

  1. 业务特性
  2. 用户与角色
  3. 组织架构图
  4. 技术栈

黑马头条测试流程(一次迭代)

测试流程

  1. 需求分析与评审
  2. 编写测试计划(测试方案)
  3. 设计测试用例与评审
  4. 执行测试用例与缺陷跟踪
  5. 编写测试报告

本轮迭代范围

  • 文章点赞评论(写评论、评论显示、点赞)
  • 图像上传
  • 实名认证

需求分析与评审

需求

  • 软件需求是指为用户解决某一问题或达到某一目标所需的软件功能

为什么要做需求评审?

  • 保证需求的完整、准确
  • 保证团队(开发、测试)对需求理解的一致性

怎样做需求评审?

需求评审会

参会人员

  • 项目经理/产品经理
  • 开发工程、架构师等
  • 测试工程师
  • UI/UE
  • 运维工程师(DEVOPS)
  • DBA

测试工程师在需求评审中的主要职责是什么?

  • 确认自己对需求要有清晰的理解,没有疑惑
  • 确认需求文档的完整与正确性,能够指导后期的工作
  • 对需求中不合理的地方提出自己的修改意见

黑马头条实名认证流程需求评审实战

第一轮需求评审

图1
  • 身份证正面照片与示例中的反面案例?
  • 包含身份证有效期的反面照不需要上传吗?
图2
  • 姓名与身份证号显示不对齐
  • 提示语位置超出界面范围
  • 识别后的姓名信息可以修改,但是证件号不可以进行修改
图3
  • 技术上存在疑惑,系统能实时给出实名认证判定结果?
图4
  • 认证通过以后应该是结束
  • 通过后,不需要返回上一步
图5
  • 认证不通过以后建议重新发起认证流程
  • 简化业务流程,认证失败后不需要返回上一步

第二轮需求评审

图1
  • 身份证的正反面的示例图片的修改
图6
  • 提示语错误,不应该是“支付失败”与实名认证完全无关
图1~图6
  • 流程节点(审核中)缺失,所有的图片都应该增加该节点状态
图4
  • 节点状态应该是审核中,而不是验证完成

编写测试计划(测试方案)

主要内容

  • 测试的概要说明
  • 测试进度及轮次安排
  • 测试策略(方案)
  • 测试风险分析
  • 测试各项标准