App测试

冒烟测试:对核心功能的验证

  • 作用:保证提测内容具备可测性

回归测试:对已修复bug\更新后对已测内容再次测试

  • 作用:保证bug修复、确保新功能对旧功能没有影响

App测试范围

功能测试:业务测试,功能模块测试

性能测试:CPU、内存占用,启动速度,流量、电量消耗,流畅度,稳定性

专项测试:安装卸载升级,push消息推送,交叉事件测试,用户体验测试,兼容性测试

Web与App区别

App是C/S结构,Web浏览器是B/S结构

App发布方式

内部发布:蒲公英、Testlink等

线上发布:

  • 安卓应用:豌豆荚、应用宝、360手机助手、应用市场等
  • IOS应用:主要有App store、iTools

上线发布策略

  • 开发环境—>测试环境—>(策略:灰度发布)—>生产环境
  • 灰度发布:部分用户可用,若有异常则回滚
  • 线上发布:所有用户可用

App专项测试

说明:

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

App项目测试环境搭建

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

依赖:

  • mumu模拟器(移动设备)
  • App安装包:通过apk安装包进行安装或通过应用平台进行安装

内容:

安装测试

正常场景

  • 在不同的操作系统版本上安装
  • 从不同的安装渠道安装
  • 不同的安装路径(手机、SD卡)
  • 卸载后安装
  • 正在运行时覆盖安装

异常场景:

  • 安装时出现异常(关机、断网),恢复后能否继续安装
  • 安装时存储空间不足
  • 安装时手动取消后再次安装
  • 低版本覆盖安装高版本

卸载、升级测试

卸载关注点:

  • 正常卸载(App手动卸载、工具卸载)
  • 运行时卸载
  • 取消卸载
  • 卸载异常中断后卸载
  • 卸载后无数据残留

升级测试关注点

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

注意事项:升级后要观察升级前的数据是否正常(当数据结构改变而开发没有处理好时很容易出现升级前的数据混乱)

兼容性测试

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

  • 品牌型号(品牌、系统版本、分辨率)
  • 网络
  • 软件兼容
  • 硬件兼容

应用兼容性测试关注点

  • 与手机硬件兼容:home键、电源键、音量调节
  • 与外部硬件设备兼容:耳机、蓝牙、数据线
  • 与操作系统软件兼容:wlan设置、系统时间调节、LBS定位等
  • 与其他APP兼容:后台在播放音乐时,进入动态页面点击动态视频的播放,系统如何处理
测试方法:

方式1:使用公司已有的真机进行兼容性测试

