1、交叉事件测试:
- 多个APP同时在后台运行,并交替切换到前台,是否影响正常功能
- 要求相同系统资源的多个APP前后台交替切换是否影响正常功能,比如两个APP都需要播放音乐,两者在交替切换过程中,播放音乐功能是否正常
- APP运行时接听电话
- APP运行时接收信息
- APP运行时提示系统升级
- APP运行时系统闹钟事件
- APP运行时低电量模式
- APP运行时第三方安全软件弹出警告
- APP运行时网络切换
2、流量测试:
- 执行业务操作
- 后台运行
- 安装完成后启动
- 安装包本身大小
- 升级
节省流量:
- 数据压缩,尤其是图片
- 使用优化的数据格式,比如同样信息量的JSON文件比XML小
- 遇到既需要加密,又需要压缩的场景,先压缩,再加密
- 减少单次GUI操作触发的后台调用次数
- 每次回传数据尽量只包括必要数据
- 启用客户端缓存机制
3、耗电量测试:
- APP运行但没有执行业务操作时的耗电量
- APP密集执行业务操作时的耗电量
- APP后台运行的耗电量
Android通过adb命令“adb shell dumpsys battery”
IOS通过Apple的官方工具Sysdiagnose来收集耗电量信息,进一步通过Instrument工具链中的Energy Diagnostics进行耗电量分析
4、弱网测试
4.1.网络测试流程
- 网络正常时
- 无网络时
发送网络请求是否会闪退卡死
无网状态测试建议按照页面划分进行,针对每个页面单独测试无网状态的显示,页面间跳转的显示,页面内功能的点击和显示,同时关注无网到有网时的页面恢复显示状态、数据上报情况是否正常
- 弱网时
请求是否做了超时处理
网络延迟时操作App是否会crash,ANR
请求回调未完成时,操作是否闪退
是否请求堆积
响应时间
页面显示,提示
- 网络转换
同步数据过程中断开网络
传输数据过程中,wifi与流量切换
弱网发送请求,恢复网络后是否重复提交
4.2.弱网测试经典bug
- 重复下载
用户登录应用时下载初始化数据,下载过程中因网速太慢点击取消并重新登录,数据初始化完成后出现重复,造成数据不一致
原因:下载失败,没有进行数据回滚
解决:通过事务处理下载逻辑,失败后回滚
- 重复上传
用户点击数据上传,数据上传过程中网络弱且不稳定,基于联网状态自动触发数据上传,导致出现数据重复写入,形成脏数据
原因:没有做唯一标识处理
- 现象和提示信息不一致
在弱网环境下,用户输入用户名和密码点击登录,应用链接超时,却返回用户名和密码错误提示。(错误与提示信息不一致)
- 崩溃且闪退
在弱网环境下,用户输入用户名和密码后点击登录,登录过程中应用崩溃并且闪退
原因:加载数据严重依赖后来的异步加载,数据还未加载完成,就跳到了下个activity
解决:健壮数据加载流程,标记加载状态,等依赖数据加载完成后,再跳转
- 第一次请求没有响应,再次请求,请求结果被第一次覆盖
在弱网环境下,用户第一次输入搜索关键字没有得到响应后,再次输入全新关键字并发送请求,等待搜索结果返回后,当前结果页被之前的关键字搜索结果刷新覆盖。
- 请求时间过长,页面控件仍可操作
弱网络环境下,用户请求页面响应时间较长,等待的过程中,页面上的部分控件仍然可以操作
- 接上,当用户点击控件时,出现应用闪退现象
在弱网测试过程,如果加载过程中发生任何的闪退,都是问题,都要提交
- 302跳转页面,达到内置超时阀值后,webview自动关闭
- 加载过程中,在超出自己的承受范围之外的时间等待,没有任何友好提示的,也要提交bug
5、启动时间
(1)冷启动
(2)热启动
adb shell am start -W packageName/ActivityName
TotalTime:应用自身启动耗时
WaitTime:系统启动应用耗时
测试标准:冷启动时间不超过1.5s, 热启动不超过1s
6、内存
adb shell dumpsys meminfo packageName
测试点:
(1)空闲状态:
(2)中强度:
(3)高强度:
关注数据:
Native heap alloc
Dalvik heap alloc
PSS
7、CPU
测试点:
1).在空闲时间(切换至后台)的消耗,基本没大应用使用cpu
2).在运行一些应用的情况下,cpu已占50%的情况下,观察应用程序占用cpu的情况
3).在高负荷的情况下看CPU的表现(cpu占用应是在80%以上)
具体场景:
1、应用空闲状态运行监测CPU占用率
空闲状态:应用按Home键退到后台,不再占用系统的状态(通常是灭屏半分钟后)
CPU占用率=0%
2、应用中等规格运行监测CPU占用率
中等规格:模拟用户最常见的使用场景
CPU占用率≤30%
3、应用满规格长时间正常运行监测CPU占用率
Monkey测试
CPU占用率≤30%
4、应用正常运行期间监测CPU占用率峰值
应用正常运行:打开应用进行基本操作
CPU占用率≤50%
8、常见问题:
(1)APP常见严重问题及引起原因
crash:
- 外部因素:
手机内存不足
缓存垃圾太多
软件冲突、资源竞争
版本系统过低
杀毒软件误判
网速不稳定
- 内部因素:
APP版本过低,与后端接口不兼容
不兼容新版操作系统
缺少数据包
内存泄漏
程序本身bug:
空指针异常
数组越界
堆栈溢出
并发操作
逻辑错误
ANR:
主线程执行了耗时操作,比如数据库操作或网络编程
其他进程占用CPU导致本进程得不到CPU时间片,比如其他进程的频繁读写操作可能会导致这个问题
细分:
耗时的网络访问
大量的数据读写
硬件操作
(2)APP测试与Web测试的区别
- 系统架构
web一般b/s架构,基于浏览器
APP是c/s架构,基于客户端
web不用更新客户端,APP需要更新客户端
- 性能
web主要是响应时间
APP还有流量、电量、CPU
- 兼容
web主要是浏览器、电脑系统、硬件方面的
APP主要是手机机型、屏幕尺寸、分辨率、操作系统
APP还需安装、卸载、更新,除常规,还有安装中断、弱网、断网,覆盖安装,安装后删除安装文件等
(3)APP兼容测试怎么做
平台兼容性测试:测试APP能否在不同的操作系统和设备上正常运行
浏览器兼容:如果APP是基于Web技术开发的,那么需要测试在不同浏览器和版本的兼容
版本兼容测试:操作系统的版本、前后端版本变化
UI兼容:不同设备,不同屏幕尺寸,不同分辨率
(4)APP提示无法连接网络
- 检查网络环境
流量和wifi是否可用,其他APP是否有网络
APP是否有网络限制,比如内网才可用
手机是否开启了代理,代理异常
- 检查APP的网络请求
请求域名是否正常
接口是否响应超时、异常
(5)安卓和IOS的区别
- 机型:安卓机型多
- 查看日志:安卓用adb,ios用插件
- 编程语言
- 操作习惯
- 分辨率
- 操作系统
- push
- 安装卸载渠道
- 升级测试