大家好,我是温大大。 今天给大家介绍我的一个朋友 ———— 三石,他毕业于三本院校,学的是电子信息技术专业,在外包公司做了 2 年功能测试随后又跳槽去了创业公司待了 3 年,3 年里从事性能测试 + 自动化测试也成长了不少,期间温大大也给了他不少的帮助和鼓励,他从 2021 年 4 月份到 10 月份面了近 50 家公司,

这段时间他基本上每周 2 面,称得上是面霸,今天就给大家分享下他的「面霸之旅」。

目录

  1. 面试成果
  2. 跳槽原因
  3. 面试计划
  4. 面试技巧
  5. 谈薪资
  6. 总结

0、面试成果

1 跳槽原因

跳槽的原因千万种,总结下来无非 2 种:

三石第一份工作在上海一家外包公司只有 7K,所以他干了 2 年薪资只涨了 1K,所以他第一次跳槽前者,所以他跳到了一家创业公司 1 干就是 3 年,薪资耶涨成 12K 左右,而且他的组长对他不错,教会了他性能测试、自动化测试,但后面他组长因为个人发展原因走了,来了 1 个新组长,新组长来了开始压迫三石,各种脏活累活都扔给他了,组长当甩手掌柜,所以三石第二次跳槽是因为受委屈了。

2 面试计划

不能裸辞也不能裸面,所以他坚持这 2 点为前提的情况下,给自己了梳理面试的计划:

2.1「找准」目标岗位

他的目标和岗位很清晰:

我建议他在 boss 直聘/拉钩招聘 app 上 看看测开要求的技能,然后看看自己目前那些技能有,还差哪些技能,有针对性的去学习相关技能 和 刷对应的面试题型,虽然不能行业的测开要求的业务能力不同,但基础的通用能力是一样的:

  1. 熟练 编程语言 java/python、有过工具开发或者自动化平台搭建的经验。
  2. 熟练 Mysql / DB2 等数据库,除了基础数据增删改成,常用性能优化掌握 / 高级函数运用 / 数据库原理熟悉
  3. 熟练 Linux 常用命令 即脚本编写
  4. 熟悉 测试理论、自动化测试框架 及 主流测试工具
  5. 熟悉 服务器测试,了解 HTTP 协议、RPC 协议、Web 架构,了解常用消息处理、缓存、数据库相关中间件

点评:80% 的 测开 或 高级测试工程师招聘要求都包含以上的内容,其实就是:语言、数据库、Linux、自动化、常见协议进行深入掌握,同时也是区别功能测试 / 初中级测试地方

除了以上的通用能力以外,还有一些硬性要求:

  1. 本科及以上学历,计算机相关专业
  2. 3 年以上 java 开发或测试开发经验
  3. 银行交易系统相关项目经验

除了通用要求,每个行业或者公司可能有自己硬性要求,比如:学历本科、开发经验 3 年以上、做过该行业的项目。

点评:一般以上要求是公司层面提出来的,及时你本人特别优秀,若上面要求没达标,投了简历也可能是石沉大海,但如果有内部员工的内推那就不一样了,因为它可能帮你绕过这道坎

2.2「匹配」岗位差异

三石觉得自己薄弱点在「编程」与「mysql」上面,虽然自己做过自动化 + 性能测试 的工作,但自己也只是测试的「执行者」,之前都是他老大搭建的 自动化框架,很多基础的功能函数都是老大封装编写的,自己做的都是边角料的工作,所以他想到了真正面试的时候肯定过不了面试官那关,所以之前三石也和温大大一直再讨论,如何将做过的自动化项目深入下去,过面试官那关,温大大分析了下,其实感觉自动化没深入的原因在于:自动化框架本来也不是你搭建,很多细节你不了解也是正常的,所以你可以带着以下几个问题再次去学习下这个框架:

  1. 前后端的数据如何传参数。
  2. 用例与数据如何分离管理。
  3. 如何封装基础的类,让用例复用性高。
  4. 如何统计自动化覆盖率。
  5. 自动化框架底层是运行如何的,尝试一步步 debug 一下,看一下框架启动的时候运行加载了哪些函数。
  6. 最重要的是:面试的时候一定要说清楚自动化框架这里面哪些功能是你自己实现的,哪些是公共的,一定要说清楚怎么设计这块 case 的,期间遇到什么问题,自己又是怎么解决的。

至于「mysql」对于三石来说也存在同样的问题,自己平时增删改查用的比较多,至于 mysql 的优化这些压根不设计,很多时候性能测试发现有问题,直接扔给研发或者老大,自己也从未重视过这点。

