移动端测试分类

APP测试分类

业务功能测试

就是平时的功能测试。

APP专项测试

  • 兼容性测试
  • 安装,卸载,升级测试
  • 交叉事件测试
  • push消息推送测试
  • 性能测试
  • 其他测试
    • 用户体验
    • 极限,边界
    • 权限

业务功能测试

概念

按照用户的需求(需求说明书,原型等)去校验开发的代码实现是否满足用户的功能性需求。

测试对象

  • 功能点(单个模块)==》单元测试
  • 多模块==》集成测试
  • 业务流程 ==》系统测试、验收测试、冒烟测试

测试方法

  • 测试理论阶段与测试用例设计方法,即适用于web产品,也适用于APP产品。
  • 理论阶段设计测试用例8大方法:
    • 等价类
    • 边界值
    • 因果图
    • 判断表
    • 场景法
    • 流程图
    • 正交法
    • 错误推测法
  • 项目阶段适用的测试用例设计方法:
    • 等价类与边界值组合
    • 需求》测试点》测试用例(一个测试点就是一条测试用例)
    • 基于场景与业务流程设计测试用例

APP专项测试—兼容性测试

概念

APP产品在不同的软件环境和硬件环境上都有很好的可移植性(都能正常工作)。

测试关注点

手机型号

操作系统

  • Android
    • 5.x
    • 6.x
    • 7.x
    • 8.x
    • 9.x
    • 10.x
  • iOS
    • 12.x
    • 13.x
    • 14.x

屏幕分辨率、尺寸

分辨率

  • Android
    • 1080 * 1920
    • 720 * 1280
  • iOS
    • 1242 * 2208
    • 750 * 1334

尺寸

参考网站://www.woshipm.com/screen/

4.7

5.5

网络环境

  • WIFI
  • 2G
  • 3G
  • 4G
  • 5G

测试机的选取原则

  • 一定要在一定数量的真机上进行测试(资金充足,购买对应的真机)
  • 借助云测平台来进行测试(testin)(资金一般)
  • 模拟器
    • Genymotion
    • Xcode

信息的获取渠道

  • 第三方在线统计排名
  • 官方数据
  • 埋点技术

APP专项测试—交叉事件测试

概念

交叉测试又叫冲突测试或者干扰测试

是指一个功能正在执行过程中,另外一个事件或者操作对该过程进行干扰的测试。

测试的关注点

  • 拨打、接听电话
  • 接受、发送短信息
  • 插拔耳机
  • 网络切换
  • 系统自带应用的调用(相机,录音机)

APP专项测试—安装、卸载、升级测试

安装类型

  • Android:.apk

  • iOS:.ipa

安装渠道

  • Android
    • 应用商城(各种手机品牌)
    • 应用宝,手机助手
    • 官方网站下载
  • iOS
    • App Store

安装测试关注点

正常情况

  • 正常安装测试,检查是否安装成功
  • APP版本覆盖测试
  • 回退版本测试
  • 在不同的手机型号、系统、屏幕大小、分辨率上的手机进行安装
  • 安装完成后,能否正常启动应用程序
  • 安装完成后,重启手机能否正常启动应用程序

异常情况

  • 内存不足时进行安装
  • 安装过程中的意外影响情况(强行断电、断网、接听电话等)
  • 能否取消安装

卸载测试关注点

正常情况

  • 用自己的卸载程序进行卸载,检查是否卸载干净
  • 用第三方工具,检查是否卸载干净
  • 卸载后再次安装,是否正常使用

异常情况

  • 卸载中出现异常情况能否恢复(手机关机、内存不足、没电等),程序是否还能运行
  • 卸载后是否有残留,是否能够再次进行安装
  • 是否可以取消卸载,软件恢复使用

升级测试关注点

更新版本需要提示用户

  • 在设置中版本信息中红点提示

考虑是否进行强制升级

  • 软件存在严重的缺陷需要强制升级
  • 软件不能向前兼容时(如新版本有新功能,但是低版本不兼容,必须升级)

考虑是否跨版本升级

  • v5.0 ==> v6.0 ==> v7.0
  • 是否支持直接从5.0版本升级到7.0

APP专项测试—push消息推送测试

概念

push即为消息推送测试,主要目的就是为了唤醒或提醒用户。

对象

  • 全部推送
  • 部分推送
  • 精确推送

消息形式

  • 弹窗
  • 消息通知栏

