面试 | 阿里 & 百度的测试开发岗位会问哪些问题?

本文作者测试媛 @hswjj0925 为霍格沃兹测试学院「测试开发从入门到高级实战」系列课程在线班(第七期)的学员,从一开始初出茅庐、勉勉强强的初级测试开发水平,经过 4 个月努力学习和快速成长,成功拿到阿里 P6 Offer,并获得霍格沃兹测试学院优秀学员奖学金。学院老师和助教对她的一致印象是「学习非常主动、很勤奋、有耐心、会记录详尽的笔记、感觉性格很好」。

01 

背景介绍

本人是计算机专业的小硕一枚,在事业单位混迹了三年半,可以说是一事无成吧 😓,再加上没有北京户口,也不想继续蹉跎岁月,遂决心南下杭州发展。

在这个思考人生和规划职业发展的关键阶段,我有幸参加了霍格沃茨测试学院的「测试开发从入门到高级实战」第七期(线上班)的课程,从测试技术到职业软技能都收益颇多,这里要特别强调感谢霍格沃兹测试学院的思寒老师以及各位助教们!

前后参加过几家互联网公司的测试开发岗位面试,这里主要总结一下百度和阿里的面试心得,有成功经验也有失败教训,供各位小伙伴参考。

总体感觉,百度的面试官比较注重基础,问题不难但是覆盖范围比较全面,参加过两次百度的面试,一次止步三面,另一次止步于四面。而阿里的面试则比较注重项目经验,对框架的认识之类的。

02 

百度面试

第一次面试百度是在 2018 年 5 月,一面和二面还比较顺利,都是算法、数据结构之类的问题,但三面的时候,面试官觉得我的经历与百度不 Match,于是让我写个全排列,妥妥的挂掉 😢。

第二次面试就是在 12 月的时候,这时由于已经参加了霍格沃兹测试学院的「测试开发从入门到高级实战」课程,果然自信了好多,一直到四面。

一面

1. 项目经验

2. 遇到的某个难点是什么?如何解决的?

3. Java 中的容器有哪些?它们的区别和特性?

4. Java 多线程的创建

5. Python 中方法的参数是值传递还是引用传递?

6. Python 中元组和列表的区别

7. Flask 的某个问题(忘了😓)

8. 性能测试关注哪些指标?

9. Linux 中查找某个文件并删除它

10. Linux 查询 CPU、内存的指令

11. Git 的常见操作,如 git stash

12. 算法:快排的实现

13. 算法:数组中查找出现次数过半的数(这个没写好,据说空间复杂度高了😓)

14. 算法:查找链表的倒数第三个数

15. Java 的接口与抽象类的区别

二面

1. 项目经验

2. 测试的过程

3. 京东登录页面怎么测?

4. 算法:二叉树的深度计算

5. 算法:一亿个无序数找出 Top 100(这个也没写好,空间复杂度高了,应该用堆排序)

6. UI 测试的过程

7. 自己解决的最亮点的技术难点是什么?

8. TCP 和 UDP 的区别,如何保证 TCP 的可靠性?

9. 打开一个网页都发生了哪些事?

10. 如果一个普通用户,他的百度首页打不开,问题怎么定位?写出定位流程。

三面

1. 继续问项目经验和技术难点

2. 了解现在的工作环境,背景等

3. 北京户口,家庭情况,伴侣工作等

4. Web View 怎么测试?

5. UI 测试做的是 iOS 还是 Android?讲讲 iOS 的 UI 怎么测?


三面的时间很短,直接说过了。

四面

1. 家庭情况,伴侣工作,职位级别等

2. 和现在的领导关系如何?

3. 和现在的同事关系如何?

4. 抗压能力,有没有抗压经验?

5. 为什么不在事业单位呆了?

6. 准备好百度的工作模式了吗?

7. 什么时候入职、期望的薪资

总结:因为是北京的百度,而我本来就不是很想留北京,所以四面的时候,回答确实随意了点,给我挂掉也不为过。但是面完回来,感觉自己不会的点还有好多,需要继续埋头学习和实践。

03 

阿里面试

之后就去阿里面试,本来是报着吸取经验的态度去的,但最终在 2019 新年拿到 P6 的 Offer ,真的感到有些意外和惊喜,有点兴奋 😆!

一面

1. 自我介绍

2. 描述我开发过的一个小工具,业务、框架、数据库、遇到的问题、自己的工具自己是怎么测的?

3. 聊最近的一个项目,框架、环境、做过的哪些测试、遇到过什么难点、担任的角色?(一个项目会聊很久,聊的透透的)

4. 写快排,时间复杂度,能否优化?

5. 淘宝登陆框的用例设计

6. Java Bean,Spring

7. 性能测试怎么完成的?(然后他也和我说了很多阿里的性能测试是什么样的?)


总结
:基本都是聊天的形式,轻松愉悦,我没答好的他还会安慰我。😄

二面

1. 自我介绍

2. 同样是聊项目,基本把一面说的东西又说了一遍,也是聊得透透的

3. 写 rm -rf “path”的代码实现,不要求语言类别

4. 对上面题目中自己写的代码,做用例设计

5. Java 中的多线程,并发的实现

6. 自己的职业规划(我说完自己的规划后,面试官跟我聊了很多,如何在阿里长久的生存下去,双十一时的阿里等)

7. 配偶的职业(这方面我占了点便宜😍,老公在互联网大厂做测试 3 年半了,他们听到感觉很带劲的,表示他这边没有问题了,交叉面也给我省略了,哈哈😄)

HR 面

1. 自我介绍

2. 是否明白自己面试的岗位,以及做的都是哪些内容?

3. 为什么离开现在的单位?

4. 为什么选择阿里?

5. 觉得来到阿里,你需要有哪些方面的能力?目前你拥有哪些能力,以及为了在阿里的发展你能牺牲什么😅?

6. 对薪资的期待(这个好尴尬,因为太想来阿里了,说的低了点)

7. 现在单位的薪资,绩效,以及绩效是如何考评的?

8. 说了下阿里后面的流程

总结:阿里技术面的过程很 Nice,不会太抠细节,但比较看中对过往项目的理解程度。还好我比较扎实的学习了霍格沃兹测试学院里的接口自动化测试、UI 自动化测试这些实战课程,理解和回答的都比较到位。HR 面我内心倒是捏了把汗,感觉很严肃,问的好多问题都不好回答。😄

04 

面试经验总结

总结一下个人认为比较重要的知识点:

1. 接口自动化测试:测试框架,多个有关联的接口的用例编写,用例的组织及存储,接口测试的覆盖率,RESTAssured 的封装等。

2. UI 自动化测试:iOS 和 Android 的区别,Appium 代码的双端复用等。

3. 性能测试:工具、性能指标、多线程、并发。

4. 算法 :常见的快排、冒泡、堆排、二分查找。

5. 数据结构:常见的容器和区别。

6. 数据库:知识点比较杂,比如存储过程,索引类型和优缺点,事务,乐观锁和悲观锁,索引查询,drop、delet 和 truncate 的区别,视图及使用场景,三个范式,数据库隔离级别,SQL 语句,B 树等。(这个后续再补充一篇单独介绍的文章)

7. 用例设计:给一个场景设计测试用例。