欢迎光临
我们一直在努力

APP功能与专项测试实战:从功能验证到性能稳定性全覆盖

APP测试

一、APP测试简介

1.1介绍

1.1.1APP与Web的区别

系统架构:APP是C/S结构,web是B/S结构

C/S( Client/Server ) :即客户端/服务器,需要下载安装客户端。

B/S( Browser/Server ):即浏览器/服务器,基于浏览器访问。

1.1.2APP测试范围

1.2APP发布

将开发完成的移动应用程序通过特定的渠道和流程,向公众发布,使得用户可以下载、安装并使用应用程序。

分类:

l 内部发布渠道

l 线上发布渠道

1.2.1内部发布

l 在实际测试工作中,为了方便测试程序包的安装和管理,可以使用一些应用内测分发平台。

如:蒲公英、Testlink等

l 步骤:

1. 开发将应用测试包上传到这些平台上

2. 平台可以生成对应的二维码

3. 测试直接扫码进行应用安装

1.2.2线上发布

l 产品测试完成后,将APP发布到应用各种平台上。

安卓应用:豌豆荚、应用宝、360手机助手、各类手机品牌商城等;

IOS应用: 主要有 App store、iTools

l 步骤:

1. 开发者账号注册,申请在发布平台(各种应用商店)上架

2. 针对不同的发布平台,在软件包中加入对应的平台ID(渠道ID),上传到发布平台

3. 平台审核通过后,用户即可在应用商店中下载

1.2.3发布策略

项目发布时采用的一种策略,先发布少数(1-3)服务器,待运行稳定后再发布到所有服务器。

| 开发环境->测试环境->(策略:灰度发布)->生产环境

l 灰度发布:部分用户可用,若有异常则回滚

l 线上发布:所有用户可用

二、APP功能测试

2.1功能测试介绍

使用技术手段,验证程序功能符合应用需求。

l 对象:核心业务、单功能

