12. App 测试应该怎么测
App 测试和 Web 测试有相似之处,但也有明显差异。
App 的运行环境、安装更新、设备兼容、用户交互都和 Web 不同,测试时要针对性覆盖。
一、App 测试的核心差异
App 和 Web 的主要差异:
- App 需要安装和更新;
- App 运行在不同设备和系统;
- App 有前后台切换和离线场景;
- App 有推送通知和权限管理;
- App 有手势和特殊交互;
- App 有性能和电量消耗。
如果只像测 Web 一样测 App,很容易漏掉 App 特有问题。
二、安装、更新和卸载要测
App 的生命周期从安装开始。
要覆盖:
- 新安装;
- 覆盖安装;
- 版本升级;
- 版本降级;
- 卸载重装;
- 数据保留和清除。
比如覆盖安装后:
- 老版本数据是否保留;
- 新版本功能是否正常;
- 登录状态是否保持;
- 缓存是否清理。
三、功能测试要结合 App 场景
App 功能测试不只是点按钮,还要考虑 App 特有场景:
- 前后台切换;
- 杀进程重启;
- 网络切换和弱网;
- 离线模式;
- 推送通知;
- 权限弹窗;
- 手机返回键;
- 屏幕旋转;
- 多任务切换。
比如视频播放功能:
- 前台播放是否正常;
- 后台播放是否暂停或继续;
- 网络切换是否自动恢复;
- 杀进程重启是否可续播。
四、兼容性测试要覆盖主流设备
App 兼容性比 Web 更复杂:
- 操作系统:iOS、Android;
- 系统版本:主流版本和常见历史版本;
- 设备型号:主流机型和部分低端机;
- 屏幕尺寸:不同分辨率和屏幕比例;
- 运营商和网络:不同网络环境。
时间有限时,优先覆盖主流系统版本和主流机型。
五、弱网和离线要重点测试
App 经常在移动网络下使用,弱网和离线场景要重点测试:
- 2G、3G、4G、5G 不同网络;
- 网络切换:WiFi 切换到移动网络;
- 网络中断和恢复;
- 请求超时和重试;
- 离线模式是否可用;
- 离线数据是否缓存;
- 恢复网络后是否同步。
很多 App 问题都是弱网和离线场景导致的。
六、权限和推送要专门测试
App 权限管理比 Web 更复杂:
- 首次启动权限弹窗;
- 拒绝权限后功能是否降级;
- 再次请求权限的提示;
- 权限设置变更后的行为。
推送通知要测试:
- 前台收到推送;
- 后台收到推送;
- 点击推送跳转;
- 推送权限关闭后的行为。
七、性能和稳定性要有基础意识
App 性能测试可以关注:
- 启动时间;
- 页面加载时间;
- 滑动流畅度;
- 内存占用;
- 电量消耗;
- CPU 使用;
- 崩溃率。
专业性能测试可以由性能测试团队负责,但功能测试要有基础意识。
八、安全测试要关注 App 特有问题
App 安全测试可以关注:
- 安装包是否可篡改;
- 数据是否明文存储;
- 接口是否可被抓包篡改;
- 登录 Token 是否安全存储;
- 日志是否泄露敏感信息;
- Debug 模式是否关闭;
- 权限是否过度申请。
这些问题往往是 App 漏洞的高发区。
九、面试回答模板
可以这样回答:
App 测试我会从安装更新、功能场景、兼容性、弱网离线、权限推送、性能和安全几个方面展开。安装更新要测新安装、覆盖安装、版本升级降级、卸载重装;功能场景要测前后台切换、杀进程重启、网络切换、离线模式、推送通知、权限弹窗、返回键、屏幕旋转;兼容性覆盖主流系统版本、机型、分辨率和网络;弱网重点测不同网络质量、切换、中断恢复和离线模式;权限推送关注弹窗、拒绝降级、点击跳转;性能关注启动时间、加载、流畅度、内存电量;安全关注安装包、数据存储、接口抓包、Token 和日志。
这个回答能体现你有完整的 App 测试思路。
十、下一步建议
建议你把一个熟悉的 App 功能按上面维度重新整理:
- 安装更新场景;
- App 特有交互场景;
- 兼容性覆盖范围;
- 弱网和离线场景;
- 权限和推送场景;
- 性能和安全关注点。
