软件测试工程师经典面试题,56月可以跳

大家好,前两天跟朋友感慨,今年的铜三铁四、裁员、疫情导致好多人都没拿到offer!现在互联网大厂终于迎来了应届生集中求职季。对于想跳槽的职场人来说,绝对是个找工作的好时机。这时候,很多高薪技术岗、管理岗的缺口和市场需求就出来了。所以在这段时间想跳槽、找工作的朋友,就一定要好好准备抓住机会,补一补自己的知识体系,完善自己的能力模型!今天这篇帖子主要讲解之前面试自己面试过程中或者周围人面试过程中经常被问到且比较经典的面试题,一家之言,如有异议或者有想问的问题,可以在评论区留言,看到后将在第一时间内回复!软件测试的流程是什么?分析:每当HR问一个问题的时候我们都可以用1~2s的时间去想HR想要从这个问题中获取什么信息,这点搞清楚之后再去回答就很好回答了。如果有工作经验,直接按照公司流程回答即可,如果是刚转行或者刚实习,那按标准回答即可,文中回答仅供参考;回答:项目经理或者PD把项目需求文档提前下发给相关的研发人员,研发人员抽出一定的时间记录文档内需求不明确或者遗漏的点为后面的评审做准备;在需求评审会议上,各研发人员提出自己的疑问并解决,需求评审最终通过之后会出一份最终的需求规格说明书;(需求评审阶段)需求规格说明书评审通过后,开发经理开始编写开发计划,测试经理开始编写测试计划,计划评审通过后开发人员开始进行程序的开发,测试人员开始测试用例的编写,等程序的第一个版本出来后,开发人员进行第二个版本的迭代,这时测试人员对程序进行测试并记录追踪管理缺陷,直到程序迭代完毕。(产品研发阶段)程序迭代完毕并修复大部分缺陷后,测试人员开始进行工作的总结,并最终输出一份测试报告书,记录此次的测试工作共,程序存在的相关问题。(产品发布阶段)测试用例主要有哪些元素?分析:每个公司因为使用的模板不一样,所以测试用例的内容也是不尽相同的,所以回答时只需要回答出基本的元素即可;回答:测试用例主要元素有:ID、标题、模块、预置条件、操作步骤、预期结果、实际结果、是否通过、BugID等;软件测试有什么策略和阶段?分析:软件测试的策略就是测试将按照什么样的思路和方式进行如采用什么技术,什么步骤等。回答:软件测试的策略主要有:动态测试和静态测试、白盒测试和黑盒测试。测试阶段按照研发顺序分别是:单元测试、集成测试、系统测试,有些公司还会有验收测试;(单元测试开发在调试代码时就完成,集成测试也是,但是有时测试人员也需要进行集成测试;测试人员平时主要的工作就是系统测试,验收测试是有客户参与进行的测试);黑盒测试和白盒测试是什么?二者有什么区别?黑盒测试:把测试对象当成一个黑盒子,测试人员完全不考虑逻辑结构和内部特性,只依据程式的需求说明书来检查程式的功能是否满足它的功能说明。白盒测试:把测试对象当成一个透明的盒子,允许测试人员利用程序内部逻辑结构及相关信息,设计或选择测试用例,对程式所有逻辑路径进行测试。回答:黑盒测试主要是在程序界面进行测试,通过设定某种场景检验程序在这种场景下是否给出了正确的反应,验证程序正确实现了需求规格说明书中的需求,而白盒测试主要是针对程序内部结构,对程序代码进行代码走查等,但是白盒测试的成本会比较大,当程序有多个路径时,可能会产生较多的遗漏;软件测试有什么类型?回答:常见的软件测试类型有:功能测试、性能测试、兼容性测试、可靠性测试、安全性测试、压力测试、负载测试等;测试用例是什么?有什么作用?回答:测试用例就是设计一个特定场景,让软件在这种场景下运行,检验程序是否给出正确的反应,以此验证软件是否正确实现了客户需求。作用:

避免盲目测试并提高测试效率;在软件版本更新之后只需修正少部分用例即可开展测试工作,降低工作强度,缩短测试周期;

可以分清哪些是测试重点,测试用例是测试工作的见证,能知道测试了哪些功能,没测哪些模块;

测试用例是量化测试工作的方法之一;

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

软件未实现需求规格说明书中的要求;

出现需求规格说明书中指明不应该出现的错误;

软件未实现需求文档中虽未明确提及但应该实现的功能;(如:账密加密)

软件出现难以理解、不易使用或者运行速度慢等问题都可以认为是软件缺陷;分析:这个问题和上面测试用例一样,每个公司的要求可能都会不一样;回答:主要元素有:标题、BugID、复现步骤、实际结果、预期结果、截图、日志等;软件缺陷等级一般有四种,致命(程序奔溃)、严重(金额计算错误、数据出错)、一般(不影响使用但是会造成一定的麻烦)、优化(字体字号不统一)

