测试面试 | 某互联网大厂测试面试真题,你能回答出多少?

121 阅读4分钟

获取更多技术文章分享原文链接

近期,霍格沃兹测试学院的 @T同学 面试了某知名互联网大厂测试开发岗位,面试过程中遇到不少令人头疼的题目,心态也随之起伏。虽然最终通过三面,拿下高薪 Offer,但也直呼刺激。 本文是其复盘总结的部分面试真题,分享出来供各位测试小伙伴学习参考。看看下面这些题目,你可以回答出多少呢?

一面

面试官应该是团队的某位技术大佬,一脸理工男的严肃,令人感到鸭梨很大。

  • 简单介绍一下自己;
  • 自动化测试框架怎么去实现的?
  • 讲讲自动化性价比等一些业界常见问题;
  • Java 中的基类是什么?基类中常用的方法有哪些?(我提到了 getClass(),所以面试官问 getClass 方法用来做什么?)
  • Redis 的数据类型有哪些?
  • 了解 Redis 的数据持久化吗?
  • Spring Web 的开发有了解吗?
  • 多线程了解吗?讲解一下多线程常用的关键字;
  • Hashmap 的 put 方法具体是怎么实现的,讲讲过程?
  • Hashmap 是线程安全的吗?为什么不是线程安全的呢?
  • 除了使用 sychronized 关键字来解决线程安全问题,还有其他什么关键字吗?
  • 线程池中三个重要的参数是什么?
  • 你知道有哪些索引?索引为什么会失效?
  • 讲讲数据库事务的四大特性?
  • 讲讲数据库的事务的隔离级别?
  • 讲讲数据库的事务传播级别?
  • 数据库 SQL 题目
班级表t1:stuid, class
成绩表t2: stuid,sub,grade
统计:

每个班上同学总分>500的人数;
  • 算法题目 设计 LRU,但题目太长看不懂,所以面试官换了一道简单一点的题目——设计 LRU 缓存结构。 语言:C、Python、C++、Javascript、Python3、Java、Go 皆可。
设计 LRU 缓存结构,该结构在构造时确定大小,假设大小为K,并有如下两个功能
- set(key, value):将记录(key, value)插入该结构
- get(key):返回key对应的value值
[要求]
- set 和 get 方法的时间复杂度为O(1)
- 某个 key 的 set 或 get 操作一旦发生,认为这个 key 的记录成了最常使用的。
- 当缓存的大小超过 K 时,移除最不经常使用的记录,即 set 或 get 最久远的。
- 若 opt=1,接下来两个整数 x, y,表示 set(x, y)
- 若 opt=2,接下来一个整数 x,表示 get(x),若x未出现过或已被移除,则返回-1
- 对于每个操作 2,输出一个答案

[示例1]
输入
[[1,1,1],[1,2,2],[1,3,2],[2,1],[1,4,4],[2,2]],3
输出

[1,-1]
说明
- 第一次操作后:最常使用的记录为("1", 1)
- 第二次操作后:最常使用的记录为("2", 2),("1", 1)变为最不常用的
- 第三次操作后:最常使用的记录为("3", 2),("1", 1)还是最不常用的
- 第四次操作后:最常用的记录为("1", 1),("2", 2)变为最不常用的
- 第五次操作后:大小超过了3,所以移除此时最不常使用的记录("2", 2),加入记录("4", 4),并且为最常使用的记录,然后("3", 2)变为最不常使用的记录
  • 算法题目
输入一个链表,反转链表后,输出新链表的表头。

二面

这次面试官气场相对亲切柔和,整体氛围比较轻松。

  • 简单介绍一下自己?
  • 你认为自动化测试是否有必要去做?自动化有什么意义?
  • 项目中遇到过什么测试的难点吗,讲讲?
  • 谈谈你理解的测试开发是什么?
  • 设计微信朋友圈点赞和评论用例
  • 你平常如何去学习的?
  • 你未来有什么目标或者打算吗?
  • 你对团队有怎样的期望呢?
  • 你最晚多久能够入职呢?
  • 你目前手头上有其他家的 Offer 吗?为什么来这里?
  • 你有什么想问我的?

三面

还是技术面,不少问题仍然很有挑战,原本放松的心一下子又紧张起来。

获取更多技术文章分享

img