你眼中的软件测试岗位是怎样的?大部分人可能会给出这样的回答:“测试?简单啊,没什么技术含量,无非就是看需求、看业务手册、看设计文档、然后点点功能是否实现,麻烦点的就是测试下部署安装是否出现兼容性问题等 。”
没错,不可否认这是你踏入软件测试行业的基本要求,但是互联网时代在飞速发展,APP已然生活化,如果你仅仅只会功能测试,必然会限制你的职业发展,2022求职季已经来到,又会有一批新生力量涌入测试行业,那你的优势又是什么呢?凭什么让一家企业高薪聘用你呢?
据某招聘APP数据显示,2021年人才流入率最高的行业是互联网行业,平均薪资最高的也是互联网行业,平均薪资达到10K。面对日益严重的就业形势,想要在求职大军中异军突起?就要有人无我有、人有我精的专业技能和面试技巧,才能站稳脚跟,才能升职加薪!
下面我就来总结下软件测试员面试的必备技能,以及个人的经验总结和思考:
软件测试基础知识
这一点是一名软件测试员的必备技能,也是最最基础的~~如果你有一年以上的工作经验的话,对这一块一定有比较清晰的认识,当然,在实际的工作中不需要你对每一种测试方法去寻根求源,知道这些方法的含义与应用场景即可。
编写各种测试文档,对于初学者来说稍有难度。但终究还是谈不上什么技术含量,如果对业务和流程足够熟悉,文档用例自然就会写了。
测试辅助技能
我发现这两项技能在笔试和面试过程中必考,出现几率超高,但在实际的工作中,有些测试根本碰不到linux ,有些测试不需要去操作数据库。当然,测试也不能太处于表面了,也需要熟悉熟悉相关测试的表,了解了解系统服务器。
好在这两项技能的要求都不高,linux 大多考几个常用命令,SQL一般考一下增、删、查、改。
测试技术
针对高级测试岗位需要一些有针对性的测试技术类问题。
1、例如,针对前端测试岗位,在技术提问上会有针对性地在前端提问,没有自己写过前端程序的人也很难把前端测试做好,html/css/js/Selenium/Webdriver等方面的知识必不可少,开源的工具没用过,没有关系,你只要能把类似的思路说清楚也可以。怎样精准定位web页面上的元素、如何得到这个对象而不是另外一个相同类型的元素、背后原理是怎样的,等等这种有针对性的问题很容易试探出候选人在前端测试方面的技术深度。
2、例如,一个测试工具开发的候选人必须知道框架、工具、平台的区别,框架如何提供接口给业务测试人员使用,哪些是框架要解决的问题哪些是业务测试自己要解决的问题,他们的问题域和解决方案都必须要了如指掌。
3、例如,针对自动化测试,什么情况下适合做自动化?你的自动化测试用例是怎么写的?什么样的用例适合转成自动化?你是如何来实施的?有什么样的策略来开展自动化工作?你需要自动化在项目中达到一个什么样的预期和效果?只是学学工具,拿个例子练习练习。很难对这些问题有真实的理解。
4、例如,针对性能测试,测试流程是怎样的?你做性能测试的目的是什么?新系统验证?还是旧系统扩容?需要达到一个什么样的预期?在独立的环境可以开展么?压力在哪儿,脚本为什么要这样录制?你的测试结果真的有指导意义么?或对系统性能做出了合理的评估,或为系统有调优做出指导,或为系统扩容做出了依据。如果前因后果弄不清何必去做呢?
5、类似地,在单元测试、api测试、安全测试、手机测试、后端服务测试、大数据测试等方面,都会有针对性的问题等着你。相比较代码能力,面试官一般更看重测试技术本身的掌握能力,代码能力只能说明你有潜能,而测试技术是未来会在项目中真实用到的技术,会真正地帮助到测试本身的技术。
编程能力
如果是开发人员,那么编程能力是必定会考察的,而且是重点。据我所了解,现在的互联网企业,特别是一些大厂,对现场上机编程甚至白板编程,基本都是必须的。
认识一位饿了么的测试开发的朋友,面试时直接写字板手写算法,当时我震惊了……
关于这点,业内还有个梗:Homehrew的作者马克斯.霍威尔(MaxHowell)去Google面试时无法在白板上翻转二叉树,从而Google面试没通过……
大多机智的同学也会在简历的必备技能最下方面写上一条,熟悉Python、C语言或其它某种语言。
划重点!如果在编程能力上略懂一二,面试官也会给你加分。懂编程和不懂编程的人看系统的深度不一样,一点不懂的只能看出来这是按钮,那是输入框。懂编程的就知道你的登录是个<from> ,输入框是个<input> ,你的登录提交是用的post 还是get呢?逻辑层就是获取到输入的用户名密码是查数据库做比较嘛。
在测试过程中不管功能实现也好,bug也好,都会看得更透彻,从而更容易挖掘出相关的bug。
工具使用
关于这点,开发工程师对工具的使用熟练程度,面试中问到的几率我不太了解。
但对于测试工程师,特别是性能和自动化岗位,使用什么自动化或者性能测试工具,技术框架如何设计,在面试中就被频频问到。满大街的招聘要求上都写着“要求熟悉jmeter、LoadRunner、Selenium等自动化测试工具等。”虽然不是每个公司都用得到,但是既然这么多公司有要求,还是有必要学一下这些工具的。
LoadRunner、jmeter做测试必玩工具。没摸过jmeter都不好意思说自己是做测试的。性能测试必须是要借助工具来实现了。不借助工具如何模拟成百上千的并发?
而且熟练地使用工具可以在日常工作中带来较大的效率提升,这也是不可忽视的作用。
其他技能
除了技术以外,沟通能力、团队合作能力、执行力、是否容易相处等性格问题也是面试官额外会考量的!
机会是留给有准备的人的!面试官更多的时候是在找闪光点,我只有一个岗位,在面试的十个人当中,有十个人都能把测试流程什么的说得顺溜(虽然我也只招一个懂测试流程的就行了),有八个人说自己懂LR等工具,只有两个人真正的有自动化或性能测试经验,只有一个人编程方面还不错。你说面试官会选谁呢?
千里马难寻的背后往往是因为伯乐太少。面试的过程就是选择的过程,不仅对于面试官,对于应聘者也是这样,可以通过面试了解岗位的情况,以便做出适合自己的决定。坦诚,别装,即便你骗过了面试官,在日后的工作中你也骗不了你自己,这对谁都没有好处。公司找合适的人,个人选择适合自己的公司,才能达到双赢!
下面通过我的个人经验再来总结一下测试的发展前景:
1、这个行业的发展已经比较成熟,但是测试开发等高端人才缺口巨大;
2、入门的确容易,但不断提升技术才是重中之重,安于现状终将被淘汰;
3、就业机会多,因为公司产品迭代快,个人技术能力增长也快;
4、学习成本不是很大,相比来说,时间和资金都比开发要少很多。