一.后端接口返回数据错误
1.1 引起后端接口数据错误的原因:
- -未成功解析接口返回值
- -获取不到参数
- -参数类型不对导致代码报错
1.2 这类问题来源主要有:
- -历史遗留数据
- -网络问题导致接口超时或漏了数组元素
- -前后台没有统一参数类型标准
- -参数名错误
1.3 如何定位:
抓包,对照接口文档逐一进行参数对比,判断返回值集合数据中是否某个元素的参数和其它元素的参数有内容/类型/为空/不存在/规范不同
二.手机内存问题
2.1 引起客户端客户端代码报错的原因
- -兼容不好
- -内存不足
- -内存泄露造成app开辟内存空间失败
- -内存泄漏。
2.2 解决方案
杀死后台其它进程, 崩溃的app要进行全面测试, 定位到具体那个操作导致崩溃
2.3 测试方案
- 先进行兼容性测试, 使用不同操作系统/手机型号/品牌/系统版本/蓝牙版本,执行一些读写相关功能的测试用例
- 监控app, 观察各种操作后, 占用的内存是否超过预期
- 让开发规范代码,及时释放掉占用的存储空间。
- 安装超多app,尽可能多打开,然后运行被测试app,观察是否频繁崩溃,可以用monkey测试,而判断出被测app的生存能力
三.数组下标问题
3.1 客户端app代码报错
3.2 问题根源
需要操作的元素已经消失/代码错误,超出实体数量/读取写入本地文件或缓存时的IO错误
3.3 解决方案
调查引起崩溃的具体操作步骤,然后提交开发解决,前端代码容错率需要提高
3.4 测试方案
- 边界值测试为核心思想,测试正常情况有关数量的功能用例
- 要进行code review:保证代码没有错误,循环中没有超出实体数量
- 保证代码容错性高,每个循环都要有越界异常捕获并处理
四.页面渲染耗时过多
4.1 产生问题原因:
生成控件/调用时被阻碍,导致前端app代码报错
4.2 问题根源:
渲染过慢,操作过快,兼容性不好
4.3 解决方案
- 更换手机,减缓操作速度
- 优化设计避免连续点击造成操作过快
- 优化设计减轻页面加载渲染耗时
4.4 测试方案
对复杂/加载耗时页面进行快速操作,让本不应该出现在一起的俩个控件出现在一起
五.权限相关
5.1 产生问题原因
客户端未对无权限情况处理,导致代码报错
5.2 问题根源
用户访问未获取到系统相关权限的功能,客户端又未对此情况进行处理
5.3 解决方案
修改崩溃bug,设计此情况的处理机制,如提示用户去手动开权限,自动退出等情况
5.4 测试方案
关闭所有系统权限,然后访问所有系统权限相关的页面和功能
例如: 相册,照相,WIFI,蓝牙,定位,GPS等权限
六.第三方导致异常
6.1 产生问题的原因
- 第三方广告的突然弹出
- 其他app分享进来和出去
- 各种第三方app的消息弹窗提醒
6.2 测试方案
- 在各个页面,手动触发大多数app或者被测app的外接广告来测试
- 用其他主流app测试分享,或被测app分享出去再回来看是否已经被退出
- 收到其他app的强制提醒
七.横竖屏方向问题
7.1 产生问题原因:
因横竖屏导致app崩溃
7.2 解决方案:
重启app
7.3 测试方案:
- 先横屏再打开app
- 先竖屏再打开app
- 打开app后,各种页面上,功能前中后,横竖屏来回切换
八.多语言问题
8.1 产生问题原因:
各种语言导致崩溃
8.2 测试方案:
- 先切换成各国语言,再开app进行各种功能用例测试
- 先开app,再来回切换各国语言进行测试
九.其他代码错误
9.1 产生问题原因:
客户端app代码错误
9.2 问题根源:
各种异常操作,正常操作
9.3 解决方案:
- adb logcat -v time 命令把日志打印出来,后台查看崩溃日志
- 有了日志,可以通过查找以下几个字段来快速定位问题:
- ANR:查看应用是否出现了ANR的情况
- Exception:查看所有发生异常的地方,看看是不是有没有捕获到的异常
- OOM:当应用占用的内存超过了系统可以给应用分配的最大内存时,就会出现OOM
十.弱网问题
10.1 产生问题原因:
客户端解析json返回值失败
10.2 问题根源:
网络较差,json返回数据串太长
10.3 解决方案:
- 用户换更快网络,客户端对此操作增加等待时间
- 接口返回进行异步处理
- 增加翻页功能
以上, 所有问题在实际app测试中, 都是较为常见的异常, 希望能够给大家带来一定的帮助!