测试关注点

  • push消息应该按设定规则发送给特定用户
  • APP在后台运行时,应该能正常收到其push消息
  • 设备锁屏状态下,应能正常收到APP的push消息
  • 设备网络断开后再一次建立连接时,应能收到push消息
  • 系统设置不接收该APP通知消息时,用户不应该再收到push消息

APP专项测试—性能测试

性能测试指标

  • 内存
  • CPU
  • 手机流量
  • 手机电量
  • 启动速度
  • 界面切换速度

测试的关注点

  • APP的启动时间是否过长
  • APP使用时对CPU、内存的占用情况(Android性能检测工具:Emmagee)
  • APP使用时,电量流量的消耗情况
  • 反复长期操作情况下,系统资源的使用情况

APP专项测试—稳定性测试

由于app软件是安装在手机的操作系统之上的,为了保证app能够在长时间内运行操作不会出问题,所以需要做稳定性测试,稳定性测试需要用到monkey工具,monkey工具是基于命令行的方式运行的,通过这个工具长时间来操作对应的app,以此来检测app会不会出现假死(ANR)或者崩溃的问题。

APP专项测试—弱网测试

概念

弱网测试是指手机app在网络不好的场景下,运行操作app,以此检测app会不会出现异常闪退、假死、以及异常提示信息等各种情况,弱网测试的重点是要模拟出各种复杂的弱网环境,一般都会借助于一些工具来模拟弱网环境,比如fiddler、charles等工具。

原理

通过fiddler来模拟限速

  • fiddler本来就是个代理,它提供了客户端请求前和服务器响应前的回调接口
  • fiddler的模拟限速是在客户端请求前自定义限速,通过延迟发送数据或接收的数据的时间来限制网络的下载速度和上传速度,从而达到限速的效果。

步骤(fiddler)

  • 打开fiddler,设置代理
  • 手机连接和电脑连接在同一个局域网内
  • 手机设置代理,ip为电脑的ip,端口为fiddler代理开发的端口
  • 打开fiddler网速模式开光(Rules->Performances->Simulate Modem Speeds)
  • 手机访问APP,或者用手机浏览器访问网络,观察功能响应或者页面刷新速度
  • 如果需要自定义网络的速度,需要到自定义规则中配置(Rules->Customize Rules)

APP专项测试—其他测试

用户体验

  • 界面的美观性
  • 保持登录
  • 页面的层级关系不能过深(4层左右)

边界(极限测试)

  • 电量不足
  • 内存不足

权限测试

  • 摄像头权限
  • 相册权限
  • 位置权限
  • 通讯录权限

熟悉APP项目的步骤

  • 业务特性(这个APP是干嘛的)
  • 项目角色与用户(面向的用户)
  • 项目组织架构图(都有些什么功能)
  • 技术栈(都用到什么技术)

app测试流程

  • 需求评审
  • 编写测试计划
  • 测试用例设计与编写
  • 执行用例与缺陷跟踪
  • 编写测试报告

APP发布平台

内测分发平台

工作流程:

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

常见的内测分发平台:

线上发布平台

  • Android
    • 应用商店
    • 手机助手
    • 官网
  • iOS
    • APP Store

面试题

内存溢出与内存泄漏

  • 内存溢出(out of memory):是指程序在申请内存时,没有足够的内存空间供其使用。
  • 内存泄漏(memory leak): 是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏危害可以忽略,但是内存泄漏堆积后果很严重,无论内存有多少,迟早会用完,最后就会出现内存溢出。
  • 两者关系:内存泄漏最终会导致内存溢出。

冷启动与热启动

  • 冷启动:指APP被后台杀死后,在这个状态下打开APP;
  • 热启动:APP没有没后台杀死,仍然在后台运行,在这个状态下再次打开这个APP。

web测试与APP测试的差异

  • APP的兼容性测试尤为重要:由于手机品牌、手机型号存在过多的差异,导致APP端测试需要考虑的更多,如:分辨率、系统版本、手机品牌、尺寸等。
  • APP性能测试指标不一样:除了需要考虑和web一样的CPU、内存外,还要考虑电量、流量消耗、GPU渲染等。
  • APP网络测试场景较复杂:如 2G、3G,、4G、5G、WiFi、弱网环境等。
  • APP基于手机载体存在的交叉事件测试、前后台切换、安装/卸载/升级测试。
  • APP基于手机载体一些特有的操作习惯测试,如:横竖屏切换、多点触控、事件触发区域等。