软件测试 - App测试(2024黑马)

一、App测试

1、App与Web的区别

系统架构:App时C/S结构,Web时B/S结构

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

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

2、 App测试范围

2.1 总结

1. App项目测试范围:

  • 功能测试:业务、单功能
  • 专项测试:安装、卸载、升级、兼容性、push消息推送、交叉事件、用户体验
  • 性能测试:内存、CPU、电量、流量、启动时间、流畅度、稳定性

2. Web与App区别:

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

3、App发布

3.1 概述

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

3.2 分类

内部发布渠道

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

        如:蒲公英、Testlink等。

  • 步骤:
  1. 开发将应用测试包上传到这些平台上;
  2. 平台可以生成对应的二维码;
  3. 测试直接扫码进行应用安装。

线上发布渠道

  • 产品测试完成后,将App发布到应用个中平台上。

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

        IOS应用:主要有App store、iTools、爱思助手等。

  • 步骤:
  1. 开发者账号注册,申请在发布平台(各种应用商店)上架;
  2. 针对不同的发布平台,在软件包中加入对应的平台ID(渠道ID),上传到发布平台;
  3. 平台审核通过后,用户即可在应用商店中下载。

注意事项:

  • 一般线上发布过程,由开发人员负责。
  • 在软件包加入平台ID后,上传到发布平台时,需要测试人员验证核心的业务功能。

3.3 发布策略

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

3.4 总结

1. App发布方式

内部发布:蒲公英、Testlink等

线上发布:

  • 安卓应用:豌豆荚、应用宝、360助手、各类手机品牌商城等;
  • IOS应用:主要有App store、iTools、爱思助手等。

2. 上线发布策略

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

二、App功能测试

1、功能测试

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

  • 对象:核心业务、单功能
  • 流程:
  1. 需求分析
  2. 测试计划
  3. 测试用例设计
  4. 测试用例执行
  5. 缺陷管理
  6. 测试报告
  • 方法
  1. 等价类:穷举数据选取
  2. 边界值:长度范围覆盖
  3. 判定表:多条件之间约束限制
  4. 流程图:业务流程

2、案例

三、App非功能测试 

1、App专项测试

1.1 什么是专项测试

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

1.1.1 专项测试目的
  • 保障主流移动设备能正常使用App应用
  • 不同的网络环境App应用正常使用
  • 不同App版本正常使用
1.1.2 专项测试内容

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

1.1.3 App项目测试环境 

1.2 安装、卸载、升级

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

1.2.1 安装测试

1.2.2 卸载测试 

1.2.3 升级测试

注意事项

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

1.2.4 总结
  1. 安装:系统版本 + 渠道 + 路径 + 异常后安装
  2. 卸载:正常卸载 + 运行时卸载 + 取消后卸载
  3. 升级:临近版本 + 跨版本 + 不同渠道

1.3 兼容性

1.3.1 兼容性测试

1.3.2 兼容性测试关注点 

1.3.3 兼容性测试方法 

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

1.4 Push消息推送

1.4.1 Push消息介绍

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

  • 如:点赞、评论、关注。

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

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

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

提示

  • 在App项目中,基于手机电量和流量的考虑,使用的都是push方式进行消息推送,因此又叫Push消息。
1.4.3 Push消息推送流程
1.4.4 Push消息测试关注点

1.4.5 总结
  1. Push消息:app接收的各种通知
  2. 推送服务器:操作系统级别 + 自己搭建 + 三方推送
  3. 关注点:内容 + 业务规则 + 人群 + 显示/关闭通知 + 位置

1.5 交叉测试

1.5.1 交叉测试介绍

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

  • 如:在App前台/后台运行同时接听来电或者下载文件等。
1.5.2 交叉事件测试关注点

1.6 用户体验测试 

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

2、App性能测试

2.1 App性能测试介绍

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

分类

  1. App程序运行时占用手机硬件资源情况
  2. App稳定性

2.2 如何测试App性能?

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

  • 工具

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

  • 功能

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

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

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

安装:独立安装的SoloPi(APK,IOS无该版本)像普通App一样安装。

2.2.1 SoloPi使用(选择测试项)

2.2.2 SoloPi使用(监控) 

2.2.3 SoloPi使用(查看结果)

2.2.4 总结
  1. App性能测试分类:资源占用 + 稳定性
  2. App性能工具:

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

        ② IOS:苹果开发工具XCode

2.3 内存测试

2.3.1 内存监控指标

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

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

  • Private dirty(私有内存):

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

  • PSS(实际使用内存):

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

2.3.2 内存问题的现象

2.3.3 总结

1. 性能:

        ① 内存 + CPU + 流量 + 电量

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

2. 内存关注:

        ① 实际使用内存(PSS

        ② 私有内存

3. 内存常见问题:

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

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

2.4 CPU测试

2.4.1 CPU监控指标

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

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

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

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

2.4.2 CPU消耗引起的现象
  • CPU使用时间处于90%以上
  • 手机发热、耗电量增加
  • 响应变慢,引起ANR(Application Not Responding)
2.4.3 总结
  1. 关注:长时间90%以上
  2. CPU问题现象:手机发热 + 耗电量增加 + 反应变慢 + 无响应

2.5 流量测试

2.5.1 流量介绍

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

2.5.2 性能流量测试案例

2.5.3 总结

流量优化策略:

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

2.6 电量测试

2.6.1 电量介绍

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

常见的耗电量大的场景:

  • 定位
  • 网络传输
  • 屏幕亮度
  • wake_locker(锁屏-解锁)
2.6.2 电量的监控方法

2.6.3 总结

1. 耗电量大场景:

  • 定位
  • 网络传输
  • 屏幕亮度
  • wake_locker(锁屏-解锁)

2. 分析结果:

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

2.7 流畅度测试

2.7.1 流畅度介绍

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

2.7.2 流畅度的监控指标

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

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

流畅度问题产生的影响:

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

注意事项:

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

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

  • 达到流畅效果 24/s
  • 最佳流畅效果 60/s

2.8 启动速度测试

2.8.1 启动速度介绍

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

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

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

SoloPi指标:启动耗时计算

2.9 稳定性测试

2.9.1 Android-sdk环境搭建

2.9.2 稳定性介绍

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

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

常见稳定性的异常:

2.9.3 稳定性测试工具-Monkey

2.9.4 稳定性测试步骤 

2.9.5 案例

扩展:

2.9.6 总结

1. 常见app不稳定的现象

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

2. 稳定性测试

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

3. 稳定性怎么测?

  • ① Android系统使用自带Monkey工具
  • ② 测试次数 [工作中50w-80w次]

4. Monkey工具应用

  • ① 执行Monkey命令:adb shell monkey -p 包名 -v 次数 > 日志.log
  • ② 检查日志是否有异常,有一场将日志发给开发(ANR、timeout、Exception、out、leak、error)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值