找工作是出卖服务的过程。我们得先知道企业的需求是什么,才知道要怎么把自己卖出去,所以在面试之前,我们需要先分析企业的招聘需求。
企业的招聘要求里面会列出很多项内容。比如某公司的行政助理岗位,要求行政管理相关专业毕业、熟练使用Office、性格开朗、沟通能力强、积极主动等等。这些要求其实就是基于冰山模型的一套系统。
冰山模型简单为大家介绍一下。它是美国著名心理学家麦克利兰提出来的。用来表示个体素质的各个要素,现在成为很多企业进行人才筛选和培养的基础模型。
在该模型里面,知识与技能是冰山上面漏出海面的部分,它比较容易观测,而且相对而言容易后天习得,比如画PPT、做Excel等等;能力半浮半沉,改变周期长,但重要性更高,比如沟通能力、解决问题的能力等等;而性格特质、动机和价值观,基本上完全隐藏在海面之下,这部分不容易被观测,却对人的行为表现起到至关重要的作用,而且在成年后基本定型,不太容易受到外界影响而改变。
好,那我们已经知道了什么是冰山模型,现在就用这个模型来梳理一下行政助理的岗位要求:
1)首先,要素1:知识与技能,在招聘要求中,知识体现在对行政管理相关专业的要求上,技能则体现在熟练使用Offer这个要求上;
2)其次,要素2:能力,指思维、沟通等软能力,对应招聘要求里的沟通能力强;
3)最后,要素3:性格特质、动机和价值观,对应招聘要求里的性格开通、积极主动。
所以说,你可以用这个模型,将企业的招聘需求进行拆解,这样就能做到对企业的需求了然于胸了。
不仅仅是行政助理,软件测试等几乎所有岗位都可以按照冰山模型这么拆解(试试用冰山模型拆解下图中的测试岗位需求)。
冰山模型介绍完后,我们回到“如何去面试软件测试工程师”这个主题。
随着互联网及移动互联网的发展,越来越多的IT公司更加注重公司IT产品的质量,所以招聘测试工程师的岗位需求也越来越多,同时对软件测试工程师的要求也会越来越高。企业对于测试工程师的招聘需求大体也是遵守“冰山模型”,一般也都会包括以下几个方面:
1.技术层:技术能力
2.能力层:沟通能力+测试思维及解决问题的能力
3.性格特质:面试者的性格及抗压能力
所以我们完全可以按照该冰山模型去准备,下面我们来详细阐述:
一、考察技术能力
1、测试理论、测试流程类的问题。
比如会问面试者之前工作中的测试流程、测试提交的缺陷包括哪些要素?怎样提交缺陷能保证开发快速有效的解决对应的缺陷?另外也会问到测试用例相关的问题,比如测试用例包括哪些要素?设计测试用例的常用理论方法?也可能会被问到测试报告包括哪些内容?所以这一块的知识点是做为测试人员的必备基础知识,可参考以下技能树。
2、Linux操作系统相关
比如会被问到常用的一些命令(cat tail ?nd grep ps kill top),一般主要回答查看文件(cat、tail、more、grep),查看进程(ps),查看内存(top、free)、cpu(top)以及杀掉进程(kill)等相关命令,不要回答cd 、copy、rm、mv等非常非常基础的命令。另外也有可能会被问到是否有在linux搭建过测试环境,那么这种情况下建议面试前自己去找一些后台系统去练习一下在linux上搭建环境。
3、数据库相关的问题
这一块最基本的增删改查的语句肯定要会,另外的话关于条件查询、联表查询也必须要会。再高级一点的话,可以去看一些存储过程以及触发器的实现。
4、自动化相关的问题
自动化相关的问题会比较多,如果问UI自动化的话,那么必须要熟悉UI自动化的框架,比如Web自动化框架可以通过python+selenium+unittest来实现,而移动端自动化是通过python+appium+unittest来实现。针对selenium和appium对应的api一定要提前熟悉,同时也要知道对应的api所使用的场景。
5、网络通信类相关的问题
这一类问的比较多的可能都是跟http有关系,比如会被问到http头部包括哪些内容?http的GET和POST方法有什么区别。TCP/IP七层模型也有可能会被问题(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层)
6、工具类的问题
抓包工具的使用,比如fiddler、charles是怎么实现弱网测试的。
7、app专项测试类的问题
app会做哪些专项测试?(安装卸载、兼容性、交叉测试、稳定性测试、PUSH推送测试、性能测试、用户体验测试)性能测试主要测试哪些性能?用什么工具测试的?(性能测试项包括内存、CPU、FPS、电量、流量、启动速度, 使用的工具是GT)
8、其他类的问题
有可能会问到性能测试或者安全测试(信息安全、sql注入、xss攻击、CSRF攻击、越权、)之类的问题,那么根据自己之前的经验来回答
最后强调:技术问题对于测试人员而言属于门槛需求,非常重要,建议在面试前要反复刷题。
二、考察面试人员的思维及解决问题的能力
思维方面一般会问到的是如果测试过程中遇到了问题你会怎么处理?
针对这样的问题要从几个方面进行考虑:
1、要分析问题到底是前端的问题还是后端的问题
2、如果是前端问题,能直观的看到问题原因,可以直接提问题单
3、如果是后台的问题,那么先去检查后端的相关配置是不是正确的
4、如果配置正确,那么可以去检查对应的数据是不是正常的,比如数据库的数据、redis的数据
5、如果以上都是正确的,那么基本可以肯定是代码的问题,这时可以去查看对应的后台日志信息,并提交问题。提交问题单时可以将日志信息附上去。
三、考察面试者的沟通能力
企业一般通过两个问题来了解软件测试应聘人员的沟通能力。
首先会让面试者做自我介绍,这一项是非常重要的,因为这一项会给面试官留下非常重要的第一印象。自我介绍时可以做一个简要的说明,来自哪里、毕业于哪里、以及结合自己之前的工作经验做一个简要的说明,这个过程时间大概在2-3分钟即可。同时说话要流畅、自信。
第二个问题可能会让你介绍一下上家公司产品的业务流程,那么这个时候要能非常清晰明了的说出产品的业务流程,同时针对面试官提出的业务疑问都能及时解答。
第三个问题可能会让你介绍“你有什么缺点”来了解你的沟通能力。
四、考察面试者性格或者是抗压能力
一般通过“请介绍你工作中最难忘的一件事情”等开放性问题来了解。针对这类体现性格、抗压性的问题,在面试前一定要认真准备,回答一定要是正向的,积极的。最好提前准备故事来体现我们的正向、积极、抗压能力强。
以上四个问题,除了第一类技术问题是可以通过刷题来解决外(一般面试的时候,会安排笔试来考察),其他三类问题,面试官都需要通过与应聘者交流来获取。所以作为应聘者,我们需要通过三步走来进行充分准备以便于沟通。
第一步:逐条列出企业招聘需求,针对每条要求
1)横向比较:相比较其他人,是否做得更好;
2)多多举例:这项要求是否有相应事例证明?请列出至少2件代表事例,且是周围人做不到的例子。
第二步:根据分析,填写匹配度
1)匹配度高:至少有两个有效事例作为证明,且强于绝大数人。
2)匹配适中:至少有一个有效事例作为证明,且强于一半以上的人
3)匹配度低:较难找到事例作为证明,未与其他人形成差异化优势
第三步:根据匹配结果确定下一步
1)填写完匹配表后,80%以上为“高”,且“低”最多一个的,工作匹配度很高,好好准备你已经整理好的故事。
2)50%-80%要求为“高”,且“低”不超过30%的,则要继续挖掘经历;
3)只有50%以下的要求为“高”,且“低”超过30%,嗯,建议放弃,看看别的公司。
通过以上三步,我们就实现了面试前“知己知彼”,最终实现面试时的“百战不殆”。