面试了几家大厂,拿了几个 offer,分享一波软件测试面经!

你好,我是测试小牛。

在这家公司待了两年了,基本上功能,自动化,性能都有做。而且公司系统相对比较复杂,链路比较长,相对来说,还是能学习到不少东西。

而且比较难得的一点是,公司加班相对来说比较少,一般七点左右就能走了,偶尔加班到九点。可以说是十分安逸了,可以有时间来做公众号,学习新技术。

换工作的想法其实很早就有了,只是最近才开始着手准备。

接下来,说下面试的一些情况。首先我简历上面主要写了两个项目,一个是接口自动化,另一个是性能测试,然后编程语言主要以 python 为主。

面试的话主要大部分还是围绕编程语言,自动化,性能测试展开,当然也会有一些用例设计之类的基础题目,问工具的没有。

编程语言会问一些语言细节问题,自动化主要会问框架的搭建情况,做自动化的意义等等,性能会问如何定位瓶颈,如何进行监控之类的。除此之外,还喜欢问 redis,mq 之类的中间件。

当然除了这些常规问题之外,面试还喜欢问一些考察你独立思考问题和总结问题能力的问题,比如这个应用场景是什么?做的过程中遇到什么问题,怎么处理的?解决完之后有没有形成自己的方法论等等

就面试情况来看,对于这些非知名厂,想要拿到 20k 左右还是需要一些技术能力和积累的,不是培训机构出来背几个面试题就能应付的。

比如性能测试时会问你一些 JVM 相关的问题,试问哪个培训机构会培训到呢?

当然我自己面试的公司不多,也都是他们先私信我去面试的,因为感觉没准备好,所以就没有投递大厂。

除此之外,还跟其他一些正在面试找工作的伙伴交流,简单列一下面试出现的一些问题吧,大家作个参考。

基础题:

  1. 测试用例你一般是怎么设计的,怎么可以提高覆盖率?有没有形成自己的一套方法论?
  2. 电梯是怎么测试的?用例设计
  3. 从零到一独立负责一个大项目,你是如何开展测试的?
  4. 接口测试你是怎么做的?都发现了哪些问题,详细说下定位分析过程。
  5. 测试过程中你遇到最难得一个技术问题是什么?如何解决的?
  6. 你们公司后端是微服务架构吗?介绍一下

数据库

  1. 说一下 sql 是怎么优化的?
  2. 怎么看索引有没有生效的?索引的几种类型说一下。什么情况会导致索引失效?一般都在哪些字段上面加索引?索引应用场景
  3. 什么是数据库死锁,如何避免?
  4. 手写 sql 单表查询,分组,排序等操作
  5. 手写 sql 多表连接查询,嵌套子查询等

网络

  1. Http,rpc 协议的特点,除了 http 协议接口还测试过哪些协议接口?怎么测试的?
  2. 说下 cookies,session,token 鉴权机制?为什么要引入这套机制?
  3. 浏览器输入百度网址发生了什么?DNS 解析过程
  4. tcp 为什么三次握手不是两次?

Linux

  1. Linux 监控操作系统的常用命令,查看 JVM 的命令
  2. Linux 三剑客说一下有什么区别,应用场景是什么?
  3. 查找大于 1M 的文件 linux 命令
  4. Linux 查找当前目录下所有后缀为.py 的文件
  5. Shell 学过吗?都会哪些东西?说一下应用场景?

Python

  1. 说一下装饰器,应用场景有哪些,项目中是怎么用到的?
  2. 深浅拷贝
  3. 说下 python 的可变参数,应用场景是什么?
  4. 面向对象三大特征
  5. 类变量,实例变量,类对象,实例对象的区别
  6. return 和 yield 区别
  7. 推导式,迭代器,生成器
  8. Python 中私有变量能否访问
  9. Python 中类的方法种类和区别


接口自动化

  1. 有了 postman,jmeter 还有开源的接口自动化平台,为什么还要写代码来做自动化,你们这套自动化框架的意义是什么?
  2. 说下接口自动化分别用了哪些框架,怎么实现的,你主要负责哪些部分?
  3. 你们这套框架最难的技术点有哪些?
  4. 搭建框架过程中遇到哪些问题,怎么解决的?
  5. 数据驱动怎么做的?关键字驱动怎么做的?
  6. 这套框架覆盖了开发多少业务代码,怎么统计出来的?
  7. 每个框架的技术细节,不一一举例了......

性能测试

  1. 你们公司性能测试怎么做的,说一下流程?
  2. TPS 上不去什么原因,怎么排查?响应时间太长怎么分析?
  3. 线程阻塞和死锁问题怎么去定位分析,有什么现象?
  4. 内存泄露和内存溢出有什么区别?分别会有什么现象?怎么定位分析?
  5. 数据库是怎么监控的,sql 慢查询怎么监控分析?
  6. 如何进行全链路监控分析,定位性能瓶颈?
  7. 压测线上环境都会遇到什么问题,数据隔离怎么做的?如何减小对生产影响?
  8. 测试过程中都发现了哪些性能问题,怎么定位分析的?优化方案是什么?

JVM

  1. JVM 内存结构
  2. 什么时候垃圾回收,哪些内存需要垃圾回收?
  3. JVM 参数怎么调优?

中间件

  1. 正向代理和反向代理区别?
  2. Mq 是如何测试的?你项目中怎么应用的?不同 mq 的优缺点?为什么使用 mq?
  3. 为什么使用 redis,redis 五种数据类型,如何测试 redis 的,项目中如何应用的?
  4. 都发现过哪些缓存方面的 bug,怎么定位的?
  5. Redis 穿透,击穿,雪崩机制,被问了好几次......

手撕代码

  1. 常见的排序算法,冒泡,快排等
  2. 数组,字符串的相关算法操作比如找一个字符串中重复最长的字符串等
  3. 简单的数据结构栈,队列,链表的操作等

上面主要就是最近面试经常遇到的一些问题,当然有些我也回答的不太好,需要回到家进行查询,总结。

尤其手写代码这块,准备去牛客网刷刷题加强一下。

免费获取简历,面试题,测开,自动化,性能以及各种测试工具等 24 种学习资源,获取方式参考下面文章:

测试资源藏宝图

小牛翻遍全网分类整理了自动化,性能测试各种测试工具等一百多本电子书,摸鱼学习必备.....获取方式参考下面这篇文章:

免费领福利啦!

对于转行的或者在做测试的同学,如果你有什么困惑或者想了解这个行业的点,可以留言给我。

更多文章干货可以关注下我的微信公众号:测试小牛进阶

文章为作者独立观点,不代表BOSS直聘立场。未经账号授权,禁止随意转载。