【转载】 APP 测试用例全面整理

一、APP 测试流程

APP 测试流程与 Web 测试流程相似,具体分为以下七个阶段:

  1. 编写测试计划:依据需求说明书,全面规划测试工作,明确测试目标、范围、策略等关键要素。
  2. 制定测试方案:合理分配测试任务、确定测试人员安排以及规划测试时间进度,确保测试工作有序推进。
  3. 测试准备工作:搭建与实际使用场景相符的测试环境,精心准备各类测试数据,并根据测试需求确定合适的测试方法。
  4. 设计与编写测试用例:详细设计并编写全面的测试用例,随后组织相关人员进行用例评审,根据评审意见补充完善测试用例,确保其完整性和有效性。
  5. 执行测试:首先进行冒烟测试,快速验证 APP 的基本功能是否可用。接着对主功能流程展开全面测试,包括客户端的各个功能模块以及功能之间的业务逻辑交互。在测试过程中,根据缺陷修复情况适时进行回归测试,确保问题得到彻底解决且未引入新的问题。
  6. 提交测试结果:整理并提交详细的测试结果,其中应包含测试用例、测试计划以及测试过程中发现的缺陷报告等相关文档,为项目决策提供有力依据。
  7. 日常维护性测试:在 APP 上线后,持续关注其运行状况,定期进行维护性测试,及时发现并解决可能出现的问题,保障 APP 的稳定运行。

APP 测试周期通常依据项目的开发周期来确定,一般为两到三周,具体时长可根据项目实际情况以及版本质量进行适当调整。

二、APP 测试通用测试用例

(一)功能测试

测试项测试点
注册
登录1. 输入错误的登录用户名和密码,检查界面是否有清晰的提示信息。
2. 用户主动退出登录后,再次启动 APP,确认是否进入登录界面。
3. 更改密码后,验证登录时是否能对新密码进行有效校验。
4. 检查未登录状态下,对部分受限页面的操作是否得到有效控制。
5. 切换账号登录,核实登录信息是否及时更新。
6. 对于限制一个账号仅能在一台设备登录的软件,测试当账号在多个手机登录时,原用户是否被踢下线,并是否有相应提示。
7. 模拟用户登录状态保持过长时间,检查 Session 过期时,是否出现“虽显示登录状态,但系统提示用户未登录”的情况。
注销
上传1. 确认上传文件是否存在格式、大小限制,以及上传时间是否符合预期。
2. 在未上传资料时点击上传按钮,检查是否有相应提示。
3. 点击提交后,验证文件是否上传成功,且能否正常浏览。
4. 上传文件后刷新页面,查看系统对文件的处理是否正常。
5. 上传文件后多次进行回退、前进操作,检查 APP 是否能正常响应。
6. 验证图片是否支持主流格式,如 jpeg、jpg、gif、png、bmp 等。
7. 确认音频文件是否支持主流格式,如 mp3、wav 等。
8. 检查视频文件是否支持主流格式,如 mp4、wmv、avi、mov、flv、swf 等。
9. 核实文档文件是否支持主流格式,如 doc、docx、xlsx、xls、excel 等。
10. 确认压缩包文件是否支持主流格式,如 zip、rar、tar、gz、7z 等。
11. 测试是否支持单个文件上传以及批量上传功能。
12. 在上传过程中模拟网络中断,检查 APP 是否能进行正常处理。
13. 文件上传结束后,查看是否有提示信息,并是否能回到原界面。
下载1. 检查下载文件是否存在大小和格式要求。
2. 执行导出全部数据操作,验证数据的准确性。
3. 尝试导出大量数据,观察界面或程序是否会崩溃,以及导出时间是否合理。
4. 在下载时同时进行其他操作,检查是否会导致文件损坏。
添加1. 输入必填项后点击添加按钮,检查记录是否成功添加。
2. 不填写必填项直接点击添加按钮,查看是否有相应提示。
3. 在内容项中输入空格后点击添加按钮,验证记录能否添加成功。
4. 仅填写必填项后点击添加按钮,确认记录能否添加成功。
5. 重复提交相同记录,检查系统是否有相应提示。
6. 在内容项中输入系统不允许出现的字符后点击添加按钮,查看系统是否有相应提示。
7. 在内容项中输入 html、js 脚本后点击添加按钮,检查记录能否添加成功。
8. 确认新添加的记录是否排列在首行。
删除1. 选择任意一条记录进行删除操作,检查能否删除成功。
2. 选择不连续的多条记录,执行批量删除操作,验证能否删除成功。
3. 选择连续的多条记录,进行批量删除,确认能否删除成功。
4. 删除操作时,检查系统是否有确认删除的提示。
查询1. 确认默认是否显示全部内容。
2. 使用单个查询条件进行查询,检查系统能否查询出相关记录。
3. 采用多个查询条件进行组合查询,验证系统能否准确查询出相关记录。
4. 测试系统是否支持模糊查询功能。
5. 将查询条件全部设置为空,查看系统能否查询出相关记录。
6. 查询后,检查文本框中内容是否保存上一次查询的条件。
7. 查询大量数据时,观察按钮响应是否及时。
安装1. 软件安装完成后,验证是否可以正常运行。
2. 检查安装过程中是否支持取消操作。
3. 当安装空间不足时,查看是否有相应提示。
4. 确认安装时是否提供选择安装到本地还是 SD 卡的路径。
5. 测试是否支持通过第三方工具进行安装。
6. 检查是否支持从不同的应用市场下载安装,以及是否可以重复安装。
卸载1. 验证是否可以通过桌面或软件安装包进行卸载操作。
2. 检查卸载过程中是否支持取消操作,单击取消后,确认软件是否能正常运行。
3. 卸载文件后,查看是否删除所有相关的安装文件夹。
升级1. 当客户端有新版本时,确认是否有更新提示。
2. 对于非强制升级版,检查用户是否可以取消更新,且老版本能否正常使用。同时,确认用户下次启动 App 时,是否仍出现更新提示。
3. 对于强制升级版,在给出强制更新提示后,若用户未更新而退出客户端,下次启动 App 时,检查是否仍出现强制升级提示。
4. 测试在线跨版本升级后,APP 是否能正常使用。
5. 确认升级后数据是否保持不变,如登录状态、设置的信息、加载的资源等。
重启1. 检查应用程序在本地客户端是否缓存一部分数据以供下次调用,对于支持离线浏览的程序,验证离线状态下能否正常浏览本地数据。
2. 在离线时刷新获取新数据,若无法获取,确认是否能给出友好提示。
3. 对于不提供离线查看界面数据的系统,检查是否有相应提示,且界面更新后无任何数据。
4. 离线后,退出 APP 再重新开启,验证是否能正常浏览。
5. 离线后,切换到后台再回到 APP,确认是否可以正常浏览。
6. 离线后,锁屏再解锁回到应用前台,检查是否可以正常浏览。
推送
交互
网络

