一面
面试官应该是团队的某位技术大佬,一脸理工男的严肃,令人感到鸭梨很大。
简单介绍一下自己;
自动化测试框架怎么去实现的?讲讲自动化性价比等一些业界常见问题;
Java中的基类是什么?基类中常用的方法有哪些?(我提到了getClass(),所以面试官问getClass方法用来做什么?)
Redis的数据类型有哪些?
了解Redis的数据持久化吗?
SpringWeb的开发有了解吗?
多线程了解吗?讲解一下多线程常用的关键字;
Hashmap的put方法具体是怎么实现的,讲讲过程?
Hashmap是线程安全的吗?为什么不是线程安全的呢?
除了使用sychronized关键字来解决线程安全问题,还有其他什么关键字吗?
线程池中三个重要的参数是什么?
你知道有哪些索引?索引为什么会失效?
讲讲数据库事务的四大特性?
讲讲数据库的事务的隔离级别?
讲讲数据库的事务传播级别?
数据库SQL题目
算法题目
设计LRU,但题目太长看不懂,所以面试官换了一道简单一点的题目——设计LRU缓存结构。
语言:C、Python、C++、Javascript、Python3、Java、Go皆可。
- 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吗?为什么来这里?
你有什么想问我的?
总结:
感谢每一个认真阅读我文章的人!!!
作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。