1.3 排查问题思路
【考点讲解】
排查问题是测试工程师的一项基本技能,在测试工作中,测试工程师需要帮助开发同学定位和复现Bug,只有知道问题出现在哪,才能够有效的解决问题。
在测试面试中,面试官有可能会根据实际项目,设定一个异常的场景,比如功能缺陷、页面卡顿、网络不通、APP崩溃等等,让面试者对异常原因进行排查,考察的是面试者的临场发挥、随机应变能力,以及考察排查问题是否思路清晰。
面试中如果遇到这类问题,对于校招生来说,没有经历过测试实战,难免会出现无从下手的情况,但一般来说,发生异常的时候,排查问题的方法基本上都是固定的,中心思想就是:顺藤摸瓜,采集有效证据。
一般来说,排查问题的思路是:
- 先从问题的表象出发,能够把现象描述清楚。
- 然后开始寻找问题复现的规律,看在什么情况下,该问题是毕现的。
- 从前端到后端,开始逐步进行排查,搜集证据。
- 一般问题常常发生在前后端交互的过程中,用抓包来排查数据交互过程中,是否数据包存在异常。
- 后端问题需要查看后端日志,看看是否有报错。
本小节将会列举功能缺陷、页面卡顿、崩溃、网络异常、兼容性问题、性能问题等异常场景,进行深入讲解,希望同学们能掌握其中的排查问题思路,面试中假如遇到异常排查的问题,做到举一反三。
排查问题的相关考点如下:
- 功能缺陷定位
- 页面卡顿定位
- 崩溃问题定位
- 网络问题排查
- 兼容性问题排查
- 性能问题排查
【例题示例】
1.3.1 有个用户反馈上传头像失败,排查其产生的原因
【考点映射】
- 功能缺陷定位
【出现频度】★★★
【难度】★★☆
【参考答案】
我们可以先来看一张用户上传图片的简要流程图。
我们在排查上传头像失败的功能时,可以从四个部分去分别做检查:“图片源”、“上传入口”、“上传接口”和“图片对象存储”。
“图片源”的检查包括:图片尺寸、图片大小和图片格式是否满足上传要求。
“上传入口”即为上传头像的前端页面,这个页面有可能是浏览器网页,也有可能是APP的页面。如果是浏览器的网页,我们可以通过浏览器的“开发者工具”的Console去查看是否有前端报错;如果是APP的网页,一般要上传图片,需要获取“相机”或“相册”的系统权限,才可以正常提交图片。
文件上传从前端到后端,中间经过网络传输,只要是有网络传输,就需要去检查是否有可能出现网络异常。
“上传接口”是后端上传接口,我们需要把图片上传到后端,由后端服务去对图片进行处理。我们可以通过后端日志,去排查上传图片的接口是否有异常。我们还可以通过抓包,去查看前端请求过来的参数传递是否正确。另外,服务器上的上传文件一般都是会有大小限制,我们可以通过配置文件去查看上传图片的限制。其他的比如:数据库异常、命中风控策略,也有可能会导致图片上传失败。
我们的图片最终都会存到“对象存储服务器”上,对象存储服务器一般都是分布式部署,而且目前基本上都是部署在云服务器上,这样有个好处就是扩容十分方便,所以一般情况下,很难出现对象存储服务器满载的情况。但是后端访问不上对象存储服务确是有可能发生的,比如连接配置出错、网络异常,都有可能导致访问对象存储服务超时。
1.3.2 假如APP出现了闪退,请分析APP闪退的原因
【考点映射】
- 崩溃问题定位
【出现频度】★★
【难度】★★☆
【参考答案】
APP出现闪退,主要原因可以分为两大块,外部因素导致和APP自身因素导致,详情如下图所示:
1.3.3 偶然闪退应该如何排查?
【考点映射】
- 功能缺陷定位
【出现频度】★★★
【难度】★★★
【参考答案】
- 一般成熟的团队都会有 crash 的监控平台,可以从 crash 平台上去查看 crash 发生位置。
- 手工尝试复现 crash,一般偶然的闪退,都不会特别容易