在回答这个问题之前,我先推荐下“软件测试面试汇总”这个公众号,有关求职面试的一些回答,可能对关注或刷到这个问题的朋友们有帮助
结合问该问题的小伙伴所面临的背景,最近找工作,收集了下被问到的面试题。其实在软件测试领域面试题多如牛毛,采取疯狂刷题的方式确实可以解决不少面试中可能碰到的问题,而且可以学到一些知识。但是,有可能刷的面试题一个都问不到。
如何才能解除上述尴尬,一定要记得不要脱离一个核心目的:找一份测试工程师的工作!那么接下来,基于这个目的,我专门尽量深入系统讲解下我们要准备一些什么。所以我们的文章分为下面几个部分:
1、如何分析自己和面试公司2、如何根据分析的结果来准备面试面试题
我会尽量分享干货、实战、系统,闲话不多说,现在我们就开始。
一、如何分析自己和面试企业
1、如何分析自己2、如何分析面试企业3、案例实战分析
1、先看怎么分析自己
俗话说,知己知彼百战百胜,那首先要分析自己:
- 我要找一个什么样的软件测试工程师的岗位:
- 什么级别?
- 什么类型的测试:自动化、性能、安全、测试开发??
- 我会什么?
2、再看怎么分析面试公司
知己知彼百战百胜,接下来就要分析面试公司:
- 分析所要面试公司
- (很多人都忽略这个,其实这个很重要):
- 所要面试的公司是做什么的?
- 该公司招聘目标测试工程师主要是负责什么事情?
结合了上面实际情况后我们才能有针对性去收集和刷面试题,做好有应对性的面试准备。不同的情况我们所面对的面试不一样。
3、案例实战分析
拿一个测试学员具体的面试场景来解析遇到的面试题。
- 目标岗位:
- 中级软件测试工程师
这里的软件测试工程师指市面上最招聘需求量最大的相对综合性的工程师,功能测试必备,其它技术相对多多少少都有一些要求的测试工程师类型。
- 公司解析:
- 属于一个自主运营网站服务类型(如电商、社区、Sass物流等)的公司。
这类公司的产品一般属于长期运营,持续性版本迭代。测试工程师主要以功能版本迭代工作为准,少量的性能测试以及为提高测试效率可能会实施一些接口自动化测试事项。
- 分析可能问到的问题:
通常情况下,这种招聘需求有一句市面上常说的话:面试造飞机,上班拧螺丝。要求千千万,工作取其一。测试领域中的什么技能都会问一些。
所以面试题重点从下面几个方面来进行梳理:1)质量管理理论知识类 2)手工测试类 3)接口测试类 4)性能测试类。
二、如何根据分析的结果来准备面试题
分析出了面试题重点,接下来我们来讲解下如何准备以下4类面试题:
1)质量管理理论知识类2)手工测试类3)接口测试类 4)性能测试类
注意事项说完之后,开始罗列四类面试了:
1、质量管理理论知识类题目
考察面试者对于软件质量的认知。作为一个测试工程师在执行测试工作工程中不能只盯着自己的一亩三分地,招聘者可能更希望测试工程师对于软件质量保障除了执行测试外,还能从各个方面找到提升测试效率、测试有效率的思路或者有向着这个方向思考趋势。
- 请简单描述下在最近的项目中,你们的团队是如何执行的软件测试相关工作?
- 了解过敏捷测试吗?简单描述下你对于敏捷测试过程的理解?
- 一般情况下,你会在什么时候开始介入到版本的测试工作?做哪些工作?
- 如何保障开发提测的内容是测试准入?你又是如何判定的?如果未达到准入标准你会如何处理?
- 在上家公司中,测试除了通过保障开发提交的版本功能质量外,对于其它协作部门产出物是否有质量要求?
- 在你测试的过程中如何规避测试计划无法按时完成的风险?
- 你觉得在上家公司的测试工作中有什么可以改进的地方么?
- 在版本测试过程中,包含哪些成员,你们是如何进行信息同步的?
- 说说你对于软件测试理解?
- 现在给你一个项目你会如何组织测试工作?
2、手工测试类
手工测试是所有岗位最核心的工作,不管是专职的自动化测试工程师、测试开发还是性能专项等,都是以手工测试为基础。在面试的过程中手工测试的相关的知识都是必问内容。
- 在设计用例的时候你都用到了哪些测试方法?
- 为什么需要编写测试用例,它的意义在哪里?
- 编写测试用例的要点是什么?执行测试用例的人怎么能根据你的测试用例来判断就是测的这个功能点?
- 在测试中发现问题怎么去定位呢?
- 如何保障所编写测试用例覆盖率、有效率?
- 说说APP测试、微信小程序测试和Web端测试区别?
- 所测试的项目有没有考虑兼容性,说说兼容性测试的关注点在哪?
- 缺陷的核心要素有哪些?简单描述一下缺陷的处理过程?
- 没有明确的需求文档,你是如何展开测试工作的?
- 一般情况下,一个版本的测试执行过程中,会组织几次测试迭代?在迭代过程中是否做一些分析工作,来保障版本质量?
- 在之前的测试过程中,有没有什么缺陷让你记忆犹新?你是怎么处理的?
- 挑选一个场景现场设计一套测试用例或测试点?
- 自己所负责模块对应的开发人员缺陷修复效率低下,影响到你的测试计划的顺利执行,你会如何处理?
- 在执行手工测试时,你会用到一些什么样的工具来协助定位和分析问题?
- 在测试过程中发现了一个问题,但是后续却无法重现,你会如何处理?
- 按测试计划规划的时间,测试工作已经执行完毕,但是你负责的模块还存在一些缺陷未修复,你会如何处理?
- 有没有测试过在线支付的功能,你是如何进行测试?
- 你们的测试用例是如何管理的,整体有多少条测试用例?在职期间该系统发现了多少个BUG?
- 大概多久迭代一个版本,不同大小的版本测试过程是一样的?
- 在执行手工测试的过程中,实际结果除了关注界面上所展示信息,你还会检查哪些点?
- 手工测试相关知识点很多,面试官可能结合业务功能来进行深挖,也可能临场出一些场景题,不过整体大同小异。
3、接口自动化测试
接口自动化测试属于灰盒测试的范畴,实现起来简单,即可以让测试工程师提早介入测试,也可以用来做回归测试。随着以后市场的发展,接口自动化测试成为测试工程师的必备技能之一。
- 简单描述下你之前是如何执行接口自动化测试?
- 接口自动化测试带来的价值在哪?
- 没有接口文档的情况下,你会如何执行接口测试?
- 接口自动化测试过程中,你如何设计测试数据,关注点在哪里?
- 如何判断一个缺陷是属于前端还是后端的?
- HTTP和HTTPS的区别在哪里?
- 之前见过哪些接口请求类型,简单地描述下区别?
- 见过哪些接口返回状态码,简单的举例说明几个?
- 在手工接口测试或者自动化接口测试的过程中,上下游接口有数据依赖如何处理?
- 当一个接口出现异常时候,你是如何分析异常的?
- 用过哪些接口测试工具,有没有用过代码形式来实现接口自动化测试?有什么区别?
- 在接口自动化测试方案设计中有没有涉及数据驱动,是如何实现的?
- 简单地描述下token和seesion的区别?
- 支付接口你是如何执行接口自动化测试的?有没
- 有用过mock,简单地描述下你是如何使用mock来模拟接口的?
- 不可逆的接口自动化测试数据,例如订单,删除之后下次执行就没有该数据了,如何保障脚本在不重新做数据的情况下可以无线执行?
- APP、微信小程序要实现接口自动化测试,其实现方式和Web端有区别么?
- 手机端如何执行弱网测试?
- 接触过哪些接口类型,WebService接口有没有测试过,如何执行的?
- 有没有实现持续集成,简单描述下整个实现过程?
强调:基于接口自动化测试,市面上已经有很多很多便捷的工具,甚至已经有不少公司已经有了自己的可视化接口自动化测试平台,让不会编写代码的手工测试工程师经过简单的培训后就可以直接执行,实现起来非常简单。那么随着市场的发展,我们就需要更加深入理解接口的实现原理,从更底层的或更智能的层面去完善自己的接口自动化知识体系。
4、性能测试
在互联网时代,客户流量直接影响到一个软件的成败,有了流量也就代表软件服务器必须支持产品性能。首先,中小型公司,不需要设计大型的性能测试方案体系,但是对于软件的核心功能还是会保障其性能的。第二,执行性能测试,发现性能瓶颈,常见性能问题还是需要清楚。基于目标工作岗位常见面试题整理如下,供参考:
- 之前是使用什么工具执行的性能测试,如何执行的?
- 在测试过程中有没有发现性能问题,描述下问题,以及最后的处理方式?
- 需求中有没有提及具体的性能指标,主要有哪些?性能测试核心关注的指标有哪些?
- TPS和QPS的区别在哪里?
- 性能测试环境和生产环境有什么区别,在测试环境执行测试通过后是如何通过数据来分析在生产环境也能满足性能要求?
- 你是如何设计的性能测试场景,如何执行的并发?
- 压力测试和负载测试有什么区别?
- 线程和进程有什么区别?调用接口是线程还是进程(线程)?
- 在执行性能测试的过程中,如测试环境硬件资源都充足,但是200Vuser执行并发就出现大量的500,你从哪些方面去分析问题?
- 简单地描述下负载均衡的作用?
- 在执行性能测试过程中多用户并发加集合点和不加集合点的区别在哪?
- 如何测试系统支持 8000 并发,允许 100 万用户同时在线的测试?
- 如何确定系统能够承载的最大用户数?
- 响应时间和吞吐量之间的关系是什么?
- 你如何识别性能瓶颈?
- 如何监控服务器硬件资源使用情况?如何判断内存的使用是否有问题?
- APP性能测试和Web端性能测试有什么区别?
- 你是如何执行APP手机端性能测试的?
- APP性能测试过程中关注哪些常见指标?
- APP性能测试如何挑选测试手机?
性能测试设计到的细节的知识点很多,在目标岗位中级测试层面上只需考虑到如何执行测试、常见指标以及发现问题即可。更多的是基于工具的使用层面,以及对性能测试的理解。
三、最后经验分享
随着市场的发展,软件测试的要求也越来越高,但核心技术还是一样。
在面对面试时,需要结合自身所做过的一些东西进行总结归纳,形成经验。这样面试的成功机率才会高。
临时大量刷面试题虽然可以解决一些问题,但是随着职位和年限的提升,是无法解决根本的问题的。
所以:平时多实践各类测试技术实践经验总结和归纳,面试巩固下自身掌握的技能,分析招聘方核心需求,有针对性的补充,才能在面试中游刃有余!!!