(二)其他测试

测试项测试点
权限1. 检查 APP 在发送短信、拨打电话、连接网络等操作时,若无网络,是否有提醒。
2. 确认是否允许 APP 访问相册、拍照、录音、定位等权限,并检查权限申请与使用流程是否合规。
交叉测试1. 检查 APP 在操作的过程中其他的APP同时被唤起的时候怎么处理
2.来回切换不同的APP是否能正常唤起该APP 。
3.权限冲突,APP调用和其他APP同一个权限时候怎么处理,是否冲突
UI1. 依据 UI 设计原型图,检查页面布局是否符合用户使用习惯。
2. 查看是否恰当利用窗体和控件的空白区域以及分割线条,以提升界面美观度和易用性。
3. 测试窗口切换、移动、改变大小时,界面显示是否正常。
4. 刷新页面后,确认页面显示是否正常。
5. 检查 APP 在不同浏览器下渲染出来的页面显示是否正常(若 APP 支持浏览器访问)。
6. 验证在不同分辨率下,页面布局显示是否正常。
7. 对于无权限操作,检查按钮是否置灰或不显示,无法输入的输入框是否设置为 disable 状态。
8. 确认页面无错别字,提示性文字措辞是否恰当、准确。
9. 检查页面显示是否无乱码。
10. 对于必填的控件,确认是否有必填提醒,如使用 * 标识。
11. 检查控件(如菜单、对话框、按钮、单选框、复选框等)的布局、风格是否正确,界面是否美观,操作是否友好。

(三)兼容性测试

测试项测试点
平台兼容验证应用是否可在 Android 和 iOS 两个主流平台上正常运行。
系统版本兼容1. 检查是否兼容不同的 Android 版本,如 4.1.1、4.2.1 等;以及不同的 iOS 版本,如 8.3、9.1、10、11、12 等。
2. 确认能否适配各种屏幕尺寸,如 Android 系列的 4.X、5.X 等,iOS 系列的 4 英寸、4.8 英寸、5.5 英寸等。
分辨率适配在不同分辨率下,确保界面图标、文字大小显示合理,主流分辨率下图标展示完整,文字不被遮挡。
设备兼容选取市面上主流的 Android 手机,如小米、华为、vivo、OPPO 等;以及 iOS 系统手机,如 iPhone 6、6s、6 Plus、7、8、X、XR 等进行测试,检查 APP 在这些设备上的兼容性。

(四)专项测试

测试项测试点
CPU
内存
流量
耗电量
发热量
FPS
GPU

三、APP 测试常见面试问题

(一)APP 的测试资源准备有哪些?

  1. 准备主流的 iOS 设备和 Android 设备,涵盖不同品牌、型号及屏幕尺寸,以满足兼容性测试需求。
  2. 对于涉及支付宝/银联支付的项目,提前申请支付宝/银联账户,并准备相关测试数据。
  3. 若项目中有秒杀专题,需合理规划秒杀时间表,用于测试秒杀功能的准确性和稳定性。
  4. 针对有优惠券使用的项目,预先添加各类优惠券数据,以全面测试优惠券的领取、使用等功能。

(二)APP 测试的稳定性如何测试?

稳定性测试通常在软件产品基本功能无缺陷后开展。一般使软件系统处于持续运行模式,模拟正常情况与临界情况进行测试,观察系统是否出现异常。常使用 Monkey 工具,向系统发送随机事件流,如按键输入、触摸屏输入、手势输入等,以此实现对软件的稳定性测试。