一个有广告的纸杯子,请设计测试用例?测试项目:杯子需求测试:查看杯子使用说明书界面测试:查看杯子外观功能度:用水杯装水看漏不漏;水能不能被喝到安全性:杯子有没有毒或细菌可靠性:杯子从不同高度落下的损坏程度可移植性:杯子在不同的地方、温度等环境下是否都可以正常使用兼容性:杯子是否能够容纳果汁、白水、酒精、汽油等易用性:杯子是否烫手、是否有防滑措施、是否方便饮用用户文档:使用手册是否对杯子的用法、限制、使用条件等有详细描述疲劳测试:将杯子盛上水(案例一)放24小时检查泄漏时间和情况;盛上汽油(案例二)放24小时检查泄漏时间和情况等压力测试:用根针并在针上面不断加重量,看压强多大时会穿透跌落测试:杯子加包装(有填充物),在多高的情况摔下不破损震动测试:杯子加包装(有填充物),六面震动,检查产品是否能应对恶劣的铁路\公路\航空运输基本功能测试(逻辑功能测试)。(1)硬度:是否达到设计标准。装载能力:在杯子内分别装入少量的、半杯的、满杯的,看其装载量是否达到设计标准。装载种类:开水(是否产生异味)、温水、冷水、冰水、咖啡…(2)界面测试(UI测试)。看其形状、大小设计是否适合人方便拿起。外观是否吸引人(广告嘛),赏心悦目。带广告的图案沾水受是否掉色、模糊。(3)易用性测试。残疾人士用此杯去喝水的容程度。杯子设计是否上大下小,在运输过程中可以套在一起有效利用空间,在使用时也容易拿开。(4)稳定性测试(24X7测试)。装入液体后记录其多少以后漏水。(5)安全性测试。杯子所用的材料(包括纸基、涂层和广告颜料)是否符合食品卫生标准,在内外温度等环境因素下是否会与所盛各种饮料相反应,而产生对人体有害的物质。(6)本地化测试。为国际化和本地化的需要,广告图案和文字是否在政治、宗教和文化方面具有广泛的适用性。(7)对设计的改进建议。“如果是一次性杯子,能否标示已使用(比如变色)”和“杯子是否有使用者标贴(多人使用时防止混淆)”。测试报告里面包含什么内容?分析:测试报告,是测试工作结束后测试部门输出的一份测试结果,但每个公司的测试报告内容都会有些差别。有些公司的测试报告是有测试部门的负责人一人编写,或者是由每个测试工程师输出自己对应模块的测试报告再由测试组长整合成一份完整的测试报告;回答:测试报告内容一般有:编写目的、系统简介、测试环境、测试方法和工具、测试执行结果与记录、缺陷汇总、遗留缺陷跟踪、测试用例执行情况、测试结论与建议等;如果在测试过程中发现了BUG,可是开发不承认这是Bug,你会怎么办?分析:HR问这个问题主要还是想知道你平时是如何处理与同事之间的关系。开发和测试是两个即对立又统一的两个岗位,所以开发和测试之间关系的处理也是HR面试过程中需要考虑的一个点。当然,HR问这个问题也表名该公司有氛围不是很好的风险。回答:首先还是应该回归到客户需求上面,确认这个问题到底属不属于一个缺陷,如果确实是则要和开发同事解释清楚;如果开发还是坚持自己想法的话,则询问同事或者测试组长的意见,讨论这个问题到底属不属于缺陷问题,如果大家都觉得是则需要和开发解释清楚。你们公司的需求评审是怎么进行的?分析:需求评审,就是对客户需求,软件各个模块之间模糊的点进行审查,排除不理解或者没有考虑到的点。回答:需求评审,在一些分工比较明确的公司,都是由PD(产品设计师)负责,需求确认好后再下发到开发和测试部门;分工不怎么明确的公司可能就是开发测试产品等大家坐在一起共同探讨;评审形式一般分为线上和线下两种方式,负责人一般会提前把需求文档下发到大家手上供大家整理各自的疑惑点,为后续的评审会议做准备。MySQL的常用命令有哪些?分析:数据库知识,是测试工程师必备的一个基本技能,在面试过程中也是经常会遇到的一个考点。对于刚入行的测试,对数据库知识的要求不会太高,只要求能掌握基本的增删改查语句即可。关于数据库的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。回答:这里只给出几个标准的语法结构:增:insertinto表名(列名)values(数据);如:在stu表中插入id为,姓名为张三的学生,(insertintoStu(stu_id,stu_name)values(,‘张三’);)删:deletefrom表名where指定数据;如:在stu表中删除id为,姓名为张三的学生:(detelefromStuwherestu_id=‘’andstu_name=‘张三’;)改:update表名set改变项where指定数据;如:在stu表中修改id为的学生姓名为“张三”:(updateStusetstu_name=‘张三’wherestu_id=‘’;)查:select(查询项)from表名where指定条件;如:在stu表中查询id为,姓名为“张三”的学生信息:(select*fromStuwherestu_name=‘张三’andstu_id=‘’;)Linux下的一些常用命令是什么?分析:Linux系统,也是软件测试工程师必须要掌握的一项基本的技能,由于Linux具有运行稳定等很多优点,软件的服务器大多部署在Linux系统上,搭建测试环境也是测试工程师需要掌握的。关于Linux的知识,在后续的时间里,也会慢慢的整理出来,供大家学习、参考。由于Linux下很多命令都是常用的,所以这里不给出答案。描述使用bugzilla缺陷管理工具对软件缺陷(BUG)跟踪的管理的流程?就是Bugzilla的状态转换图。你觉得bugzilla在使用的过程中,有什么问题?界面不稳定;根据需要配置它的不同的部分,过程很烦琐。流程控制上,安全性不好界定,很容易对他人的Bug进行误操作;没有综合的评分指标,不好确认修复的优先级别。描述测试用例设计的完整过程?需求分析+需求变更的维护工作;根据需求得出测试需求;设计测试方案,评审测试方案;方案评审通过后,设计测试用例,再对测试用例进行评审;单元测试的策略有哪些?逻辑覆盖、循环覆盖、同行评审、桌前检查、代码走查、代码评审、景泰数据流分析使用QTP做功能测试,录制脚本的时候,要验证多个用户的登录情况/查询情况,如何操作?分析用户登录的基本情况,得出一组数据,通过性测试/失败性测试的都有(根据TC来设计这些数据),然后录制登录的脚本,将关键的数据参数化,修改脚本,对代码进行加强,调试脚本。软件的评审一般由哪些人参加?其目的是什么?在正式的会议上将软件项目的成果(包括各阶段的文档、产生的代码等)提交给用户、客户或有关部门人员对软件产品进行评审和批准。其目的是找出可能影响软件产品质量、开发过程、维护工作的适用性和环境方面的设计缺陷,并采取补救措施,以及找出在性能、安全性和经济方面的可能的改进。人员:用户、客户或有关部门开发人员,测试人员,需求分析师都可以,就看处于评审那个阶段测试活动中,如果发现需求文档不完善或者不准确,怎么处理?测试需求分析发现需求文档不完善或者不准确,应该立即和相关人员进行协调交流。

