测试面试 | 某BAT大厂测试开发面试真题与重点解析

⬆️ 关注霍格沃兹测试学院公众号,回复「面试」,领取测试开发面试真题合集!

本文作者 @J2W 为霍格沃兹测试学院《测试开发实战进阶》班优秀学员,4 个多月从初出茅庐、勉勉强强的初级测试开发快速成长,成功拿下某 BAT
大厂中级测试开发岗位 Offer,并获得学院奖学金。助教老师对其一致评价是「学习非常主动、很勤奋、有耐心、会记录详尽的笔记、感觉性格很好」。

以下是这位勤奋的测试媛分享的测试开发面试真题和经验总结,供大家参考。

背景介绍

本人计算机专业毕业后在北京某事业单位混迹了三年半,可以说一事无成吧 ,再加上没有北京户口,也不想继续蹉跎岁月,遂决心到互联网企业寻求突破。

前后参加过几家互联网公司的测试开发岗位面试,其中两次百度的面试,一次止步三面,另一次止步于四面。这里就主要总结一下百度的面试经历和心得体会。总体感觉百度的面试官比较注重基础,问题不难但是覆盖范围比较全面。相对而言,另一家互联网大厂的面试则比较注重项目经验,对框架的认识之类的。

第一次面试百度,一面和二面还比较顺利,都是算法、数据结构之类的问题,但三面的时候,面试官觉得我的经历与百度不
Match,于是让我写个全排列,妥妥的挂掉,当时自己的基础技能还是不牢靠 。

第二次面试是在半年之后,这时由于已经参加了霍格沃兹测试学院的《测试开发实战进阶》课程,果然自信了好多,一直闯关到四面。由于本人习惯于记录学习笔记,面试完通常也会记下来问题,供自己查缺补漏,在这里也供各位小伙伴参考。

一面

  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. 什么时候入职、期望的薪资?

因为当时自己在城市选择上有些犹豫,不是很想留北京,回想起四面的时候,态度不够坚定,回答的也随意了点,所以最终还是遗憾的挂掉了。当时面完回来,也真切的感觉到自己不会的点还有好多,需要继续深入学习和实践。

经验总结

从百度面试归来,我又扎实的学习了「接口自动化测试」、「UI 自动化测试」这些实战内容,通过老师讲解 +
以往的项目经验反复思考,对项目流程和框架理解都有了较大提升。

同时,我也继续抱着学习的态度,积极面试其他大厂,最终比较幸运的拿下某心仪公司的 Offer,团队的 Leader 也很 Nice!
能加入这么优秀的团队很惊喜也倍感压力,感觉自己在业务和技能水平上要快速精进,更上一层楼!

在这个职业发展的关键阶段,非常幸运能遇到霍格沃玆测试学院,也特别感谢思寒老师以及各位助教老师,从测试开发技术到软技能都收益颇多!

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

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

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

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

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

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

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

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

以上,期待大家都学有所成,收获成长!

P.S. 「金羽毛」征文活动 | 记录测试开发成长之路的点滴

欢迎投稿 测试开发技术干货/面试经验,测试人生故事 ,原创稿酬与丰厚奖品等你拿!
点击访问详情


来霍格沃兹测试开发学社,学习更多软件测试与测试开发的进阶技术,知识点涵盖web自动化测试 app自动化测试、接口自动化测试、测试框架、性能测试、安全测试、持续集成/持续交付/DevOps,测试左移、测试右移、精准测试、测试平台开发、测试管理等内容,课程技术涵盖bash、pytest、junit、selenium、appium、postman、requests、httprunner、jmeter、jenkins、docker、k8s、elk、sonarqube、jacoco、jvm-sandbox等相关技术,全面提升测试开发工程师的技术实力
QQ交流群:484590337
公众号 TestingStudio
点击获取更多信息

上一篇:鸿蒙应用开发培训笔记04:04 UI页面设计与开发


下一篇:html如何使用vue