现在有这么多优秀的测试工程师,大家都知道技术面试是不可避免的一个环节,一般技术面试官都会通过自己的方式去考察你的技术功底与基础理论知识。
如果你参加过一些大厂面试,肯定会遇到一些这样的问题:
1、看你项目都用到了自动化测试,APP测试、web测试,你能全部理解原理吗
2、 看你上面有接触过Robot Framework,UnitTest框架等技术吗?
3、 安全测试,性能测试呢?
是不是看上去很难,是不是和自己准备的“题库”中的问题不一样?不知道从何处下手?如果你有这种感觉,那么说明你的技术还需要继续修炼。
面对如此多的技术面试,怎么样才能说自己的技术已经过关了呢?
我总结完此次经历,认为有以下三个关键点帮我达成面霸的称号。
第一个讲调节好心理状态是因为这个是决定你成败的非常关键的前提,因为一旦你进入了换工作的阶段,你的心理就进入了“我是傻X和我很牛X”的薛定谔的猫的叠加态中。你会不停的重新评估自己,但是刚开始的状况一般都很不乐观,很可能会给你的心态带来致命的打击,比如我没有准备充分直接面试导致六连挂,让我陷入了很长时间的抑郁状态中。如果没有做好调整,之后的面试准备都没办法顺利进行,甚至你在面试时表现出来的不自信都会导致你被pass,形成恶性循环。
1.ABC理论
那么如何调整好自己的心态,其实心理学上已经有一套完整的理论体系了,建议阅读《理性情绪》这本书,这本书在我困难的时候给了我很多支持,我们就简单的讲一下其中这个关键的ABC理论。
这个理论的公式是:A*B=C,A代表已经发生的困境或者事件,比如你面试挂了这件事。B代表信念,也就是你对这件事的看法,比如面试挂了你觉得自己很差劲。C就代表你的情绪,A和B一起导致了你的情绪C很糟糕。
这个公式的关键是,A虽然是已经确定且无法更改,但是B却是基于你的信念,并不是绝对的,也就是说你的情绪取决于你的信念。我们很多时候情绪理所当然的就出来了,而且对导致自己的坏情绪的信念深信不疑,但是事实上却是禁不起推敲的。
2.成长心态
另一个比较关键的是成长心态,所谓成长心态就是相信自己可以通过学习达到之前不能达到的目标,成长心态的对立面是固定心态,认为自己就是这样的,没法改变的,这种心态会导致对别人的评价非常敏感。
如果说调整好心态是决定成败的前提,那做好充分的准备就是帮助你成为面霸的关键。但问题是,到底要准备些什么?怎么准备?
1.准备什么:让面试官告诉你
要道到底要准备什么,最好就是让面试官来告诉你了。你可以在准备还不是特别充分的情况下,直接去面试,但是这个时候你应该做好心态的准备了,要知道你是去打探情报的,千万不要因为被拒了打乱你的计划和干扰你的情绪。虽然我刚开始面试的时候遭遇了六连挂,但确实也帮助我收集到不少的信息。
技术面试有一般可能会有几个阶段:笔试,技术面,HR面,领导面。要关心每个阶段的面试的题目,但是一般到领导面都是你已经通过了面试了。在前期就收集笔试,技术面,HR面的;
关于笔试和技术面,根据你面的职业和方向不同,可能会有不同的题目。关键的是你不能仅关注面试到的具体的题,而是应该根据面试到的题目去关注这些题目涉及的面。比如你遇到一道基础的题(如python编程或者Linux命令),你应该知道,会考基础题,这时候赶紧回去把基础知识复习一遍。
软件测试基础
什么是兼容型测试?兼容性测试侧重哪些方面?
我现在有个程序,发现在Windows上运行的很慢,怎么判别是程序存在问题还是软硬件系统存在问题
测试的策略有哪些
正交表测试用例设计方法的特点是什么?
描述测试用例设计的完整过程
单元测试的策略有哪些?
你所熟悉的软件测试类型都有哪些?请试着分别比较这些不同的测试类型的区别与联系(如功能测试、性能测试…)?
件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?
…
MySQL
什么是事务?
什么是事务的ACID特性?
事务的隔离级别与对应的问题?
MySQL是如何解决幻读的?
MySQL常见死锁场景有哪些?
drop、delete与truncate的区别?
…
liunx
你之前在公司使用linux命令做什么?
在之前公司,测试环境使用的是哪个linux版本?
linux 下安装软件有那些方式?
在之前使用linux过程中,使用什么工具远程连接?
如何在linux上做被测系统代码补丁的更新?
测试环境如何搭建?
测试环境部署的注意事项?
…
Web测试
您所熟悉的软件测试类型都有哪些?
测试计划工作的目的是什么?
测试计划工作的内容都包括什么?其中哪些是最重要的?
您以往的工作中是否开展过测试用例的评审工作?如果有,请描述测试用例评审的过程和评审的内容。
您认为性能测试工作的目的是什么?
做好性能测试工作的关键是什么?
…
接口测试
你们公司的接口测试流程是怎样的?.
请简述一下cookie、session以及token的区别
接口测试如何设计测试用例?
接口测试执行中比对数据库吗?
谈谈你对HTTP协议的了解?
get和post请求有什么区别?
在接口测试过程中发现的bug多不多?能举几个例子?
接口测试中有哪些要注意的测试点?
…
APP测试
请用自己最擅长的编程语言,将一个字符串反转并输出?
针对数十个安卓应用市场渠道包,请问如何进行大体的功能验证,简单叙述一下思路?
给你一个模块,比如注册模块,你会怎么样设计与执行测试?
你认为app测试过程中,相对于web,要更多注意哪些测试点?或者说app测试和web测试有哪些不同之处?
说说会用哪些抓包工具?怎么用的?
什么是alpha测试和beta测试?
…
Python
super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。
列表和字典有什么区别?
如何结束一个进程?
L = [1, 2, 3, 11, 2, 5, 3, 2, 5, 3],用一行代码得出结论 [11, 1, 2, 3, 5]
说说接口测试的流程,介绍一下request有哪些内容。
L = [1, 2, 3, 5, 6],如何得出 ‘12356’?
…
性能测试
你们怎么开展性能测试的?
如何进行需求分析的,数据模型、业务模型、测试模型
如果没有明确需求怎么收集性能测试需求数据?
性能测试方案有哪些内容,如何写性能测试方案
性能指标有哪些,如何确定性能指标?
性能测试策略是如何确定的,你们公司都使用什么测试策略?
性能测试过程中有没有碰到性能问题,怎么分析定位解决的
…
关于HR面,我发现会有很多通用的问题,可以提前准备好答案,比如以下的问题:
自我介绍。
自我介绍最好要打草稿,不要临场发挥,这是每个面试都必须的。自我介绍不要讲太多已经写在简历上的东西。可以列个三点,每个点说明过去自己在之前的公司做的有价值的事。
为什么离职?
关键:为了未来更好,而不是因为过去很差。
职业规划怎么做?
定一个三年左右的短期目标。
期望薪资
不要说范围,会按最低的给你。提供一个固定的值。
为什么选择这家公司?
面试前最好了解下公司背景。看公司或者这个岗位除了工资福利外还有什么吸引你的。
你遇到的最大的困难是什么?你是这么解决的?
准备一个案例,重点说明你是这么解决的。
你的优缺点是什么?
准备两个案例,优点找最明显的优点。缺点不能找那些你还没有改掉的缺点,也不要讲太糟糕的缺点,要找那些看起来是缺点,从另一个角度看也有可能是优点的缺点。比如太过追求完美。但是一定要用你实际的例子说清楚为什么是缺点,不要让别人认为你在耍滑头。
回答这些问题的关键是:要表现得是一个乐观积极向上有规划的人。准备好了这些题,会给你很大的底气,表现得也会很有自信,十分泰然的感觉。
现在我们知道应该学什么,也知道怎么学了。但是如果你没有一个时间规划去实施,那么前面讲的这些都是放屁耍流氓。 我们要解决以下问题。
什么时候开始面试?
如果你已经决定了跳槽,建议你马上开始试试水。写好简历后开始投投看,去面试几家看看情况。根据你的情况来决定接下来该怎么走。
什么时候辞职?
很多人会问到底是骑驴找马还是立马辞职,我建议你试完水之后再考虑这个问题。 如果试水之后,你发现自己缺的知识非常多,建议你不要立马辞职,给自己定个计划,一两个月的时间,利用非上班时间,尽力把这些知识给补上。然后再去试试水。 如果试水后发现感觉还不错,那么你可以立马辞职,专心找工作。
每天学习多长时间?
很多同学辞职后,会给自己定一个可怕的目标:除了吃饭睡觉就是学习。这个目标很难实现,而且如果你没有实现这个目标,很容易让自己陷入一种自责的情绪里。
而且很难坚持,你可能坚持了几天就坚持不下去了。我大概计算了一下我这一个多月的时间里,平均学习时间大概就5个小时,甚至更少。这就是为什么我还有时间通关《塞尔达传说》的原因了。如果你还没有辞职,那么建议你每天至少2小时。周末可以多一点时间。
当然,你学得高兴你可以学一整天,只要每天都坚持至少5个小时就可以了。学完5个小时,你也可以该干嘛干嘛去,该玩游戏玩游戏。但是这5个小时千万不要摸鱼,不要骗自己,在学习的时候还穿插刷微信微博抖音。这个你要为自己负责,没有人像上学的时候那样逼着你去学习了。
小编想说:不论以后选择什么方向发展,目前重要的是把技术学好,毕竟其实对于测试工程师们来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!
当程序员容易,当一个优秀的程序员是需要不断学习的,从初级软件测试工程师到中高级软件测试工程师,从初级架构师到资深架构师,或者走向管理,从技术经理到技术总监,每个阶段都需要掌握不同的能力。早早确定自己的职业方向,才能在工作和能力提升中甩开同龄人。