点评:除了自动化框架之外,简历里面应该体现 语言掌握的程度,例:python 由浅入深:基础语法掌握、常用功能函数掌握、装饰器、面向对象编程、进程与线程、IO 编程、web 开发,总的来说根据项目需要去学习对应的高级编程语法,在简历里面需要写出来

2.3 制定合理学习 & 刷题时间

我们说知道了自己「很弱」不可怕,可怕的是不知道自己「很弱」,有了以上的「薄弱点」后,三石结合自己实际项目经验制定了一些学习的线路:

  1. 系统性的学习了一遍 自动化框架,主要挑重点学习,重点就是上面提到的那些问题:如何传参、如何用例与数据分离等等。
  2. 尝试重构之前老大写的底层函数,让代码编程更简洁、复用性更强,具体从代码设计角度:开闭原则、单一职责这些方面来考虑。
  3. 尝试深层次的进行一次框架级别的 bug,看框架如何运行的,搞懂底层原理。
  4. 思考自动化的价值,太早介入自动化研发频繁修改没意义,太晚介入也没意义了,所以什么时候介入自动化,介入到什么程度都非常考究。
  5. mysql 深入可以从优化 1 个 sql 慢查询开始,过程是:定位慢查询、进行索引优化、搞清楚索引优化底层的 B+ 树原理

点评:跟自己的实际项目结合起来学习,做事情前先问自己:有更好的解决方法吗,它底层是如何实现的。有的同学想说万一我的目标技能跟我工作不搭边怎么办,这时你可能就得花晚上 或者 周末的时间来找项目深入学习了

刷题主要刷以上技能点对应的面试题:

  1. 自动化 框架

  2. 网络 - 100 道高频面试题

  3. Linux - 100 道 高频面试题

  4. Mysql - 万字总结,让你从入门到入土

  5. 消息队列

  6. [算法 - 常见基础算法题]

点评:针对第 6 点需要特别说明下 算法目前对于很多大厂来说是个敲门砖,即使你进去的时候用不上算法,很多公司都会考你算法题目,建议可以去牛课网去刷一些常见 top20 的简单 & 中级的算法题目

3 面试技巧

3.1 简历准备

网上有很多简历模版,温大大之前写过一篇:大家可自取,需要注意的是:

  1. 线下面试,记得带一份简历,以免面试官没打印简历;

  2. 线上面试,对着简历讲项目,以免遗漏细节;

  3. 简历多发给几个信得过的、比自己有经验的朋友看,让他们给修改建议,实在找不到人也可以加温大大好友,让我帮你看下;

  4. 只写技术相关的东西,社招就别写一些没必要的内容,比如大学的普通奖项,如果犹豫要不要写,那就干脆别写;

  5. 把项目和个人技能花时间写好,个人评价

3.2 如何谈项目(重要)

需要跟面试官讲清楚 项目的「业务 + 框架」,更重要的是用「数据」需要突显项目里面的「亮点」,也是分为 3 步:

  1. 摸清「业务」
  2. 吃透「数据流」
  3. 提炼「亮点」

温大大之前也有写过一篇:如何谈提炼项目的亮点

点评:你可以先面试几家小公司,累计经验,把所有被问到的问题都记录下来,弄清楚后,在之后其他面试中确保自己不会被问到

3.3 基础知识 & 算法

像一些通用基础知识:

  1. 网络、数据库、Linux、编程语言 的一些八股文,面试前尽量去刷刷,即便你看过了但在面试中被问到时忘记了也没关系,每次把问到的基础知识记录下来,以后你就知道哪些是重点了。
  2. 算法题目肯定是有刷的必要的,特别是中高级/测开工程师,但不要花太多时间在算法上,把常见的题目刷刷,有算法感觉,面试时写不出来的话能说出思路也挺好。

点评:面试造火箭,干货拧螺丝,所以不太纠结基础知识 & 算法点,平时固定 1-2 小时看看刷刷,有点感觉和印象,不要太抠细节

3.4 内推很有用

  1. 获得面试机会概率很高,80%以上都是内推,都有面试机会的。
  2. 内推更方便了解岗位及团队信息。
  3. 如果与内推人足够熟悉,薪资也可以大致了解下。
  4. 面试进度更清楚,或许能加快流程。比如 BAT 这种大厂一般进度会比较慢,但走的内推,直接主管觉得你不错可能直接跟 HR 说要你了。
  5. 如果没有朋友内推,也可以找自己信任的猎头内推,也是有帮助,毕竟他跟公司内部人员打过交道,知道一些有用信息,同时也希望你能通过面试,他拿提成。