**方式2:**使用第三方平台的兼容性平台进行测试(如:线上云测平台testin(http://www.testin.cn/))

push消息测试

**介绍:**push消息是APP推送的各种通知,如点赞、评论、关注

Push消息推送方式

Pull(拉)客户端主动获取:客户端固定时间主动向服务器获取消息

Push(推)客户端被动接受:当服务器有更新消息时,主动发送到客户端

Pull方式消耗客户端和服务器资源

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

提示:在APP项目中。基于手机电量与流量的考虑,使用的都是push方式进行消息推送,因此又叫Push消息

Push消息推送的设置

APP服务器设置:

  • 推送内容
  • 推送时机
  • 推送频率
  • 推送人群(全部用户/部分用户)

手机端设置:

  • 是否接收通知
  • 提醒位置等
Push消息测试关注点

App服务器设置测试点:

  • Push消息是否按指定业务规则发送
  • 当Push消息是针对特定用户时,检查收到的Push与用户身份是否相符等

手机端设置测试点:

  • 设置不接收推送消息时,用户是否会收到Push消息
  • 设置push消息显示的位置,是否与配置一致
  • 收到push消息,是否能正常打开跳转等

其他测试:

  • APP在前台使用时,收到push消息如何提示

  • APP在后台运行时,收到push消息如何提示

  • APP离线,是否能收到Push消息

交叉测试

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

如;在APP前台/后台同时接听来电或者下载文件等

交叉事件测试关注点:

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

用户体验测试

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

UI界面测试

对照UI交互设计文档,检查每个界面设计菜单、对话框、窗口、风格、布局等

易用性测试
  • 是否有空数据界面设计,引导用户去执行操作
  • 菜单层次是否太深(3级内)
  • 完成业务操作的步骤是否过多(5步内)
  • 界面中按钮可点击范围是否适中
横竖屏测试

横竖屏的切换是否正常(特别要关注APP中有表格,因为横竖屏的显示宽度不一样)

关注手机应用上的其他辅助功能

可以重点关注”放大字体“、”反色“、”语音转换“、多点触碰等功能

APP性能测试

性能:

①内存+CPU+流量+电量

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

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

**分类:**①APP程序运行时占用手机硬件资源情况

②APP稳定性

如何测试APP(资源)性能?

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

工具

①Android:工具(solopi、GT)+命令(abd)

②IOS:苹果开发工具xcode

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

功能

  • 性能测试:能够对CPU、内存与网络环境进行限制,复现应用在性能较差、网络环境不佳场景下的表现
  • 录制回放:能够将用户的操作记录下来,支持在各个设备上进行回放
  • 一机多控:操作一台主机设备来控制多台从机设备,进行重复冗余的兼容性测试,能够极大提升兼容性测试的效率

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

SoloPi使用(选择测试项)

提示:SoloPi使用时,需要申请悬浮窗权限(adb权限、读写权限),根据弹窗提示进行授权

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

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

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

(4)查看数据采集结果

APP性能测试关注点

  • APP使用时对CPU、内存的占用情况
  • APP使用时是否流畅等
  • APP使用时电量流量的消耗情况
  • APP的启用时间是否过长
  • APP是否能长时间稳定运行

内存监控指标

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

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

  • Private dirty(私有内存):

    • 进程独占内存,也就是进程销毁时可以回收的内存容量
  • PSS(实际使用内存):

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

常见的现象:

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

内存问题产生的影响:

  • 程序实际使用的内存PSS持续增长可能是内存泄漏
  • 程序出现crash(崩溃)可能是内存溢出

CPU监控指标

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

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

  • 在Linux系统下,CPU利用率分为用户态、系统态和空闲态
  • 用户态:表示CPU处于应用程序执行的时间
  • 系统态:表示系统内核执行的时间
  • 空闲态:表示空闲系统进程执行的时间
  • CPU空闲率=CPU执行非系统空闲进程时间/CPU总的执行时间

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

CPU消耗引起的现象
  • CPU使用长时间处于90%以上

  • 手机发热、耗电量增加

  • 响应变慢、引起ANR(Application Not Responding应用无响应)

流量监控指标

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

上行消息:APP发送给服务器的数据

下行消息:APP接收的服务器的数据

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

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

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

电量监控指标

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

常见的耗电量大的场景:定位、网络传输、屏幕亮度、wake_locker(锁屏—解锁)

电量的监控方法

系统自带接口

  • 最新的IOS和Android系统内置的Setting里可以查看各个APP的电池消耗
  • 该方案不能检测固定某一时间段内的电池精准消耗

硬件检测

  • 通过硬件可以精准地获得应用的电量消耗(如:PowerMonitor硬件设备)
  • 该方案测试时需要拆机,成本太高比较麻烦

软件工具检测

  • 通过第三方的软件来获取应用的电量消耗(如:AccuBattery、360省电王、SoloPi等)
  • 该方案取决于第三方软件的计算准确性

结果分析

  • 与基准数据比对(基准数据来自于产品经理,或者以往数据积累)
  • 横向对比(竞品)(目前多采用这种方法)

流畅度监控指标

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

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

  • 即Frames per second:GPU在一秒内绘制的帧数。(简单理解为一秒内呈现给用户的图片数)
  • FPS值越高画面越流畅
流畅度问题产生的影响
  • 想要让大脑觉得动作是连续的,至少是每秒10-12帧的速度
  • 想达到流畅的效果,至少需要每秒24帧
  • 60帧每秒的流畅度是最佳的,我们的目标就是让程序的流畅度能接近60帧每秒

注意事项:

  • 当页面多为静态时,FPS值很小是正常的
  • 页面数据多为动态加载时,FPS值比较大(建议在24帧以上)

启动速度监控指标

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

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

  • **冷启动:**启动app进程,这种启动方式叫做冷启动
  • **热启动:**将app从后台置于前台

SoloPi指标:启动耗时计算

Android–sdk环境说明

android开发、调试工具包

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

稳定性监控

**常见app不稳定的现象:**崩溃、闪退、无响应、卡顿

**稳定性:**app程序能持久良好的运行

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

Monkey

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

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

提示

  • Monkey程序是Android系统中自带一款稳定性测试工具,由Java语言编写【无需单独安装】
  • Android位置:/system/framework/monkey.jar
稳定性测试步骤

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

adb shell monkey -p 包名 -v 次数 > 日志.log

2、检查日志异常,有异常将日志发给开发

ANR,timeout,Exception,out,leak,error

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值