阶段评审与项目评审有什么区别?

阶段评审对项目各阶段评审:对阶段成果和工作项目评审对项目总体评审:对工作和产品阐述工作版本的定义?

参考答案:构造号:BUILD什么是桩模块?什么是驱动模块?参考答案:桩模块:被测模块调用模块驱动模块调用被测模块什么是扇入?什么是扇出?参考答案:扇入:被调次数,扇出:调其它模块数目你未来的职业规划是什么?分析:职业规划问题,是所有面试中最常问的问题,问的人可能是HR、部门主管、经理、甚至是董事长。同一个问题,问的人不同,想要获取的信息也肯定是不一样的。HR更多的想看你在公司的稳定性;技术主管可能更想知道你是否真的喜欢测试这个岗位,后期是否会主动学习型新的技能等;而经理更多的是看你的职业规划符不符合公司的发展方向;软件测试工程师的发展方向主要有:测试开发、产品经理、测试转开发、测试大牛、讲师等岗位;回答:HR:如果是HR问的话,多从稳定性的角度回答,如:家人、朋友都在公司附近,或者喜欢贵公司的文化氛围等;技术:回答之前可以先简单介绍一下自己为什么选择软件测试这个职业,以及自己对这个职业的看法,最后再回答自己的职业发展方向即可;经理or董事长:这个回答回答起来的话还是比较难把握的,因为在面试时,面试者往往对公司的发展方向不是非常了解,所以在回答时可以再带一句,“具体的发展方向,还需要公司的发展方向去调整”。这样回答就会保险一些。还有什么想要问我的吗?分析:这个问题在每个面试的尾声都会被问到,直接说没有,会让HR觉得你不关心这个岗位,问的多了又会显得面试之前没有做好充分的准备。所以问题一般控制在两到三个比较好。回答:

公司的研发团队目前是什么规模?开发、测试分别有多少人?

公司的业务方向是什么?

如果我入职之后,我的工作职责是什么?

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

最后:感谢每一个认真阅读我文章的人,看着粉丝一路的上涨和


转载请注明:http://www.aierlanlan.com/rzgz/4743.html

  • 上一篇文章:
  •   
  • 下一篇文章: