测试工程师_测试工程师面试 - CSDN
测试工程师 订阅
测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。传统的软件行业还是以软件测试工程师为主,但是在新兴的互联网行业大多还是以QA来命名这个职位,也就是质量保证。 展开全文
测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。传统的软件行业还是以软件测试工程师为主,但是在新兴的互联网行业大多还是以QA来命名这个职位,也就是质量保证。
信息
外文名
Software Development Engineer in Test
特    点
工作起点高,发展空间大等
别    名
软件开发测试工程师
中文名
测试工程师
职业待遇
薪酬上升空间非常大
工    作
软件质量的把关者
测试工程师从业资格
在企业中一般称为软件开发测试工程师(Software Development Engineer in Test,SDET)。一般为具有1-2年经验的测试工程师或程序员 。有良好经验的测试工程师可以成长为产品/项目组的测试组长(SDETLead)或软件质量经理(SQA Manager),负责软件质量保证,进行测试管理和领导测试团队。
收起全文
精华内容
参与话题
  • 软件测试工程师经典面试题

    万次阅读 多人点赞 2018-10-27 23:55:52
      软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux...

      软件测试工程师,和开发工程师相比起来,虽然前期可能不会太深,但是涉及的面还是比较广的。前期面试实习生或者一年左右的岗位,问的也主要是一些基础性的问题比较多。涉及的知识主要有MySQL数据库的使用、Linux操作系统的使用、软件测试框架性的问题,测试环境搭建问题、当然还有一些自动化测试和性能测试的问题。测试工程师的面试题,基本上都是大同小异的,面试的核心主要在于框架模块(一到两年工作经验)
    。今天这篇帖子主要讲解之前面试自己面试过程中或者周围人面试过程中经常被问到且比较经典的面试题,一家之言,如有异议或者有想问的问题,可以在评论区留言,看到后将在第一时间内回复!


    1、软件测试的流程是什么?
      分析:每当HR问一个问题的时候我们都可以用1~2s的时间去想HR想要从这个问题中获取什么信息,这点搞清楚之后再去回答就很好回答了。如果有工作经验,直接按照公司流程回答即可,如果是刚转行或者刚实习,那按标准回答即可,文中回答仅供参考;
      回答: 项目经理或者PD把项目需求文档提前下发给相关的研发人员,研发人员抽出一定的时间记录文档内需求不明确或者遗漏的点为后面的评审做准备;在需求评审会议上,各研发人员提出自己的疑问并解决,需求评审最终通过之后会出一份最终的需求规格说明书;(需求评审阶段)
        需求规格说明书评审通过后,开发经理开始编写开发计划,测试经理开始编写测试计划,计划评审通过后开发人员开始进行程序的开发,测试人员开始测试用例的编写,等程序的第一个版本出来后,开发人员进行第二个版本的迭代,这时测试人员对程序进行测试并记录追踪管理缺陷,直到程序迭代完毕。(产品研发阶段)
        程序迭代完毕并修复大部分缺陷后,测试人员开始进行工作的总结,并最终输出一份测试报告书,记录此次的测试工作共,程序存在的相关问题。(产品发布阶段)

    2、测试用例主要有哪些元素?
      分析:每个公司因为使用的模板不一样,所以测试用例的内容也是不尽相同的,所以回答时只需要回答出基本的元素即可;
      回答: 测试用例主要元素有:ID、标题、模块、预置条件、操作步骤、预期结果、实际结果、是否通过、BugID等;

    3、软件测试有什么策略和阶段?
      分析:软件测试的策略就是测试将按照什么样的思路和方式进行如采用什么技术,什么步骤等。
      回答 :软件测试的策略主要有:动态测试和静态测试、白盒测试和黑盒测试。测试阶段按照研发顺序分别是:单元测试、集成测试、系统测试,有些公司还会有验收测试;(单元测试开发在调试代码时就完成,集成测试也是,但是有时测试人员也需要进行集成测试;测试人员平时主要的工作就是系统测试,验收测试是有客户参与进行的测试);

    4、黑盒测试和白盒测试是什么?二者有什么区别?
      分析:黑盒测试和白盒测试的概念百度百科上面都有,这里不再做太多介绍。黑盒测试和白盒测试的区别:https://www.cnblogs.com/i16i1007/p/6624072.html记得
      回答: 黑盒测试主要是在程序界面进行测试,通过设定某种场景检验程序在这种场景下是否给出了正确的反应,验证程序正确实现了需求规格说明书中的需求,而白盒测试主要是针对程序内部结构,对程序代码进行代码走查等,但是白盒测试的成本会比较大,当程序有多个路径时,可能会产生较多的遗漏;

    5、软件测试有什么类型?
      回答: 常见的软件测试类型有:功能测试、性能测试、兼容性测试、可靠性测试、安全性测试、压力测试、负载测试等;

    6、测试用例是什么?有什么作用?
      回答:测试用例就是设计一个特定场景,让软件在这种场景下运行,检验程序是否给出正确的反应,以此验证软件是否正确实现了客户需求。
      作用:1、避免盲目测试并提高测试效率;在软件版本更新之后只需修正少部分用例即可开展测试工作,降低工作强度,缩短测试周期;
             2、可以分清哪些是测试重点,测试用例是测试工作的见证,能知道测试了哪些功能,没测哪些模块;
             3、测试用例是量化测试工作的方法之一;

    7、你平时是怎么设计测试用例的?
      分析:这个问题的点主要考察是否掌握测试用例设计方法,在回答之后,HR可能会继续追问某种设计方法的概念或者实例,这时举例说明即可;如:等价类划分法就是把程序的输入域划分成等价类,从每个部分中选取少数代表性数据当做测试数据。
      回答:设计测试用例一般都会使用到等价类、边界值、场景/流程法、因果图还有错误推测法;

    8、软件缺陷的定义是什么?
      分析:什么样的问题才是一个缺陷,需要从客户需求出发;
      回答:1、软件未实现需求规格说明书中的要求;
            2、出现需求规格说明书中指明不应该出现的错误;
            3、软件未实现需求文档中虽未明确提及但应该实现的功能;(如:账密加密)
            4、软件出现难以理解、不易使用或者运行速度慢等问题都可以认为是软件缺陷;

    9、缺陷中应该包含什么元素?严重等级一般有哪些?
      分析:这个问题和上面测试用例一样,每个公司的要求可能都会不一样;
      回答:主要元素有:标题、BugID、复现步骤、实际结果、预期结果、截图、日志等;软件缺陷等级一般有四种,致命(程序奔溃)、严重(金额计算错误、数据出错)、一般(不影响使用但是会造成一定的麻烦)、优化(字体字号不统一)

    10、给你一个杯子,你会怎么测试?
      分析:给你一个杯子,给你一个电梯,这种问题在前期的面试中是经常遇到也是非常经典的一道面试题,这里给出一个链接,回答时从外观、功能、性能等各个角度说起,再结合自己的一些话就可以了。
      回答:经典测试用例,一个水杯的测试https://blog.csdn.net/ganhongxia/article/details/6025416

    11、测试报告里面包含什么内容?
      分析:测试报告,是测试工作结束后测试部门输出的一份测试结果,但每个公司的测试报告内容都会有些差别。有些公司的测试报告是有测试部门的负责人一人编写,或者是由每个测试工程师输出自己对应模块的测试报告再由测试组长整合成一份完整的测试报告;
      回答:测试报告内容一般有:编写目的、系统简介、测试环境、测试方法和工具、测试执行结果与记录、缺陷汇总、遗留缺陷跟踪、测试用例执行情况、测试结论与建议等;

    12、如果在测试过程中发现了BUG,可是开发不承认这是Bug,你会怎么办?
      分析:HR问这个问题主要还是想知道你平时是如何处理与同事之间的关系。开发和测试是两个即对立又统一的两个岗位,所以开发和测试之间关系的处理也是HR面试过程中需要考虑的一个点。当然,HR问这个问题也表名该公司有氛围不是很好的风险。
      回答:首先还是应该回归到客户需求上面,确认这个问题到底属不属于一个缺陷,如果确实是则要和开发同事解释清楚;如果开发还是坚持自己想法的话,则询问同事或者测试组长的意见,讨论这个问题到底属不属于缺陷问题,如果大家都觉得是则需要和开发解释清楚。

    13、你们公司的需求评审是怎么进行的?
      分析:需求评审,就是对客户需求,软件各个模块之间模糊的点进行审查,排除不理解或者没有考虑到的点。
      回答:需求评审,在一些分工比较明确的公司,都是由PD(产品设计师)负责,需求确认好后再下发到开发和测试部门;分工不怎么明确的公司可能就是开发测试产品等大家坐在一起共同探讨;评审形式一般分为线上和线下两种方式,负责人一般会提前把需求文档下发到大家手上供大家整理各自的疑惑点,为后续的评审会议做准备。

    14、MySQL的常用命令有哪些?
      分析:数据库知识,是测试工程师必备的一个基本技能,在面试过程中也是经常会遇到的一个考点。对于刚入行的测试,对数据库知识的要求不会太高,只要求能掌握基本的增删改查语句即可。关于数据库的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。
      回答:这里只给出几个标准的语法结构:
            增:insert into 表名(列名) values (数据);
        如:在stu表中插入id为001,姓名为张三的学生,(insert into Stu(stu_id,stu_name) values (001,‘张三’);)
            删:delete from 表名 where 指定数据;
        如:在stu表中删除id为001,姓名为张三的学生:(detele from Stu where stu_id=‘001’ and stu_name = ‘张三’;)
            改:update 表名 set 改变项 where 指定数据;
        如:在stu表中修改id为001的学生姓名为“张三”:(update Stu set stu_name = ‘张三’ where stu_id=‘001’ ;)
            查:select (查询项) from 表名 where 指定条件;
        如:在stu表中查询id为001,姓名为“张三”的学生信息:(select * from Stu where stu_name = ‘张三’ and stu_id=‘001’ ;)

    15、Linux下的一些常用命令是什么?
      分析:Linux系统,也是软件测试工程师必须要掌握的一项基本的技能,由于Linux具有运行稳定等很多优点,软件的服务器大多部署在Linux系统上,搭建测试环境也是测试工程师需要掌握的。关于Linux的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。由于Linux下很多命令都是常用的,所以这里不给出答案。

    16、你未来的职业规划是什么?
      分析:职业规划问题,是所有面试中最常问的问题,问的人可能是HR、部门主管、经理、甚至是董事长。同一个问题,问的人不同,想要获取的信息也肯定是不一样的。HR更多的想看你在公司的稳定性;技术主管可能更想知道你是否真的喜欢测试这个岗位,后期是否会主动学习型新的技能等;而经理更多的是看你的职业规划符不符合公司的发展方向;软件测试工程师的发展方向主要有:测试开发、产品经理、测试转开发、测试大牛、讲师等岗位;
      回答:HR:如果是HR问的话,多从稳定性的角度回答,如:家人、朋友都在公司附近,或者喜欢贵公司的文化氛围等;
            技术:回答之前可以先简单介绍一下自己为什么选择软件测试这个职业,以及自己对这个职业的看法,最后再回答自己的职业发展方向即可;
            经理or董事长:这个回答回答起来的话还是比较难把握的,因为在面试时,面试者往往对公司的发展方向不是非常了解,所以在回答时可以再带一句,“具体的发展方向,还需要公司的发展方向去调整”。这样回答就会保险一些。

    17、还有什么想要问我的吗?
      分析:这个问题在每个面试的尾声都会被问到,直接说没有,会让HR觉得你不关心这个岗位,问的多了又会显得面试之前没有做好充分的准备。所以问题一般控制在两到三个比较好。
      回答:1、公司的研发团队目前是什么规模?开发、测试分别有多少人?
            2、公司的业务方向是什么?
            3、如果我入职之后,我的工作职责是什么?

    18、为什么想要离职?
      分析:这个问题主要是想要了解你的近况,以及上一家公司是什么原因导致你离职,。在大部分情况下,HR都会理解你,但是在回答问题时千万不能太过于实诚,有些面试者一上来就在抱怨上一家公司如何压榨公司员工等,没有一家公司愿意接受这样的面试者,HR并不能完全感受你所遭遇到的,所以还是请控制好自己的负面情绪。

    展开全文
  • 作为一个资深测试开发工程师,同时以三年面试官的经验,感觉现在测试岗位供求关系严重失衡,同时也为一些测试工程师,测试开发工程师而着急,所以写了这篇文章,希望能给相关人员一些帮助。 我是计算机专业硕士研究...

    作为一个资深测试开发工程师,同时以三年面试官的经验,感觉现在测试岗位供求关系严重失衡,同时也为一些测试工程师,测试开发工程师而着急,所以写了这篇文章,希望能给相关人员一些帮助。

    我是计算机专业硕士研究生,从实习到毕业一直从事测试开发工作,比较喜欢这个岗位,同时对这个岗位的发展,相关的新技术保持着高度的关注。以我每次换工作都能涨薪40%以上的工作经历,来阐述一下测试岗在市场需求的现状。

    一、功能测试关注点比较窄

    不管我们测试的是web, app还是m端,或是如微软C/S架构的软件,还是如银行,国企等专项的产品,功能测试是基础。工作上一年半载的,就能了解相关的测试流程,如需求分析,测试用例编写,用例评审,提测试验收,功能测试,Bug回归以及上线和线上回归。

    但是很多人员比较关注自己的需求,而不是整体项目或是这个需求在整体项目中的作用,在大型项目或是与多部门合作的时候就手足无措。在一个新项目的测试的时候,如app,仅仅考虑到app本身,而对接口的传递,服务的测试,以及后端数据的校验不去关注。

    在测试工具的使用上,局限于公司提供的工具,仅仅会使用就满足了,而不去了解为什么要这么用?还有没有其他相关的工具?再者就是沉迷于自己公司的产品,如微软的产品测试方法与流程可能和其他互联网公司不一样,也不去了解大部分企业是怎么测试的,深信自己公司的测试方案比较牛。

    除非你想一直在公司干下去,否则你就要了解一下行业现状,现在没有公司愿意花大量的时间来培训员工,招你来就是让干活的。你以往的工作经历再厉害,企业如果用不上也不会要你的。离开现在的平台,你还有什么,这个才是最重要的。


    二、自动化测试没有方向

    在最近一年多的时间,大多数做测试相关的同学都意识到了如果没有代码经验,测试工作也达到了瓶颈。所以都会去学习相关的自动化测试,但是往往不得法。一者通过自学,由于不了解行业发展现状,学习一些过时的技术或是方法,以至实际工作中就变得无所事从。如学习QTP, Loadrunner等自动化测试软件,发现社会上使用不多;学习通过Excel来组织测试数据,用python或是java来编写自动化测试用例,执行起来效率非常低;编写自动化测试用例的时候,没有整体考虑,后期执行用例时一个个执行,没有执行结果汇总,没有错误记录等问题层出不穷。

    由于自己公司业务的限制,缺乏尝试和创新,要么只了解公司现有的框架,要么就是在公司现在的框架上写用例而不去了解整体框架的工作原理。当面试的时候问到自己的自动化测试用例的优缺点,是否了解过业界其他相关的框架或是开发模式的时候,两眼一抹黑。这些情况在现在的面试过程中很常见,而如果你是这种水平的话,不能说明你会自动化测试,当然也很难面试通过。


    三、企业空缺大,求职者达标少

    目前企业对测试人员也要求越来越高,仅仅响应需求的功能测试人员基本饱和或是留给了校招生。通过社招渠道找工作的人,都要求有一定的自动化或是代码经验,能解决工作过程中遇到的问题;或是编码能力较强,能参与公司相关测试项目的开发工作。薪资待遇基本上是15—25K,然后是一大堆岗位要求,要求会上一串很唬人的语言或是技术。

    应该有不少人员在面试过程中会被要求写不少编程题,如单链表逆序,二叉树遍历,日志过滤等。这一方面是看你的编码能力如何,另一方面也能从编码习惯来看你有没有参加过大型的项目开发。

    再者还有给你一个具体的问题,让你来给出解决方案,如:现在有一个全新的App,如果让你负责测试,你可能会实施哪些测试方案?而不像以前那样做个逻辑题,或是写个测试用例什么的了,这个变化相信大家一定深有感触。

    在这几年的面试过程中,公司一直在招聘T3,T4级别的测试人员,通过简历筛选进入面试的人,差不多三四十个才能有一两个达到要求。更多的人员是在公司完成部分代码工作,模仿和重复的成份居多,同时不关注当前业界测试技术的发展。


    四、资深测试开发,测试架构师独孤求败

    测试行业不断发展,公司的测试部门也需要一些大牛来进行相关的工作。一是由于行业原因,代码能力强,有架构经验的人员一般都在开发部门;二是要求高,资源测试开发工程师不仅要精通测试相关的技能,还要会前端设计,服务器配置等等,几乎是全栈工程师;而做程序的人员一般精通一点或是几点的较多,从前到后全都能上的越来越少。

    但是企业想快速发展自己的业务的时候,必须有一个强大的测试团队来保证质量,通过一系列的CI,CD以及其他的手段来促进项目的实施与投放。这就要求相关工程师要从多方面来考虑问题,不仅要考虑项目的实施成本,还要考虑参考与的测试,开发,产品甚至用户等人员,同时要与公司发展的前景及方向相切合,并能很好地为之服务。同时这类人才公司都比较看中,每年的找工作季节也就那么几个人会进入人才市场流通,而且很快就能找到工作,企业的通常定位都在30K以上。这也是我们每个测试人员的努力方向,只有你具备了相应的实力,才有资格向企业要求你期望的薪资。

    上面通过我的个人经验对测试岗位的供求现状,可能存在的片面与不足之处,但是也能说明点儿问题。文章从表象来介绍了一下相关不同测试人员的现状,而从与面试人员的聊天过程中,发现大多数人是想好好学习,想进步可是不知道学习的方向,以及如何学习?

    我的建议是有一点基础的但对自学没有信心的或者没基础但对软件测试非常感兴趣的小伙伴,你们可以选择系统的培训,一定要求学习技术内容和市面项目需求吻合度高,并且注重实战经验的培训,这样才能有实质性的进阶!
     

    展开全文
  • 测试工程师路线

    千次阅读 2018-08-16 14:12:26
    一、Linux必备知识 linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有linux能力。 二、Shell脚本 掌握shell脚本,包括shell基础与应用、...软件测试工程师必备Mysql数据库知识,不仅仅...

    一、Linux必备知识

    linux作为现在最流行的软件环境系统,一定需要掌握,目前的招聘要求都需要有linux能力。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    二、Shell脚本

    掌握shell脚本,包括shell基础与应用、shell逻辑控制、shell逻辑函数等。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    三、互联网程序原理

    自动化必由之路:前端开发基础知识以及互联网网络必备知识。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    四、Mysql数据库

    软件测试工程师必备Mysql数据库知识,不仅仅停留在基本的“增删改查”。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    五、抓包工具

    Fiddler、Wireshark、Sniffer、Tcpdump各种抓包工具适用于各种项目,总有一款适合你。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    六、接口测试工具

    接口测试神器,你绕不开的强大工具:Jmeter。小巧灵活:Postman。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    七、Web自动化测试Java&Pyhton

    了解自动化的目的,熟练掌握testng&unittest自动化框架,以及断言与日志处理。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    八、接口与手机自动化

    专业接口调用、测试解决方案。组建完整的web和接口自动化框架,Appium整体使用。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    九、敏捷测试&TestOps构建

    揭开TestOps的神秘面纱,持续集成Jenkins框架烂熟于心。

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    十、性能测试&安全测试

    软件测试的彼岸:性能测试和安全测试,选对方向,努力爬坑吧!

    8年软件测试工程师感悟——写给还在迷茫中的朋友

    展开全文
  • 一个测试工程师面试官的真实分享!个人超赞同!

    万次阅读 多人点赞 2018-05-28 13:46:48
    加上之前在团队中最近几年也做了不少面试,关于测试工程师招聘的话题,刚才没事特意google了一下,除了一些面试题外居然没有几篇心得方面的文章。上午招聘轮空,抽空写一下自己的看法,仅供参考。记得看完即焚。 ...
    最近一段时间都在做集中招聘,参加了许多面试,累个半死。加上之前在团队中最近几年也做了不少面试,关于测试工程师招聘的话题,刚才没事特意google了一下,除了一些面试题外居然没有几篇心得方面的文章。上午招聘轮空,抽空写一下自己的看法,仅供参考。记得看完即焚。  
    所有团队的招聘,基本上都是要找最“合适”的人,而不是技术最强的人,或者最优秀的人。技术最强的人不一定合适,原因有很多,
    1. 岗位一定的情况下,并不需要超出岗位能力特别多的人,完全没有这个需求。
    2. 性价比问题。因为这些人比较“贵”。如果不给比较高的待遇和级别,无法吸引这类候选人。
    3. 如果团队的整体技术水平是6分(满分10分),但候选人是个10分,你觉得他会很乐意跟水平是6的人合作吗?就像把詹姆斯请到cba来打球,即便你付得起薪水,詹姆斯自己也会很郁闷,在他眼中“不怕神一样的对手,就怕猪一样的队友”。
    4. 对管理的挑战比较大,一般来讲,强人一般在融入团队方面有点小问题,除非遇见了比他更强的人。可以参加下文的非技术部分。
    招聘的目的就是要找到最“合适”的人,跟结婚很像,要选择跟自己搭得上的,自己不帅还要那些脸蛋漂亮、身材火爆的,没用,早晚得离,弄不好还给自己带一顶绿帽。 在团队管理中也要充分发挥每个人的长处,扬长避短,让合适的人做适合的事情,才能让团队的贡献最大化(这是另外一个话题,以后有时间再写)。所以在招聘中要试图去发现候选人更多的优点,而不是找他的缺点。你很容易就用一道特别难的题把候选人给问住,或者使劲在他不熟悉的领域让他难堪,除了打击一下候选人的自信之外没啥意义。所以整个面试过程中,多数时间都花费在找优点上。只要不是特别严重的缺点,都可以通过后期的团队管理来弱化其影响。
    技术方面
    首先要确定,测试工程师是一个技术岗位。为了彰显这一点,许多公司都把测试岗位的 title 改为测试开发工程师,像微软的sdet(software design/develepment engineer in test)、谷歌叫set(software engineer in test)等。纯粹的手动黑盒测试工程师早已不复存在。所以,技术技能是最基本的要求,我会针对初级岗位、高级岗位或专业岗位的不同要求来讲对招聘的要求。
    代码能力
    对于测试开发工程师的招聘,由于其是基础岗位,要求也是最基本的编码能力,所以针对这类岗位,我一般会花费80%的面试时间在技术考核上。之前很多团队遗留下来的恶习,总是觉得测试对技术的要求不高,强调“Test Sense”的重要性,我不是否定它的重要性,但对于应届毕业生或者初级岗位的人,压根儿没做过测试,他有个屁的test sense,还不如去花点时间考核候选人的逻辑思维能力靠点谱。我一般喜欢让候选人现场写写代码,对绝对不是那种巨变态的算法问题,一般都是二分法、字符处理、简单数据结构相关的小题目,只是想看看候选人有没有基本的代码功底。在review代码的时候可以有针对性地对编码语言的一些关键字提问,看看候选人的代码掌控能力。基本上,只要能把自己想法通过代码实现且没有大的逻辑错误,在代码考核这一关都会放过。但如果要得到很高的分数,那必须在代码的可读性、异常处理、算法效率、可测试性方面有比较好的表现。我认为对于测试工程师来说,写代码的能力是必须要有,但不一定要求到达“精通”的地步,特别是在算法效率方面。很多的测试工作,都是在工程系统的验证层面上,你要那么牛逼的算法背景做甚? 未来转岗去开发吗?有人可能会在这里崩出来说了,编码语言不精通说明潜力不足。潜力是什么?潜力只能说明你现在能力很差而已,有很大的上升空间。幸亏我写这篇文章的时候只是沉溺在自己的思维世界里,否则还不被那些唱反调子的人给恶心死。好了,继续聊我的。具备了基本的代码能力,可以写自动化的程序或者工具即可。在测试程序的算法效率和巧妙性上花费太多的时间,我觉得这是一种不务正业的表现,除了有助于提高你的个人技术之外,对于公司的项目没有任何的价值,对于测试来说,其自动化用例的编写的效率要比执行效率重要的多。在实际的工作中,脚本语言是也是测试代码的最爱,life is short, test in Python,道理大家都懂。
    测试思路(“Test Sense”)
    对于一些稍微高端的岗位,例如资深测试开发工程师或者测试专家的招聘,需要考核更多的测试思路和测试技术(参见下一段),不再是简单的程序设计问题。关于测试思路,在写完一段代码之后,会被要求来测试这段代码。这个时候,候选人的测试思路就会涌现出来,尝试尽可能多的测试方法与思路来测试这段代码。一般的候选人会考虑正常情况下的使用场景、边界情况、bad case等功能性的方面问题,这说明你入了门,知道基本的思路,而经验丰富的候选人,会在性能方面多考虑一些,例如performance test, load test, stress test(不知道他们的区别,我只能说你不是性能测试专家,赶紧去google一下吧)。在这里,肯定又有好事者会跳出来说了,哥是来应聘性能测试专家的,你让我写代码我就认了,你还让我针对这些代码做性能测试,我可是正经的性能测试出身,之前都是用的loadrunner、jmeter这些高端大气上档次的性能工具,根本不用自己写代码针对某个函数做性能测试。哎,遇到这种人,也不知道是他的不幸还是我的不幸,但在面试官面前我觉得你还是应该低调一些,如果你公开拒绝,我除了认为你比较坦诚之外还会认为你很有“潜力”,注意这个潜力是上一段中所说的潜力。废话少说,白盒的性能测试或者叫性能分析能力,在跟踪定位性能问题的时候特别重要,如果你还能把gperftool(google perfmance tool)、operfile等工具原理及使用场景告诉我,加分!性能测试绝对不是简单的系统方面的性能测试,能够指出整个系统的性能结果只是第一步,系统级别的性能测试工具loadrunner可以做到,但如果想定位到性能瓶颈所在、并提供改进方案那你就必须要掌握刚刚提到的白盒性能分析能力,从系统层面到模块级别、再到函数级别的问题定位,这才能彰显牛逼人的牛逼之处。就是比普通人多那么一点点。发现我的废话还真多,继续说测试思路的事情,优秀的候选人会提供功能、性能方面的思路,再优秀的人会提供更多的思路,例如稳定性方面,这段代码在持续运行24小时之后怎样?函数的响应时间、内存和cpu的占用情况还跟调用之初一样吗?是否符合预期?还有一些人会考虑安全方面的场景,在多线程的调用下程序会出错吗?是否线程安全?多进程的情况下呢,是否有共享的进程间数据安全问题,有没有被死锁的可能等等。还有很多测试思路方面的点子,在这里就不再一一罗列,你要感兴趣,我们可以私下交流。总之,对于有丰富测试经验的人(可不是工作年头),总是可以提出很多思路和方法,而获得这些知识的唯一来源就是实践,否则几个问题深入下去你就露馅儿,而在面试过程中“诚信”永远是底线,不可违背。
    测试技术
    针对高级测试岗位需要一些有针对性的测试技术类问题。例如,针对前端测试岗位,在技术提问上会由针对性地在前端提问,没有自己写过前端程序的人也很难把前端测试做好,html/css/js/Wartir/Selenium/Webdriver等方面的知识必不可少,开源的工具没用过,没有关系,你只要能把类似的思路说清楚也可以。怎样精准定位web页面上得元素、如何得到这个对象而不是另外一个相同类型的元素、背后原理是怎样的,等等这种有针对性的问题很容易试探出候选人在前端测试方面的技术深度。再例如,一个测试工具开发的候选人必须知道框架、工具、平台的区别,框架如何提供接口给业务测试人员使用,哪些是框架要解决的问题哪些是业务测试自己要解决的问题,他们的问题域和解决方案都必须要了如指掌。类似地,在单元测试、api测试、安全测试、mobile测试、后端服务测试、大数据测试等方面,都会有针对性的问题等着你。相比较之前的代码能力,面试官一般更看中测试技术本身的掌握能力,代码能力只能说明你有潜能,而测试技术是未来会在项目中真实用到的技术,会真正地帮助到测试本身的技术。
    技术热情
    在之前的面试中,遇到很多候选人,但被问及为什么来选择来做测试时,有些会说“我是女生,我很细心”。卧槽,适合不适合做测试跟细心有个毛线关系,我承认细心体贴是中华女性的传统美德,可测试真不是靠细心就能做的很好的。而且我发现有一批人的确就是这么想的,所以有必要在这里啰嗦几句。可以这样说,细心地观察是可以发现一个事物的某处缺陷,就像“鉴宝”节目中你要细致地观察,你细心你可以发现某个青花瓷藏品中是否砂底有釉,但如果你不了解元青花背后的知识背景即便你发现了这个缺陷你也无法做出正确的判断,相比较细心,更重要的是背后积累的技能知识。知识技能的增长因素中,很重要的就是技术热情。所以即便候选人技能还不到火候,但如果技术热情饱满,我还是会认为这样的人是真正有潜力的人,甚至会给一个通过。俗话说,“活到老,学到老”,背后依赖的就是热情。没有热情的人就像是一潭死水,工作对他而言更多的是一份工作,毫无声色与激情。在技术日新月异当下,没有热情,慢慢地你就“死”了。
    技术之外
    每一个岗位都有它的针对性,有及技能要求,也有技术之外的要求。团队中需要什么样的人,我们就招聘什么样的人。除了技术能力之外,你最希望团队中的人具有什么特质?这个恐怕因人而异,但你不得不去思考这些问题。如果你招聘到一个不合适的人,对团队的影响是巨大的,会破换团队的水质。一旦发现这类人,一定要“fire quickly”,否则遗患无穷。这里居然扯出了facebook得招聘理念“hire slowly, fire quickly”,我把它翻译成“结婚慢慢找,离婚快点离”,哎呀,我的思路可真发散啊,都不知道自己要说啥了。:)
    言归正传,在面试过程中,技术之外,考查更多的几个软技能大致如下, 1. 沟通能力。整个面试过程本身就是一次沟通的过程,你能够很好地理解面试官的问题,面试官也能听懂你的答案,perfect,这算是一次完美的沟通了吗,体现了候选人优良的沟通能力。错,大错特错,特别是针对面试这种场景,针对测试这个岗位。候选人听得懂你的问题,有可能是你讲的很明白,而你能听懂他的回答是因为你是这个问题域的专家,可以从少数关键字中抽取出正确的答案,这种语境下,并不能说明候选人就具备良好的表达能力或者优秀的理解力。我个人认为,考核一个人的沟通能力时需要提问一些模糊的问题,在逆境下方显能力。如果候选人可以针对你的问题多问几个问题以及经过后继的一些反复确认,这才能证明他具备一定的沟通能力,并说明候选人是一个爱问问题的人,而对于测试来说,爱问问题或者怀疑的态度永远是最弥足珍贵的品质。 2. 团队合作。测试是整个研发环节中的一环,大型的项目更是需要多人一起测试完成。人与人一起打交道,就会有各种合作的需求。合作关系是一种共赢逐利的行为,强调同步与整体,节调一致。但对于一个产品或者项目,有人做红花就要有人甘愿做绿叶,所以在合作中需要奉献。情商较低的人团队合作一般都比较困难。 3. 执行力。执行力不是简单的听话,“执行”才是听话,“力”更多的是强调执行的结果。没有一个主管喜欢不听话的下属,但听话的下属执行力却不一定强。很多人说的漂亮但做起来却没有说的那么好,相反,有些人动手能力很强,但不苟于言辞。坚强的人,或者笨的人更容易成功,因为他们懂得坚持。 4. 易相处。很多团队强调这一点,一个nice的人,一般都很容易相处,团队成员之间的关系也会比较和谐。一般情商比较高的同学,在这方面都不会有太大的问题。反倒是一些智商高的人,容易让人有点担忧。易相处绝对不是唯一的标准,不易相处的同学会给管理上带来一定的难度,多数管理者都会希望自己的团队成员不是那么的刺头。但在面试的过程中对一个人做出这样的判断还是非常困难的。通用言谈举止,或许可以做出一定的判断,但人一是会伪装的,或者说是掩饰,特别是一些知道自己缺点的人,会尝试掩盖自己的不足。
    面试技巧
    所有的技巧基本上都没有什么用处,基本上都是狗屎,再好的技巧都是为了掩饰。所以切记在面试过程中使用什么“技巧”。
    最后
    说了这么多,多数都是对候选人的要求,其实对于面试官也一样,你配做面试官吗?你能真实考察出候选人的能力吗?你判断的依据又是什么。千里马难寻的背后往往是因为伯乐太少。写这段话的时候,我也打了几个激灵,!@#$%一身冷汗呀!面试的过程就是选择的过程,不仅对于面试官,对于应聘者也是这样,可以通过面试了解岗位的情况,以便做出适合自己的决定。坦诚,别装,即便你骗过了面试官,在日后的工作中你也骗不了你自己,这对谁都没有好处。公司找合适的人,个人选择适合自己的公司,Double Win。
    最后,关于招聘信息,不少互联网公司都在微博上发布岗位信息,可以重点关注一下。但,别天天没事就挂在微博上,微博上扯淡的人比较多,他们都是优秀的time killer,专门扼杀你宝贵的时间还让你觉得自己长了见识
    展开全文
  • 软件测试入门视频教程

    万人学习 2019-06-25 10:59:08
    软件测试入门视频培训教程:该课程将带你走进“软件测试”的大门,具体内容包括软件测试环境搭建、软件开发模型、产品模型、CMM模型、测试用例、等价类划分、边界值划分、白盒测试、单元测试、bugfree搭建、系统测试...
  • 测试工程师常见问题

    2020-09-08 01:08:26
    一、元素无法定位如何解决? 1.查看元素表达方式是否写错; 2.页面可能没有对这个元素进行加载完成,需要加等待时间; 3.元素可能在iframe内,需要先切换到iframe内; 4.元素可能会发生动态变化,需要做一些模糊化...
  • 测试工程师职业发展漫谈

    千次阅读 多人点赞 2019-09-30 10:44:08
    这篇文章发表于两年多前,现在读起来仍然是深有启发,很多地方到了两年后的今天仍然有指导意义,测试人员的思维确实不应该局限于测试行业,而应该放眼于整个软件行业和互联网行业的发展与变迁(我们的思维就是用来...
  • 初级测试工程师面试笔试题(附带答案)

    千次阅读 多人点赞 2019-05-17 00:09:25
    1.编写测试用例有哪几种方法? 答:大刚法、等价类、边界值、因果图、场景法、正交法、错误推断法、正则表达式 2.测试的六条基本法则是什么? 答:功能、可靠性、易用性、效率、可维护性、可移植性 3.软件测试分类有...
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友

    万次阅读 多人点赞 2020-04-19 20:48:45
    这两天和朋友谈到软件测试的发展,其实软件测试已经在不知不觉中发生了非常大的改变,前几年的软件测试行业还是一个风口,随着不断地转行人员以及毕业的大学生疯狂地涌入软件测试行业,目前软件测试行业“缺口”已经...
  • 测试工程师入门(一)

    2020-02-20 17:53:47
    1.什么是软件测试 在规定条件下对软件系统进行审核、运行、评估,检验软件系统是否满足规定需求或者找出预期结果与实际结果之间的差别。为软件产品的质量和评价提供依据。 2.软件测试对象 软件程序、与程序匹配的...
  • 从程序员到测试工程师(转)

    千次阅读 2018-05-23 10:32:43
    但无可置疑,软件测试越来越受到软件公司的重视,软件测试工程师的作用也逐渐被人们所认可。这一点已经在像微软这样的国外大型软件企业中所证实,在微软,一个开发人员相对应着一至两个测试人员。现在,就让我们走近...
  • 测试工程师常见面试题

    万次阅读 多人点赞 2018-12-17 16:33:53
    1、 测试人员在软件开发过程中的任务是什么?(初级)(5分) 答:1、寻找Bug; 2、避免软件开发过程中的缺陷; 3、衡量软件的品质; 4、关注用户的需求。 总的目标是:确保软件的质量。 2、 在您以往的工作中,一条...
  • 作为测试人员,应该要有危机感 没有危机感的测试人员是多么的危险,每当经济不好,业绩不好的时候,公司都可能会采取降薪或裁员的手段,这个时候,相对于技术不高,容易被替代的测试人员就会先拿来开刀。 身为测试...
  • 中高级测试工程师68道面试题

    万次阅读 多人点赞 2018-04-10 23:05:37
    TesterHome收集的一些中高级测试工程师的68道面试题,转存。软性热身题这种题目,考的就是你的软性能力,比如表达能力,理解能力,协调能力,一个词概括就是套路。这类题目会在面试开始热身的时候,问一道两题,不会...
  • 软件测试工程师必备技能

    千次阅读 2019-11-18 11:26:25
    软件测试工程师的技能树 软件测试工程师是一个历史很悠久的职位,可以说从有软件开发这个行业以来,就开始有了软件测试工程师的角色。随着时代的发展,软件测试工程师的角色和职责也在悄然发生着变化,从一开始单纯...
  • 一般情况,软件测试工程师可分为测试工程师、高级测试工程师和资深测试工程师三个等级。 达到这个水平比较困难,这需要了解很多知识,例如C语言,Java语言,数据库,数据结构,软件工程,等等,但是你要在一家公司...
  • 二、软件测试工程师:简历模板 三、软件测试工程师:简历包装 1.基本信息: 2.教育背景: 3.专业技能 4.工作经历 5.项目经验 6.自我评价 四、软件测试工程师:简历总结 一、前言:浅谈面试 面试是我们...
  • 高级测试工程师面试经验

    万次阅读 多人点赞 2019-07-05 10:04:29
    一年之际在于春,新年伊始,又到了跳槽的好季节,不知道你是不是已经安于现状,我作为一名4年的测试工程师,最近在被面试过程中遇到了许多问题,就自己的经历来分析下作为高级测试工程师跳槽前应该准备哪些知识,...
  • 测试工程师按技术可以分为哪几类

    千次阅读 2018-03-06 10:04:02
    1、自动化测试工程师自动化测试工程师细分可以有UI自动化测试工程师,APP自动化测试工程师、接口自动化测试工程师等等。那么怎么才能成为一个合格的自动化测试工程师呢。首先,必须要掌握一门编程语言,应该以Java...
  • 软件测试工程师笔试题目

    万次阅读 2018-11-04 22:00:53
    软件测试工程师笔试题目   一.选择题   1、 系统测试使用( C )技术, 主要测试被测应用的高级互操作性需求, 而无需考虑被测试应用的内部结构。 A、 单元测试 B、 集成测试 C、 黑盒测试 D、白盒测试   2...
1 2 3 4 5 ... 20
收藏数 289,270
精华内容 115,708
关键字:

测试工程师