3.5 面试公司顺序:小、中、大

建议从中小公司开始面试,更多的是找面试感觉,

  1. 小公司和大公司面试的侧重点也太一样
  2. 中小公司要求上来就能干货对学历、背景不太看重
  3. 大公司比较看重全面的素质:不光是项目与技能,还会看重一些人才的潜力与学习技能

3.6 岗位匹配很重要

投简历的时候需要看工作内容是否符合自己预期,不能仅仅看职位名称,如果是面试官是 测试负责人可以在面试前具体聊聊工作内容,这样提高面试效率。

具个例子:测试开发工程师其实有很多细分的工作方向,

  1. 搞工程效能的,主要负责:工具或平台开发类的开发工作。
  2. 搞性能测试专项的,主要负责:业务组内性能测试工作,以及系统平台告警监控工具开发。
  3. 搞自动化测试专项的,主要负责:基于业务的自动化用例实现等工作。

点评:中途发现这个公司的工作内容不符合自己预期,并且面试问题对自己收获也不是很大,主动跟 HR 说终止后续面试,节约时间

3.7 潜规则 1:多投简历才是王道

三石在第一天就练习了 40 多个岗位,但回复他的只有几个,从此之后他看到有合适的,就疯狂投递简历。 只要你的简历不是特别优秀,就没多少人愿意回复你的,更多的是一些外包公司每天会联系你。

3.8 潜规则 2:保持自己爱学习 & 谦虚的态度

很多时候即便自己回答不出来面试官的问题,也谦虚请教一句:为什么是这样的呢,正常的面试官会告诉你耐心告诉你,同时觉得你很好学。 同时及时发现面试官有些回答跟你理解的不一致:也别打断面试官讲话、语气也别太强硬,你想想你愿意找一个每天跟自己吵架的人作为同事么

3.9 潜规则 3:面试前多背通用问题

  1. 你碰到的难题,怎么解决的(考察:技术面试官会问技术相关的)
  2. 你最有成就感的一件事(考察:你身上的闪光点,尽量说跟工作相关的事情)
  3. 你经历过什么挫折,你的优缺点(考察:你受挫能力,是否能爬起来)
  4. 平时怎么学习的,最近有看过哪些书这些问题可以提前准备下(考察:你自主学习能力) 以上的问题需要提前想好怎么回答,如果因为这些问题留下不好印象,太不值了

4 谈薪资

4.1 面试顺序挺重要

  1. 先面小公司 或 不想去的公司,拿到合适的 offer,再拿这个 offer 与想去的公司谈。
  2. 如果能力强,可以先面二线大厂,拿到合适的 offer,再去面一线大厂,这样薪资能要的更高。

4.2 敢于要价

  1. 对于特别不想去的公司,可以要一个高的价格;如果给了,那就拿这个薪资谈其他 offer,如果没给,大不了不去。
  2. 如果有熟悉的猎头或者内推人,可以向他们打听符合自己工作年限的某个公司的合理价格,这样不至于薪资太低。
  3. 预期薪资尽量说一个区间,例:18k-25k,只要不是高的离谱,HR 最后还是会给你 1 个他们能给的 offer,如果你最低的能接的说太低,就没有商量的余地了。
  4. offer 一旦确定很难再改,例:你拿到了 A 公司的 offer,结果收到 B 公司更高薪资的 offer 并且高了很多,这样你在找 A 公司调 offer 都难了,而且还给 A 公司留下不好的印象。

5 总结

  1. 前期的面试计划很重要,确定你要去的公司,然后查漏补缺,看哪些技能需要加强的,自己就专门花时间补。
  2. 面试中项目是重中之重,所以需要好好准备。
  3. 基础知识的八股文有时间尽量刷刷,也是敲门砖,能力再强也可能被八股文卡住。
  4. 中小公司看重项目,大公司看重:项目 + 基础 + 算法,还可能有学历。
  5. 即使 1-2 次面试挂了也没关系,并不能说明你能力有问题,只是说明你跟他们职位不匹配,多尝试,多总结,总能找到适合自己的公司。

我是温大大,你身边的测试领路人,有任何测试面试、职场方面的问题都可以找到我

加我好友拉你进面试群,一起讨论面试干货 / 套路,大家一起升职加薪

关注公众号:测试猿温大大


↙↙↙阅读原文可查看相关链接,并与作者交流