随着互联网行业的不断发展,软件快速迭代、快速交付的需求日益凸显,软件测试人员越来越受到重视,逐渐从“幕后”走向“台前”,也将会面临更好的发展和更大的挑战。下面是小编带来的软件测试工程师面试技巧,欢迎阅读。
那如何深入软件测试?测试都有哪些方法?测试采用什么工具?自动化测试熟悉么?自动化测试具体都有什么内容?敏捷流程都有哪些环节,测试工程师在其中的作用是什么……接下来我就结合我的测试经验聊一聊测试工程师的面试要点和职业发展。
我是谁?
忘了自我介绍了,我是一名软件测试工程师。不知不觉,入行软件测试也有14年头了。待过中软国际、华为、IBM等公司。做过功能测试、自动化测试也做过性能测试,做过测试新人也做过测试测试管理,所负责的项目至今在各个领域系统运转良好,产生了极大效益。
同时我也长期在公司内担任讲师,负责软件测试理念和测试转型等内容的培训,获得过“集团金牌讲师”的称号。
如果要是从这14年中说出最宝贵的经验,我想其一应该是面试技巧和职业发展。下面我就来分享一下,希望可以帮助在测试行业迷茫和纠结的你们……
软件测试工程师的面试,不同于开发人员。
虽然都是软件从业人员,但是开发和测试侧重点不同,这样的细微之处却很少有人注意到。面试官可能因为对于测试工作理解的差异,提出的问题让面试者不知道该从何说起,而在求职过程中,信息的不对称使得测试工程师往往无法做到全面地表达自己。
严格意义上来说,尤其是在当前Agile架构或者DevOps模型下,软件测试工程师对于技术的理解广度和知识储备的广度,要远在开发人员之上。而一般开发人员的面试中的面试要点和问题,对于测试工程师来说,都是非常不适用的。
面试官技术出身的不同,其喜好或者技术特点,测试工程师往往也并不清楚,如何有针对性地回答,同时还能体现出自己的优势,另外企业是如何定义初级中级高级测试工程师,他们各自对于技术的要求是怎样的?这是一个非常值得谈一谈的内容。
知己知彼,百战不殆。如何从测试工作本身定位出发,从公司和面试官角度来谈测试工程师的面试要点,成功是事半功倍的。
九层高台,起于垒土。那么我们在讨论测试工程师面试的要点之前,自然要理解测试工程师的工作内容和主要闪光点是什么。
1、什么是软件测试?软件测试的工作内容都有哪些?
软件测试,顾名思义,是测试软件和控制软件质量的工作,后者在敏捷框架下被更多地提起。在敏捷框架下,软件的质量不仅仅是通过测试工作来控制,还包括了一整套流程和过程控制,因此测试在敏捷框架下称为QA。
也就是说,可以理解为软件测试工程师——Tester,是QA的一个真子集。严格来讲,敏捷框架下的QA和传统测试工程师实际上也是有很多区别的,这个问题我们放到以后再讲。
在这个框架下,测试工程师不仅仅要聚焦于软件测试工作,而是要从项目的开始就要介入,也叫测试前置。从需求澄清开始,QA就要在测试的角度对需求进行更细一级的了解,然后针对每个story中,开发内容是否达到需求的每个细节进行检查,同时还要控制项目进度,缺陷率等。
QA在一个标准的ScrumTeam中的地位是很高的,取决于QA对项目业务的熟悉程度,对需求的细节把握等等。可以这么说,在一个项目组中,QA是可以接替PM职务或者作为PM的Backup的。
PM、QA和Tester的关系如下图:
2、软件测试工程师应该具备的技能和素质是什么?
软件测试行业,虽然属于软件研发体系,但是因为工作内容和角度的问题,存在着自己独有的技能要求和职业素质要求。
在软件研发体系的要求之外,除开发的编码和对于各开发框架的了解,作为测试工程师或者QA,还有其他特定的要求。
由于软件研发行业的主要行为集中在编码,所以外界甚至不少从业人员对于软件研发的印象往往都很单一,甚至很多测试工程师也不清楚,作为测试工作,与软件研发相比,有哪些独特的要求?
形而上者谓之道,形而下者谓之器。一般来说,“道”是无实体的思想意识层面,“器”是指有形的工具或者流程,即“道”的具体实现。
那么我们就从“道”和“器”两个层面来简单了解一下,测试工程师应该具备的“器”和“道”分别都是什么。
技能
技能层面来说,首当其冲的就是沟通和协调能力,这个在QA身上更为明显。敏捷架构下,快速迭代的基础就是沟通顺畅及时和到位。在每个sprint中,需求的传达澄清和对齐,都是非常关键的,这直接从源头决定了产品的研发质量和研发成本。
在最初的需求澄清阶段,在参会人员中,不管是客户还是PM,都是从开发编码的角度正向理解需求的。此时,QA就需要从测试的角度,逆向挖掘需求,来填补其余人在需求挖掘上的空白,确保后期开发过程中,程序的功能在测试限定的边界内,从而降低项目风险和更正成本。
如果是采用了Jira和Confluence等敏捷工具的项目中,小到每个Defect的详细描述和重现定位,大到就此同开发人员甚至客户方的交流等等,这些都对于沟通和协调能力提出了很高的要求。
怎样用最简洁清晰的语言,将问题描述清楚,,提供尽可能详尽的有效信息,这个对QA的基本要求,也是很多工作中的基本要求。然而这个是在IT行业从业人员中,普遍存在的一个短板,这方面的能力是需要着重训练的。
如果这个项目同时还是牵扯到其他模块或者其他项目组,那么有关流程处理和数据准备等环节的协调,也是必须的。同样的,这也是QA进阶之路上的必备技能。
接下来就是测试工程师本身的一些工作技能,比如测试案例的编写方法,例如等价类划分法、边界值分析法、因果图法等等,通过不同方法和思路,可以做到尽可能全面覆盖测试点,挖掘出更多隐含的测试场景。
还有测试工具的使用,可以提高工作效率,做到有的放矢。近些年兴起的自动化测试中,各种基于不同平台的自动化框架,各种不同工具之间的配合,以及不同的侧重点,例如性能测试、压力测试、极限测试。
都是基于测试工具的发展而形成的全新的测试手段。在工具和工作执行层面提高效率,这个就是在测试执行和具体的测试工作中,具体的增加和变化。
而通过训练和经验积累而成的,对测试scope的估算以及对于测试进度的把控等等,也是测试技能的一部分,对于测试工作的内容本身而言,这些也都是属于“形而下者”的范畴。
自然,这一切的基础,依然离不开上层建筑——“道”,也就是测试工程师本身的意识和职业素养的影响。
当然,软件测试工程师应该具备的技能和素质不是三言两语就可以说清的,更多的经验和诀窍我都整理到了《测试工程师面试技巧全方位指导》这门课里,每个点可能都需要串很多知识,当我们具备了测试技能和素质,我想,无论在哪家公司,做什么项目,都可以手到擒来。
我将如何讲授“测试工程师面试要点和职业发展”这门课程?
《测试工程师面试要点和职业发展》主要内容分为两部分:测试工程师的面试要点,以及测试工程师职业发展的路径。
解决了“我是谁?”“我该干什么”这样的基本理念,明晰了软件测试工程师逐步升级的路径,以及需要具备的能力和发展方向。也明确了作为测试工程师,应该具备的素质和技能,具备了这些条件之后,才能够在软件测试这条路上昂首前进。
接下来介绍了在敏捷架构下,测试工程师在其他职业方向进行发展的路线,以及在这些职业方向中,作为测试工程师原有的积累所带来的优势。
本课程中一个重点就是测试工程师和测试开发工程师的区别,以及两个职位的定义和职责。
经过这些课程内容,我们再回过头来看本文开始最初的那几个问题,就可以轻而易举地理解面试官提出问题的目的和意图。对于这几个问题,如果各位有了自己的答案并且可以侃侃而谈,那么就意味着,在面试的诸多问题中,最关键的基础类别问题已经不再是问题了!
你能收获什么?
相信通过本门课程的学习,你能对软件测试工作有最基本的了解。本课程是针对所有软件测试从业者,尤其是针对希望以软件测试工程师为出发点,在这一行业有所斩获,或者在到达一定职业高度之后通过转职获得更大发展的。
通过本课程的梳理和介绍,可以给诸多测试工程师以清晰的发展思路,同时给在这一行业中辛勤努力的同仁们一个发展的方向,从而延续自己的职业生涯,并有所提高。
华为
1)笔试可以选择JAVA和C++。
其中一个编程题:用数组实现栈,首席技术官(ctoicxo)并且当栈空间满时,栈空间增加一倍。
2)面试:IT类或者管理类。
一面:技术面试,40分钟,问的很细,UML,单点登录,J2EE
二面:综合面试,20分钟一个项目完整的经历
三面:HR,职业规划,优势与劣势,期望工资与工作地点。
四面:决策层面试。一般是总裁面试。但是根据第一印象刷人的情况很常见,很残酷。
腾讯-移动kjava开发
1)笔试:C++,基础题目与程式设计师考试水平相当。
附加题:
1有10亿个浮点数,从中找出1万个最大的数。写一个高性能的算法
2Unix后台进程的实现
3MFC的多文档模板的加载
4数据库SQL语句查询
2)面试
技术1面:一般有很多面试官,你个人可以选择其中的一个。问的问题,是否接触过DirectX技术?2D,3D引擎原理?然后问一个很基础的问题,写一个程序:从双向循环链表中删除一个节点。
广东北电-研发
1)笔试C++:考的比较难,一共4题,1个小时完成:
1英译汉
2中序遍历一个二叉树,不能用递归
3双向冒泡程序改错——3个错误
4回答程序所完成的功能-共5问题目很长,时间来不及。最好提前准备一下。
以下是一些中大考试题目:
1IS95标准,关于CDMA发展。汉译英
2编程题
输入年月日格式yyyymmdd,判断是否是周末,只要求对2005年判断。
3分析题:有关移动通信编码,位图什么的,好像是输入一串数据,根据题目比编码方法,写出编码后结果,好像没多少人会做。
2)面试
1多进程与多线程的区别与通信
2测试方法
3C++中的多态在C中如何实现
神州数位-开发工程师
1)笔试:综合能力测试(公务员题目)+专业测试(J2EE/C++/数据库)
2)面试:没有问技术问题
1面:HR面,半结构化测试,主要是性格测试
2面:业务面,没有问任何技术问题,就是职业规划和情景分析
立信-从兴电子
笔试:C++,考的n基础,但是不是很好做
1)C++中引用编译过的C代码为什么要用「extern c」
2)类与struct的区别
3)数据库建表的SQL语句,注意主键与外键是如何建立的
4)文件的外排序,考虑到CPU,内存,硬碟空间等。
面试:
一面:技术+HR,很容易应付
二面:通知是综合面,还没有去面,应该是谈价钱
招商银行研发中心
笔试:IQ测试+专业测试(c++,java,delphi,都有),考的都是很基础的,但是不容易对付
面试:在笔试的过程中进行,就问了一下项目,工作流,专业课程与成绩。
金蝶软体
笔试:综合能力测试(公务员题目)+专业测试(java+数据库+UML)
1SWING中组件布局有哪几种方式
2写实例代码说明多态的实现
3数据库SQL语句
4基础题目考的很全,国际化,数据库索引,xml shema,ejb,数据结构等等
面试:
1) HR:问了专业,成绩,期望工作城市。
2)技术面:问其中一个项目,UML用在项目的哪些方面,有没有用到数据库索引,数据库实体建模是用什么工具
群硕
笔试:英文,不难做,JAVA基础知识
面试:
一面:技术面,MVC架构,存储过程,JDBC,JMX与JMS的区别,Servlet的运行过程与线程安全性。自动装箱与拆箱是否可逆,ADO与ADONET的区别
二面:HR面,职业规划,期望工资,双选的准则
康拓普电力自动化
康拓普公司
笔试:IQ测试+专业测试(java):
考的非常基础:人民币数字转化为文字,如1235,输出一千二百三十五元
面试:项目和一些基础。
java工程师月薪具有效数据调查收入为9870元,远远要高于其他行业的月薪水平。
并且java的薪资也并不是属于一程不变的那种,也是会随着工作时间和经验的增加而薪资以及自身的价值也会随之增长。
以上就是关于软件测试工程师面试技巧全部的内容,包括:软件测试工程师面试技巧、知名IT企业程式设计师面试题、Java工程师一般月薪是多少等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)