面试了几家大厂,拿了几个 offer,分享一波软件测试面经!
你好,我是测试小牛。
在这家公司待了两年了,基本上功能,自动化,性能都有做。而且公司系统相对比较复杂,链路比较长,相对来说,还是能学习到不少东西。
而且比较难得的一点是,公司加班相对来说比较少,一般七点左右就能走了,偶尔加班到九点。可以说是十分安逸了,可以有时间来做公众号,学习新技术。
换工作的想法其实很早就有了,只是最近才开始着手准备。
接下来,说下面试的一些情况。首先我简历上面主要写了两个项目,一个是接口自动化,另一个是性能测试,然后编程语言主要以 python 为主。
面试的话主要大部分还是围绕编程语言,自动化,性能测试展开,当然也会有一些用例设计之类的基础题目,问工具的没有。
编程语言会问一些语言细节问题,自动化主要会问框架的搭建情况,做自动化的意义等等,性能会问如何定位瓶颈,如何进行监控之类的。除此之外,还喜欢问 redis,mq 之类的中间件。
当然除了这些常规问题之外,面试还喜欢问一些考察你独立思考问题和总结问题能力的问题,比如这个应用场景是什么?做的过程中遇到什么问题,怎么处理的?解决完之后有没有形成自己的方法论等等
就面试情况来看,对于这些非知名厂,想要拿到 20k 左右还是需要一些技术能力和积累的,不是培训机构出来背几个面试题就能应付的。
比如性能测试时会问你一些 JVM 相关的问题,试问哪个培训机构会培训到呢?
当然我自己面试的公司不多,也都是他们先私信我去面试的,因为感觉没准备好,所以就没有投递大厂。
除此之外,还跟其他一些正在面试找工作的伙伴交流,简单列一下面试出现的一些问题吧,大家作个参考。
基础题:
- 测试用例你一般是怎么设计的,怎么可以提高覆盖率?有没有形成自己的一套方法论?
- 电梯是怎么测试的?用例设计
- 从零到一独立负责一个大项目,你是如何开展测试的?
- 接口测试你是怎么做的?都发现了哪些问题,详细说下定位分析过程。
- 测试过程中你遇到最难得一个技术问题是什么?如何解决的?
- 你们公司后端是微服务架构吗?介绍一下
数据库
- 说一下 sql 是怎么优化的?
- 怎么看索引有没有生效的?索引的几种类型说一下。什么情况会导致索引失效?一般都在哪些字段上面加索引?索引应用场景
- 什么是数据库死锁,如何避免?
- 手写 sql 单表查询,分组,排序等操作
- 手写 sql 多表连接查询,嵌套子查询等
网络
- Http,rpc 协议的特点,除了 http 协议接口还测试过哪些协议接口?怎么测试的?
- 说下 cookies,session,token 鉴权机制?为什么要引入这套机制?
- 浏览器输入百度网址发生了什么?DNS 解析过程
- tcp 为什么三次握手不是两次?
Linux
- Linux 监控操作系统的常用命令,查看 JVM 的命令
- Linux 三剑客说一下有什么区别,应用场景是什么?
- 查找大于 1M 的文件 linux 命令
- Linux 查找当前目录下所有后缀为.py 的文件
- Shell 学过吗?都会哪些东西?说一下应用场景?
Python
- 说一下装饰器,应用场景有哪些,项目中是怎么用到的?
- 深浅拷贝
- 说下 python 的可变参数,应用场景是什么?
- 面向对象三大特征
- 类变量,实例变量,类对象,实例对象的区别
- return 和 yield 区别
- 推导式,迭代器,生成器
- Python 中私有变量能否访问
- Python 中类的方法种类和区别
接口自动化
- 有了 postman,jmeter 还有开源的接口自动化平台,为什么还要写代码来做自动化,你们这套自动化框架的意义是什么?
- 说下接口自动化分别用了哪些框架,怎么实现的,你主要负责哪些部分?
- 你们这套框架最难的技术点有哪些?
- 搭建框架过程中遇到哪些问题,怎么解决的?
- 数据驱动怎么做的?关键字驱动怎么做的?
- 这套框架覆盖了开发多少业务代码,怎么统计出来的?
- 每个框架的技术细节,不一一举例了......
性能测试
- 你们公司性能测试怎么做的,说一下流程?
- TPS 上不去什么原因,怎么排查?响应时间太长怎么分析?
- 线程阻塞和死锁问题怎么去定位分析,有什么现象?
- 内存泄露和内存溢出有什么区别?分别会有什么现象?怎么定位分析?
- 数据库是怎么监控的,sql 慢查询怎么监控分析?
- 如何进行全链路监控分析,定位性能瓶颈?
- 压测线上环境都会遇到什么问题,数据隔离怎么做的?如何减小对生产影响?
- 测试过程中都发现了哪些性能问题,怎么定位分析的?优化方案是什么?
JVM
- JVM 内存结构
- 什么时候垃圾回收,哪些内存需要垃圾回收?
- JVM 参数怎么调优?
中间件
- 正向代理和反向代理区别?
- Mq 是如何测试的?你项目中怎么应用的?不同 mq 的优缺点?为什么使用 mq?
- 为什么使用 redis,redis 五种数据类型,如何测试 redis 的,项目中如何应用的?
- 都发现过哪些缓存方面的 bug,怎么定位的?
- Redis 穿透,击穿,雪崩机制,被问了好几次......
手撕代码
- 常见的排序算法,冒泡,快排等
- 数组,字符串的相关算法操作比如找一个字符串中重复最长的字符串等
- 简单的数据结构栈,队列,链表的操作等
上面主要就是最近面试经常遇到的一些问题,当然有些我也回答的不太好,需要回到家进行查询,总结。
尤其手写代码这块,准备去牛客网刷刷题加强一下。
免费获取简历,面试题,测开,自动化,性能以及各种测试工具等 24 种学习资源,获取方式参考下面文章:
小牛翻遍全网分类整理了自动化,性能测试各种测试工具等一百多本电子书,摸鱼学习必备.....获取方式参考下面这篇文章:
对于转行的或者在做测试的同学,如果你有什么困惑或者想了解这个行业的点,可以留言给我。
更多文章干货可以关注下我的微信公众号:测试小牛进阶