Skip to content

25测试开发求职面经帖

你好,我是蔡超,欢迎来到第 25 课时。到本课时为止,我们已经讲完了所有的技术内容,从这一讲起,我会分享一些本职之内、技术之外的经验和教训。

今天我先着重讲一下面试求职的那些事儿。

说起求职和面试,我想大家都不陌生,但是如果我问你,是不是工作要求里所有的条件你都满足了,你就能得到这份工作了呢?我想大家都会会心一笑,表示"你想多了"。

那为什么会出现这样的情形呢? 这就要从面试的本质说起。

面试的本质

如果把企业看作一个人,那么面试实际上就是自我输血的过程。既然是给自己输血,那么肯定要看以下几点。

  • 第一,血型跟自己合适不?也就是宏观上三观, 微观上处事方式、性格和现有团队是不是一致。

  • 第二,拥不拥有自己急需的营养?现在团队最缺拥有什么技能的人?这个人能不能补上团队的这个短板?

  • 第三,输完血后我能获得什么能力?这个人招聘进来后,我团队的哪项技能树被点亮了?TA还有没有别的技能树?

  • 第四,输完血后我有没有后遗症?这个人招聘进来后,留不留得住?TA 能多大程度的影响团队成员决策?团队还会跟以前一样奋斗,并脚踏实地吗?

了解了这些,你就知道为什么你具备了企业要求的所有能力,有时却以 Over Qualified 的理由而被拒绝,而有些人只满足 10 条要求里的一条,却被招聘进来了。

因为面试本质上是你能够多大程度地给企业持续输血的这么一个过程

既然我们了解了面试的本质,那么我们去求职,就应该清楚明白哪些技能和能力是你最需要去拥有的,这时你就需要对自己进行一次职业规划了。

职业规划不可少

很多年轻的朋友,特别是刚刚毕业没几年的朋友,他们在找工作时,就是看"哦,他们在招聘测试工程师,那我投一下"。这样投了一圈简历下来,收到了一两个 Offer,然后选一个工资最高的,或者名气最大的企业就去上班了。在企业工作个 1 年~2 年,最多 3 年,又出来投一圈简历,继续上一个轮回。

这样跳两三次槽后猛然发现,自己再怎么投简历,也没有人约面试了,为什么呢?

这是因为没有清晰的职业规划,没有清晰的职业规划,会导致你的职业成长受损。

有职业规划和没有职业规划,在刚毕业的两三年,甚至五年之内,都不会有太本质的区别,但是放到十年这个角度,走得高、走得远的,一定是那些一开始就有明确职业规划的人。

有职业规划和没有职业规划最明显的一个区别就是:行业的纵深度和技术的连续度。

工作十年以上,两项能力都有的人,基本上都已经是高管了;而仅拥有一项的人,也基本上也是业务专家或者技术专家了。如果不幸两项都不擅长,那么,他们一定对 35 岁失业这样的新闻非常敏感。

那么如何进行职业规划呢?

第一 明确方向

我在《开篇词 | 功能测试转测试开发的正确姿势 》中讲过,本质上我们有两条路可选,技术路线或者业务路线。至于你选择哪一条路线,你可以思考一下我在《课前必读 2 | 测试开发的职业生涯是怎样的?》中向你提过的这几个问题:

  • 面对任务时,你更愿意多人协作还是独立完成?

  • 碰见问题时,你更倾向于了解其工作原理还是解决就好?

  • 跨团队合作时,你更乐于去制定计划还是执行计划?

  • 向上汇报时,你更关注业务结果还是技术方向/深度?

  • 你是否常常会关注团队其他成员在做什么?团队/个人有何 KPI?

第二 持续深入

假设你要走技术方向,那么在技术方向上"持续深入"就是你要长期坚持的事了。

那么如何持续深入呢?有的同学说,我一开始是学 Python/Java 的,那么我就死磕 Python/Java,只找与 Python/Java 有关的工作。而这不叫持续深入,这叫作茧自缚。

那什么叫持续深入呢?我们对比看下这两个招聘需求。

  • 自动化测试工程师
  • 测试开发工程师

对于第一个招聘,企业寻找的是在现有解决方案的基础上,能够遵守规则,修补规则的人;对于第二个招聘,企业寻找的则是在某一个具体的领域,能够制定解决方案,以及制定规则的人。

持续深入,就是假设你现在只具备自动化测试工程师的能力,那么你在做好本职工作的同时, 就要尝试关注测试开发工程师所需要的能力,并在日常工作中刻意寻找能够学习到测试开发技能的机会。只有这样,你才能在技术上保持持续纵深,并最终升级到测试专家、测试架构师行列中。

