一、常见的崩溃场景
1.代码问题
- 代码逻辑问题,比较常见的崩溃问题,在测试过程中很容易被发现,取决于测试用例和执行场景覆盖的全面性
- 找不到方法或函数导致的崩溃,属于必崩的问题,很容易发现
- 对象没有判空,返回参数没有做校验,数组越界,等边界问题,利用边界值测试和异常测试可以发现大部分问题
2.兼容问题
- 软件兼容:与三方软件切换时引起的崩溃,兼容问题,通常在测试过程中比较容易发现
- 设备兼容:设备兼容问题,不同手机上兼容导致的崩溃
3.网络问题
- 弱网:弱网接口超时,没有正确的数据返回,导致的崩溃
- 断网:断网重连时,客户端没有正确处理连接的
4.前后台切换
- 切后台放置一会后返回app,导致Activity错误的销毁或重启
- 切后台游戏场景和数据发生变化一段时间后返回app,导致数据处理错误引发崩溃
- 前台锁屏一段时间回到app,Activity被错误的销毁或者重启
5.性能问题
- 内存占用过高,主要场景的内存性能测试
- 内存泄露,通常是先发现内存管理问题后,再设计相关的场景执行测试
6.小内存手机专项测试
- 针对项目用户画像的top设备做针对性的测试
- 小内存手机的专项测试
7.异常case
- 多点触控,同时调用多个方法引发冲突导致的崩溃
- 游戏嵌套native的项目,连续点击进入和退出,初始化多次游戏引擎,导致的重复调用和销毁
X.其他问题
- 引擎版本问题,引擎版本本身存在的崩溃问题,或者没有正确使用引擎提供的方法导致的崩溃
- so库、sdk,使用方法不当、或者本身存在问题,或者版本兼容问题,引发的崩溃
二、崩溃问题的常见测试方法
1.功能测试
2.边界值测试
3.性能测试
4.兼容测试
5.探索测试
三、线上崩溃、偶现崩溃的解决办法
1.线上崩溃:
- 接入开发者服务平台,比如:bugly
- 按发布版本周期性的收集线上崩溃率数据
- 收集崩溃错误上报信息
- 分析崩溃原因,定位复现问题
- 解决后的回归验证
2.偶现崩溃:
- 及时收集崩溃日志,或采用录屏方式记录崩溃前的行为
- 分析崩溃原因,缩小排查范围,集中火力复现
- 解决后的回归验证
如果你看到这里,方便给一个免费的点赞、收藏和评论吗,谢谢!!!