l 流程

  • 需求分析
  • 测试计划
  • 测试用例设计
  • 测试用例执行
  • 缺陷管理
  • 测试报告
  • l 方法

  • 等价类:穷举数据选取
  • 边界值:长度范围覆盖
  • 判定表:多条件之间约束限制
  • 流程图:业务流程
  • 2.2案例

    登录案例

    测试点提取:

    2.3练习

    三、APP专项测试介绍

    3.1专项测试介绍

    3.1.1什么是专项测试

    说明:在不同的移动设备上能持久、稳定的运行App程序。

    3.1.2专项测试目的

    l 保障主流移动设备能正常使用App应用

    l 不同的网络环境APP应用正常使用

    l 不同APP版本正常使用

    3.1.3专项测试内容

    3.2能搭建app项目测试环境

    3.2.1环境

    App应用运行所依赖的软硬件

    l 依赖

    1. mumu模拟器(移动设备)

    2. App安装包

    下载地址:

    https://pan.baidu.com/s/1dIq7UnfyqOQRdl7FuDmJfQ?pwd=av2n

    3.2.2mumu模拟器(移动设备)

    说明:由网易编写一款安卓模拟器(window/mac)

    安装:双击下一步安装完成即可。

    3.2.3 App安装包

    通过apk安装包进行安装或通过应用平台进行安装。

    3.3能对Tpshop(安装、卸载、升级)设计测试点

    3.3.1安装测试

    l 正常场景:

    Ø 在不同的操作系统版本上安装

    Ø 从不同的安装渠道安装(APP商城、手机助手、直接下载apk或者ipa文件安装)

    Ø 不同的安装路径(安装到手机上、安装到SD卡上)

    Ø 卸载后安装

    Ø 正在运行时覆盖安装

    l 异常场景:

    Ø 安装时出现异常(关机、断网),恢复后能否继续安装

    Ø 安装时存储空间不足

    Ø 安装时手动取消后再次安装

    Ø 低版本覆盖安装高版本

    3.3.2卸载、升级测试

    卸载关注点:

  • 正常卸载(APP手动卸载、工具卸载)
  • 运行时卸载
  • 取消卸载
  • 卸载异常中断后卸载
  • 卸载后无数据残留
  • 升级测试关注点:

  • 从临近版本升级
  • 跨版本升级
  • 不同渠道升级(应用商场、手机助手)
  • 升级提醒成功(可不提醒、可以提示升级、强制升级)
  • 应用内升级时非WIFI提醒
  • 3.3.3总结

    1. 安装:系统版本+渠道+路径+异常后安装

    2. 卸载:正常卸载+运行时卸载+取消后卸载

    3. 升级:临近版本+跨版本+不同渠道

    3.4能对tpshop(兼容性)设计测试点

    3.4.1兼容性测试

    兼容性:程序能在不同的设备上运行正常。

  • 品牌型号(品牌、系统版本、分辨率)
  • 网络
  • 软件兼容
  • 硬件兼容
  • 3.4.2应用兼容性测试关注点

    3.4.3测试方法

    测试方式:

      •  方式1:使用公司已有的真机进行兼容性测试。
      •  方式2:使用第三方的兼容性平台进行测试。

    如:线上云测平台testin(https://www.testin.cn/)

    3.4.4总结

    兼容性:品牌型号+分辨率+网络+软件+硬件

    3.5能对tpshop(push消息推送设计测试点)

    3.5.1Push消息介绍

    Push消息是APP推送的各种通知。

    3.5.2Push消息推送方式
  • Pull(拉)客户端主动获取:客户端固定时间主动向服务器获取消息。
  • Push(推)客户端被动接受:当服务器有更新消息时,主动发送到客户端。
  • Pull方式消耗客户端和服务器资源

    Push方式节省客户端和服务器资源

    3.5.3 Push消息推送流程

    3.5.4Push消息测试关注点

    3.5.5总结

    1. Push消息:app接收的各种通知

    2. 推送服务器:操作系统级别+自己搭建+三方推送

    3. 关注点:内容+业务规则+人群+显示/关闭通知+位置

    3.6能对tpshop(交叉测试、用户体验)设计测试点

    3.6.1交叉测试

    又叫(冲突、干扰)测试,是指一个功能正在执行过程中,另外一个事件或操作对该过程进行干扰的测试。

    如:在App前台/后台运行同时接听来电或者下载文件等。

    交叉事件测试关注点:

  • APP运行时接打电话;
  • APP运行时收发信息;
  • APP运行时查看应用推送
  • APP运行接上蓝牙设备
  • APP运行时接收文件弹窗提醒
  • APP运行时旋转屏幕
  • APP运行时切换网络(4G、Wi-Fi);
  • App运行时使用相机、计算器等手机自带应用;
  • App运行时电量告警、插拔充电器。
  • 3.6.2用户体验测试

    以主观的角度去感知产品或服务的舒适、易用、友好亲切程度。

    3.6.3总结

    1. 交叉测试:app应用使用过程中被其他操作干扰影响

    2. 用户体验:UI界面+易用(导航、菜单、提示)+横竖屏

    3.7APP性能测试

    APP性能测试

    测试app使用期间占用硬件资源(cpu、内存、流量、电量)使用情况。

    分类

    ① App程序运行时占用手机硬件资源情况

      •  App稳定性
    3.7.1如何测试App(资源)性能?

    说明:使用工具或命令进行测试

    l 工具

    SoloPi是一个无线的 Android 自动化工具,具备录制回放、性能测试等功能。

    l 功能

    性能测试:能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现。

    录制回放:能够将用户的操作记录下来,支持在各个设备上进行回放。

    一机多控:操作一台主机设备来控制多台从机设备,进行重复冗杂的兼容性测试,能够极大提升兼容性测试的效率。

    l 下载: https://www.pgyer.com/solopi

    3.7.2SoloPi使用(选择测试项)

    (1)打开SoloPi,选择性能测试

    (2)选择被测应用,勾选监控指标,勾选后悬浮窗会出现在手机屏幕上

    (3)点击开始监控,随后打开被测APP应用,开始测试

    (4)查看数据采集结果

    3.7.2APP性能测试关注点
  • APP使用时对CPU、内存的占用情况;
  • APP使用时是否流畅等;
  • APP使用时电量流量的消耗情况;
  • APP的启动时间是否过长;
  • APP是否能长时间稳定运行
  • 3.8内存

    3.8.1内存监控指标

    每个程序运行时都需要将代码和数据放入内存中,内存不足则程序无法正常运行。

    提示:SoloPi工具提供了两个内存的监控指标:Private dirty 和 PSS。

    Private dirty(私有内存):

    • 进程独占内存,也就是进程销毁时可以回收的内存容量。

    PSS(实际使用内存):

    • 将跨进程共享页也加入进来, 进行按比例计算PSS。这样能够比较准确的表示进程占用的实际物理内存。

    3.8.2内存问题的现象

    2.8.3案例:性能内存测试

    l 需求:浏览京东首页平均内存消耗情况。

    l 步骤:

    (1)打开SoloPi工具,配置内存监控

    (2)进入APP,操作上述业务,观察运行时的内存指标

    (3)查看内存运行结果

    l 检查程序实际使用的内存PSS值

    进行了首页刷新、查看详情和登录操作

    3.8.4总结

    1. 性能:

    ① 内存 + cpu + 流量 + 电量

    ② 启动速度 + 流畅度 + 稳定性

    2. 内存关注:

    ① 实际使用内存( PSS )

    ② 私有内存

    3. 内存常见问题:

    ① 内存泄漏:申请内存无释放内存。

    ② 内存溢出:申请内存时,无内存可用。

    3.9CPU
    3.9.1CPU监控指标

    SoloPi工具提供了两个CPU的监控指标:全局占用CPU和应用进程CPU。

    l 全局占用CPU:整机的CPU使用水平,即当前手机的CPU整体使用率。

    • 在 Linux 系统下,CPU 利用率分为用户态、系统态和空闲态

    • 用户态:表示 CPU 处于应用程序执行的时间

    • 系统态:表示系统内核执行的时间

    • 空闲态:表示空闲系统进程执行的时间。

    • CPU 使用率 = CPU 执行非系统空闲进程时间 / CPU 总的执行时间

    l 应用进程CPU:表示自开机以来,应用程序消耗的CPU时间的总数。

    3.9.2CPU消耗引起的现象
  • CPU使用长时间处于90%以上
  • 手机发热、耗电量增加
  • 响应变慢、引起ANR(Application Not Responding)
  • 3.9.3案例性能CPU测试

    需求:测试滑动首页CPU使用率

    步骤:

    (1)打开SoloPi工具,勾选CPU监控指标

    (2)进入京东,操作上述业务,观察运行时的CPU指标

    (3)查看CPU运行结果

    l 检查APP运行时CPU是否长时间处于90%以上

    3.9.4总结

    1. 关注:长时间90%以上

    2. cpu问题现象:手机发热 + 耗电量增加 + 反应变慢 + 无响应

    3.10流量

    3.10.1流量介绍

    操作APP会与服务器交换数据,流量就是指这些交互数据的总大小。

    SoloPi工具提供了流量监控指标:网络

    3.10.2案例 性能流量测试

    需求:打开tpshop首页,上下滑动动态20秒,获取消耗的网络流量。

    步骤:

    (1)打开SoloPi工具,勾选流量监控指标网络

    (2)进入APP,操作上述业务

    (3)查看流量统计结果

    提示:在模拟器中无法统计电脑流量使用情况,看进程使用流量即可

    看进程

    3.10.3总结

    流量优化策略:

  • 数据的压缩
  • 不同数据格式的采用
  • 控制访问的频次
  • 只获取必要的数据
  • 缓存机制
  • 针对不同的网络类型设置不同的访问策略
  • 3.11电量

    APP应用使用时对电池电量的平均消耗

    3.11.1常见的耗电量大的场景:
  • 定位
  • 网络传输
  • 屏幕亮度
  • wake_locker(锁屏-解锁)
  • 3.11.2电量的监控方法

    l 系统自带接口

    最新的IOS和Android系统内置的Setting里可以查看各个APP的电池消耗

    该方案不能检测固定某一时间段内的电池精准消耗。

    l 硬件检测

    通过硬件可以精准地获得应用的电量消耗(如: PowerMonitor 硬件设备)

    该方案测试时需要拆机,成本太高比较麻烦。

    l 软件工具检测

    通过第三方的软件来获取应用的电量消耗(如: AccuBattery、360省电王、SoloPi等)提示:SoloPi工具提供了电量的监控指 标:电池。

    该方案取决于第三方软件的计算准确性。

    l 结果分析

    与基准数据对比(基准数据来自于产品经理,或者以往数据积累)

    横向对比(竞品)(目前多数采用这种方法)

    3.11.3案例 性能电量测试

    l 需求:打开京东,进入首页,上下滑动动态2分钟,获取消耗的电量。

    l 步骤:

    (1)打开SoloPi工具,勾选电量监控指标:电池

    (2)进入APP,操作上述业务,观察运行时的CPU指标

    (3)保存电量详细数据后,可以查看电量详细的数据统计。

    提示:模拟器没有电池,无法获取电量数据。

    3.11.4总结

    1. 耗电量大场景:

    定位

    网络传输

    屏幕亮度

    wake_locker(锁屏-解锁)

    2. 分析结果:

    • 与基准数据对比(基准数据来自于产品经理,或者以往数据积累)

    • 横向对比(竞品)

    3.12流畅度
    3.12.1流畅度介绍

    动画播放或图片切换的流畅性。

    动画其实是由一张张画出来的图片连贯执行产生的效果,当一张张独立的图片切换速度足够快的时候,会欺骗我们的眼睛,以为这是连续的动作。反之,当图片切换不够快时就会被人眼看穿,反馈给用户的就是卡顿现象。

    3.12.2流畅度的监控指标

    SoloPi工具提供了流畅度的监控指标:帧率FPS

  • 即Frames per second:GPU在一秒内绘制的帧数。(简单理解为一秒内呈现给用户的图片数)
  • FPS值越高画面越流畅
  • 流畅度问题产生的影响:

  • 想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度
  • 想达到流畅的效果,至少需要每秒24帧
  • 60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒
  • 3.12.3案例性能流畅度测试案例

    需求:打开京东,进入首页,上下滑动动态2分钟,记录FPS值。

    步骤:

    (1)打开SoloPi工具,勾选帧率

    (2)进入APP,操作上述业务,观察运行时的流畅度指标

    (3)查看流畅度运行结果

    3.12.4总结

    流畅度:动画播放或图片切换的流畅性

  • 达到流畅效果24/s
  • 最佳流畅效果60/s
  • 3.13启动速度

    3.13.1启动速度介绍

    APP启动速度:从启动app到主页面加载完成的速度。

    APP启动分类:冷启动、热启动

  • 冷启动:启动app进程,这种启动方式叫做冷启动。
  • 热启动:将app从后台置于前台。
  • Solopi指标:启动耗时计算

    3.13.2案例 性能启动时间测试

    需求:分别获取tpshop冷启动和热启动时间

    3.13.3总结

    启动分类:热启动+冷启动

    冷启动:启动app进程,这种启动方式叫做冷启动。

    热启动:从后台切换到前台

    3.14稳定性测试

    3.14.1Android-sdk环境搭建

    Android-sdk环境说明

    android开发、调试工具包

    作用:android应用稳定性测试、调试工具、日志记录等

    下载:https://pan.baidu.com/s/15cQCOazgrmGUYMDiRKQxyA?pwd=9gbj

    l 安装:

    1、解压到指定目录 如( D:\\Android\\sdk )

    2、将目录添加到path中

    ① 新建环境变量:ANDROID_HOME=D:\\Android\\sdk (这里为安装目录)

    ② 添加path路径,在Path中添加:%ANDROID_HOME%\\tools 、%ANDROID_HOME%\\platform-tools

    l 验证:win:打开开始菜单->运行->输入cmd->adb version

    3.14.2什么是稳定性

    app程序能持久良好的运行。

    稳定性测试:在app应用中随意操作,挖掘有可能出现的异常。

    3.14.3Monkey介绍

    monkey就是猴子, monkey测试就像一只猴子在玩手机(乱抓、乱点)。

    作用:模拟用户随机(触摸屏幕、滑动、 按键)等操作来对程序进行稳定性测试, 检测程序异常情况。

    3.14.4稳定性测试步骤

    1、执行命令,执行结果写入日志

    2、检查日志异常

    3.14.5Monkey命令

    语法:adb shell monkey -p 包名 –v 次数>tpshop.log

    参数:

    -p:指定包名

    -v:log详细程度(最高支持’-v -v -v’最详细)

    次数:要执行随机操作的次数

    >:重定向(保存)日志

    3.14.6检查日志

    检查日志中是否有异常关键字,提取相关日志发给开发。

    常见关键字:

    • 无响应: 在日志中搜索 “ANR”、timeout

    • 崩溃:在日志中搜索 “NullPointerException”或 Exception

    • 闪退:memory out 、memory Leak

    • 错误:error

    3.15.6案例 京东稳定性测试

    需求:针对京东商城进行稳定性测试

    分析:

    •  获取app包名

    先用adb connect 127.0.0.1:7555连上模拟器(MuMU模拟器的端口号为7555)

    输入adb devices能看到设备

    输入adb shell成功进入了安卓系统shell

    先在模拟器里打开要测试的APP

    输入dumpsys window | grep mCurrentFocus即可获取当前前台运行的App包名

    包名:com.jingdong.app.mall

    ② 执行monkey命令: adb shell monkey -p 包名 –v 次数 >c:\\日志.log

    ③ 检查日志异常关键字: [ANR,timeout,Exception,out,leak,error]

      •  将异常日志发给开发

    异常查找:

    ……

    3.15.7扩展

    可以看到日志中0是100%

    3.15.8小结

    1. 常见app不稳定的现象

    崩溃、闪退、无响应、卡顿

    2. 稳定性测试

    在app应用中随意操作,挖掘有可能出现的异常。

    3. 稳定性怎么测?

    ① Android系统使用自带monkey工具

    ② 测试次数【工作中50W-80W次】

    4. Monkey工具应用

    ① 执行Monkey命令:adb shell monkey -p 包名 -v 次数 > 日志.log

    ② 检查日志是否有异常,有异常将日志发给开发

    [ANR,timeout,Exception,out,leak,error]

    赞(0)
    未经允许不得转载:171主机测评 » APP功能与专项测试实战:从功能验证到性能稳定性全覆盖
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址