那么,当你有了清晰的职业规划,你就知道当你面对工作机会时,要选择能让你在技术上深入的公司或者团队加入。

测试开发面经

了解了面试的本质和明确了清晰的职业生涯规划后,我们来谈谈面试本身。

1.简历,清晰地展示出工作成绩

一份好的简历应该是什么样子呢?我个人认为, 有几个必要的点,一定要非常清晰。

  • 基本信息

基本信息不必多说,包括了姓名、出生年月、毕业学校、学历、专业、联系方式等要素。需要注意的是,在这些信息中,姓名和联系方式要放在最显眼的地方, 毕业学校、专业和学历也一定要一目了然。方便面试官或者HR检索。

  • 突出与职位相关的部分

比如,职位要求测试开发,你着重描写你的测试框架的搭建经历;职位要求金融背景,你便需要重点强调你在某金融独角兽的工作经历。

  • 工作成绩,收获

记住需要展示的是你的工作成绩和收获,而不是你的工作经历。 前者是总结,是告诉面试官,你会什么,你擅长解决什么问题,你拥有什么样的技能;而后者则是流水账,只是说明你这几年在哪里蹉跎。

所以,一定要从每一份工作经历中凝练出自己的工作成绩,并详细说明以下三方面:

(1)在哪段时间,负责哪个项目,自己担任什么角色?

(2)在项目中起到了什么作用, 遇见了什么问题, 解决了哪种困难?

(3)项目结束后获得了什么表扬,总结了什么经验,新获得了哪项技术?

通过一个个的项目介绍,让面试官清晰地看到你的成长路径和技能树。

2.深入底层,注重技术细节

在去年,我曾在短短数月内沟通、面试过 200 多人,并最终录取了 2 人。其中,不乏有名校光环、在知名大厂担任测试开发数年的同学,但是他们没有获得 Offer。

究其原因,在于他们技术纵深不够,把平台的能力当作自己的能力,一旦脱离了成熟的平台,他们的能力就无法展现。

举个例子,有个候选人简历上写自己做过测试平台, 支撑了 xx 个团队,保障了 xxx 个项目,非常耀眼。 在面试沟通中,他手画的系统架构图也画得非常翔实。

  • 但是当我问他,关于测试用例挑选的算法逻辑时,他卡壳了,表示底层使用的是公司的某共用底层框架,并不了解其逻辑 。

  • 然后我又问"测试并发执行时,如何保障每个 Slave 机器上的负载的测试任务量是大体相同的?"他又说,公司有个提供并发的公用 Library 可供引入。

  • 接着我向他提问具体原理,他表示好像用的是 Selenium Grid。

  • 然后我追问 Selenium Grid 实现并发的原理,他表示没研究过。

还有在面试中,有经验的面试官经常会围绕一个问题穷追猛打,例如当我看到有同学简历上写有接口测试经验,我就经常问如下问题:

  • 测试的是哪种类型接口?

  • 如果是 HTTP 形式, 那 HTTP 协议是有状态的还是无状态的?

  • HTTP 协议如何保持状态?

  • 有了 Cookie 为什么还要 Session?

  • URL 重写是什么?

  • session 保存在服务器内存中,随着用户的增多,服务器撑不住了怎么办?

  • 假设我使用了集群服务,我的登录态如何保持?

  • Token 一般怎么生成的啊?什么是 JWT 啊?

  • token 组成里的私密签名,是用什么加密的啊?

就这样通过一个简单问题,从一个具体的知识点切入,然后逐步扩大到一个知识面,最终考察了候选人对某一类问题的知识体系。

所以要求我们在面试时,必须做到对自己做过的项目,以及技术细节要掌握得非常清楚。做到对自己做过的系统,能画出系统架构图,能讲清楚每一个模块的实现细节,只有这样,面试官才会觉得你就是那个能给公司输血的人。

小结

面试求职是个亘古不变的话题,如何准备简历,以及如何面试我想大家都有很多自己独有的技巧, 但无论什么技巧,都敌不过一个"这道题我会",并且我能触类旁通,非常清楚细节和其背后整个的技能能力体系。

那如何做到这样呢? 这就要求我们在日常工作中多多积累,多多总结,让自己成为那个能够为企业持续输血的人。

好的,我是蔡超,我们下节课见。

关于面试的各种技术题目和解答,以及更多软技能,欢迎你关注我的公众号 iTesting ,并输入"面试"查阅。


课程评价入口,挑选 5 名小伙伴赠送小礼品~