​测试开发面试题答案汇总(第2期)

面试题来源:**【面试干货】2020年软件测试面试题大全(持续更新)附答案 》 **

3.1 排查问题的思路

「Q:有个用户反馈上传头像失败,分析原因?」

「Q:app 闪退的原因?」

「Q:偶然闪退的排查?」

  1. 一般成熟的团队都会有 crash 的监控平台,可以从 crash 平台上去查看 crash 发生位点。

  2. 手工尝试复现 crash,一般偶然的闪退,都不会特别容易复现,可能需要适当施加一些比较苛刻的条件(弱网、断网、快速点击、快速划动等等)。

  3. 查看 crash 日志,比如 Android APP 可以用 adb 命令去查看:

// mac 下面
  1. 执行 Monkey 或遍历测试,暴力操作手机,尝试复现 bug。

「Q:网页卡顿的原因是什么?」

原因一:http 请求次数太多

解决:规范接口设计,减少 http 请求次数。

原因二:接收数据时间过长,如下载资源过大

解决:对 HTTP 传输进行压缩,可采用 gzip 无损压缩,压缩效果最佳。

原因三:JavaScript 脚本过大,阻塞了页面的加载

解决:将 JavaScript 脚本放在标签前。script 没有 async 和 defer 时,JS 文件将在下载后立即执行。这种情况下,script 放在顶部会阻塞页面呈现,在网速慢的情况下会导致“白屏”,直到脚本下载完毕才继续呈现页面。因此,script 放在底部可以让页面尽快呈现。

原因四:CSS、JavaScript、图片等需要重复加载

解决:静态资源统一放在一个静态域名上,减轻重复下载静态资源的负担。

原因五:cookie 影响

解决:减小 cookie 的影响 。去除没有必要的 cookie,如果网页不需要 cookie 就完全禁掉。此外,对 cookie 瘦身和设置合适的 cookie 过期时间,也能削弱 cookie 的影响。

原因六:网页资源过多

解决:使用 CDN 部署网络以提高***,可以先通过免费的 CDN 供应商来分发网页资源。

https://blog.csdn.net/zhouziyu2011/article/details/71453126

「Q:10%的用户反馈用不了功能,你将如何排查?」

关键词是10%,说明只对部分用户产生影响,考虑的思路有以下几点:

  1. APP 版本影响,可能是接口改动没有考虑版本控制,对低版本用户造成影响。

  2. 操作系统版本,可能是用户的操作系统过高或过低,没有做好兼容。

  3. 灰度测试或 AB 测试,可能是功能缺陷导致对部分灰度用户产生影响。

  4. 跟会员用户有关,可能是一些功能仅仅只对 VIP 会员开放,然而这部分功能有缺陷。

  5. 跟用户分布地域有关,比如说:有些地区没有开放功能,但是也给这些用户展示了入口。

「Q:登录的按钮不能点击,如何排查问题?」

登录按钮不能点击,大概率前端会有问题:

  1. 前端没有响应用户点击事件,导致请求发不出去。

  2. 前端发起 HTTP 请求,但是后端接口返回异常,前端捕获异常之后,没有处理。

  3. 网络异常,发不出去请求,但是前端也没有作出提示。

  4. 内存不够,导致页面卡死

「Q:压测的时候,QPS 一直上不去,你会怎么排查?」

  1. 看被测服务器的性能,看是否资源被打满,导致请求无法连接 解决办法:被测服务器扩容。

  2. 看接口是否出现报错,以及响应时间是否变慢 解决办法:接口性能优化。

  3. 看压测机器的性能,是不是网络 IO 占满,并发数达不到 解决办法:多台压测机器并发。

  4. 看压测工具是否支持并发请求 解决办法:采用多线程或协程的方式去并发请求

「Q:APP 提示无法连接网络,你会如何排查?」

第一步:检查网络环境

  1. 检查 4G 和 Wifi 是否可用,可以先看手机网络连接图标状态,有无信号,是否弱网,并且可以切换其他 APP,测试网络是否可用。

  2. 检查是否有网络限制,比如仅公司内网可用的 APP,你在别的网络环境是无法连接的。

  3. 检查是否连接了代理或代理连接是否出现异常,手机连接电脑代理之后,如果不安装证书,发起 https 的请求将出现异常。

第二步:检查 APP 的网络请求

  1. 抓包,检查 APP 请求的域名是否正确

  2. 抓包,检查后端接口是否响应超时

  3. 抓包,检查后端接口是否返回异常,而 APP 没有做相关的异常提示。

「Q:怎么判断一个 BUG 到底是前端的 BUG 还是后端的 BUG?」

  1. 样式和交互层面的 Bug,大概率都是前端的 Bug

  2. 数据和文案相关的 Bug,大概率都是后端的 Bug

拿移动端来说,最简单但是又最实用的办法是对比测试,即 Android 和 iOS 对比测试,

假如说 Android 和 iOS 都有问题,可能是后端 Bug;

假如说 Android 和 iOS 有一端有问题,则可能是 Andorid 或者 iOS 某一终端的 Bug,但也不一定绝对,也有可能是后端的 Bug。

关注我的微信公众号【程序员臻叔】,
图片说明

回复「java」:即可获得java经典学习资料,带你轻松入门java编程。

回复「java面试题」:领取java相关经典面试资料,面试之前突击一把,大厂不是梦。

回复「python」:免费获取「python入门」高分好书,业余时间偷偷变牛逼。
回复「面试」:24个常见的测试面试题,你一定不想错过。
回复「书单」:获取2020年软件测试工程师必看的书单

回复「测试用例」:获取本人常用的 Excel 和 Xmind 测试用例模版