(三)APP 测试与 Web 测试的区别?

从功能测试层面看,APP 测试与 Web 测试在流程和功能测试方法上有相似之处,但在以下方面存在差异:

  1. 系统结构
    • Web 项目:基于 B/S 架构,依托浏览器运行。只要更新服务器端,客户端便会同步更新。
    • APP 项目:属于 C/S 结构,必须配备客户端。若修改服务端,客户端所有核心版本均需进行回归测试。
  2. 性能监测
    • Web 项目:重点监测响应时间、CPU 使用率、内存占用等指标。
    • APP 项目:除上述指标外,还需关注流量消耗、电量消耗等移动设备特有的性能指标。
  3. 兼容性
    • Web 项目:主要考虑不同浏览器(如 Firefox、Chrome、IE 等)以及操作系统(如 Windows 7、Windows 10、Linux 等)的兼容性。
    • APP 项目:需兼顾多种设备系统,如 iOS(iPad、iPhone)、Android(三星、华为、联想等)、Windows(Win7、Win8)、OSX(Mac),同时要考虑不同手机型号、分辨率、屏幕尺寸带来的兼容性问题。
  4. 专项测试
    • APP 特有:包括干扰测试(如中断、来电、短信、关机、重启等);弱网络测试(模拟 2G、3G、4G、Wi-Fi 网络状态及丢包情况)与网络切换测试(网络断开后重连、3G 与 4G/Wi-Fi 切换等);安装、更新、卸载及相关中断、前后台切换测试;界面操作测试(如手势、横竖屏切换、多点触控、前后台切换);安全测试(安装包反编译、签名、权限设置等);边界测试(可用存储空间少、无 SD 卡/双 SD 卡、飞行模式、系统时间有误、第三方依赖登录等);权限测试(设置 APP 对通讯录、相册、照相机等权限的获取)。
  5. 测试工具
    • 自动化工具:APP 自动化测试常用 Appium,Web 自动化测试一般使用 Selenium。
    • 性能测试工具:APP 性能测试常用 Monkey、JMeter,Web 性能测试常用 LR、JMeter。

(四)你知道哪些 APP 云测平台?

常见的 APP 云测平台有百度云测、Testin 云测、众测平台等。这些平台提供了丰富的设备资源和测试服务,可帮助测试人员高效地进行 APP 测试。

(五)App 测试中 iOS 和 Android 有哪些区别呢?

  1. 操作方式:Android 长按 home 键可呼出应用列表并切换应用,右滑则终止应用;而 iOS 的操作方式有所不同,例如通过上滑屏幕底部调出应用切换界面。
  2. 分辨率测试:Android 端设备分辨率种类繁多,约 20 多种,而 iOS 设备分辨率相对较少。
  3. 操作系统特性:Android 操作系统版本多样,iOS 版本相对较少且只能单向升级,无法降级。新的 iOS 系统资源库与低版本系统应用可能不完全兼容,若低版本 iOS 系统应用调用新资源库,可能直接导致闪退。
  4. 操作习惯差异:在 Android 测试中,需关注 Back 键是否被重写,点击 Back 键后的反馈是否正确;同时测试应用数据从内存移动到 SD 卡后能否正常运行。iOS 则需重点关注与自身系统交互习惯相关的操作。
  5. Push 测试:在 Android 中,点击 home 键使程序后台运行时接收 push,点击后唤醒应用,需检查是否能正确跳转;在 iOS 中,需关注点击 home 键关闭程序和屏幕锁屏情况下 push 消息红点的显示以及点击后的响应情况。
  6. 安装卸载测试:Android 的下载、安装平台、工具和渠道较为丰富多样;iOS 主要通过 App Store、iTunes 和 TestFlight 进行下载安装。
  7. 升级测试:APP 可升级的必要条件包括:新旧版本具有相同的签名、相同的包名以及用于区分版本的标识符(如版本号)。在升级测试中,需针对不同系统特性进行针对性测试。

(六)APP 出现 ANR,是什么原因导致的?

APP 出现 ANR(Application Not Responding),主要原因可归结为以下两类:

  1. 主线程耗时操作:主线程执行了诸如数据库操作、网络编程等耗时任务,导致主线程阻塞,无法及时响应用户操作。
  2. CPU 资源竞争:其他进程占用过多 CPU 资源,致使本进程无法获取足够的 CPU 时间片,例如其他进程频繁的读写操作可能引发此类问题。

细分而言,导致 ANR 的原因如下:

  1. 耗时的网络访问,如长时间等待网络响应。
  2. 大量的数据读写操作,占用过多系统资源。
  3. 复杂的数据库操作,导致数据库锁等待或查询时间过长。
  4. 硬件操作,如调用 camera 等硬件设备时出现阻塞。
  5. 调用 thread 的 join()方法、sleep()方法、wait()方法,或者在等待线程锁时,导致主线程等待时间过长。
  6. service binder 的数量达到上限,影响系统通信。
  7. system server 中发生 Watch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值