1.3 排查问题思路

【考点讲解】

排查问题是测试工程师的一项基本技能,在测试工作中,测试工程师需要帮助开发同学定位和复现Bug,只有知道问题出现在哪,才能够有效的解决问题。
在测试面试中,面试官有可能会根据实际项目,设定一个异常的场景,比如功能缺陷、页面卡顿、网络不通、APP崩溃等等,让面试者对异常原因进行排查,考察的是面试者的临场发挥、随机应变能力,以及考察排查问题是否思路清晰。
面试中如果遇到这类问题,对于校招生来说,没有经历过测试实战,难免会出现无从下手的情况,但一般来说,发生异常的时候,排查问题的方法基本上都是固定的,中心思想就是:顺藤摸瓜,采集有效证据。
一般来说,排查问题的思路是:
  1. 先从问题的表象出发,能够把现象描述清楚。
  2. 然后开始寻找问题复现的规律,看在什么情况下,该问题是毕现的。
  3. 从前端到后端,开始逐步进行排查,搜集证据。
  4. 一般问题常常发生在前后端交互的过程中,用抓包来排查数据交互过程中,是否数据包存在异常。
  5. 后端问题需要查看后端日志,看看是否有报错。
本小节将会列举功能缺陷页面卡顿崩溃网络异常兼容性问题性能问题等异常场景,进行深入讲解,希望同学们能掌握其中的排查问题思路,面试中假如遇到异常排查的问题,做到举一反三。
排查问题的相关考点如下:
  • 功能缺陷定位
  • 页面卡顿定位
  • 崩溃问题定位
  • 网络问题排查
  • 兼容性问题排查
  • 性能问题排查

【例题示例】

1.3.1 有个用户反馈上传头像失败,排查其产生的原因

【考点映射】
  • 功能缺陷定位
【出现频度】★★★
【难度】★★☆

【参考答案】
我们可以先来看一张用户上传图片的简要流程图。
我们在排查上传头像失败的功能时,可以从四个部分去分别做检查:“图片源”、“上传入口”、“上传接口”和“图片对象存储”。
“图片源”的检查包括:图片尺寸、图片大小和图片格式是否满足上传要求。
“上传入口”即为上传头像的前端页面,这个页面有可能是浏览器网页,也有可能是APP的页面。如果是浏览器的网页,我们可以通过浏览器的“开发者工具”的Console去查看是否有前端报错;如果是APP的网页,一般要上传图片,需要获取“相机”或“相册”的系统权限,才可以正常提交图片。
文件上传从前端到后端,中间经过网络传输,只要是有网络传输,就需要去检查是否有可能出现网络异常。
“上传接口”是后端上传接口,我们需要把图片上传到后端,由后端服务去对图片进行处理。我们可以通过后端日志,去排查上传图片的接口是否有异常。我们还可以通过抓包,去查看前端请求过来的参数传递是否正确。另外,服务器上的上传文件一般都是会有大小限制,我们可以通过配置文件去查看上传图片的限制。其他的比如:数据库异常、命中风控策略,也有可能会导致图片上传失败。
我们的图片最终都会存到“对象存储服务器”上,对象存储服务器一般都是分布式部署,而且目前基本上都是部署在云服务器上,这样有个好处就是扩容十分方便,所以一般情况下,很难出现对象存储服务器满载的情况。但是后端访问不上对象存储服务确是有可能发生的,比如连接配置出错、网络异常,都有可能导致访问对象存储服务超时。



1.3.2 假如APP出现了闪退,请分析APP闪退的原因

【考点映射】
  • 崩溃问题定位
【出现频度】★★
【难度】★★☆

【参考答案】
APP出现闪退,主要原因可以分为两大块,外部因素导致和APP自身因素导致,详情如下图所示:


1.3.3 偶然闪退应该如何排查?

【考点映射】
  • 功能缺陷定位
【出现频度】★★★
【难度】★★★

【参考答案】
  1. 一般成熟的团队都会有 crash 的监控平台,可以从 crash 平台上去查看 crash 发生位置。
  2. 手工尝试复现 crash,一般偶然的闪退,都不会特别容易