结合本身以往的工做经验,本身梳理出来一些材料,绝对原创,绝对干货。前端
优秀的软件测试工程师必备的“8个能力”面试
做为一名软件工程师,须要的能力并很少,可是要成为一名优秀的软件测试工程师,须要的能力就比较多了,本身整理出来8个方面,每一个方面都会分红不少细小的方便并进行举例说明。一样的,文章的思惟导图放在文末,须要原图直接找我。数据库
文章一共4500字左右,预计阅读时间9分钟服务器
不废话,上干货!架构
1、业务分析能力并发
1.分析总体业务流程ide
不了解整个公司的业务,根本就没办法进行测试工具
2.分析被测业务数据性能
了解整个业务里面所需的数据有哪些?哪些是须要用户提供的?哪些是本身提供的?有哪些能够是假数据?有哪些必须是真数据?添加数据的时候能够用哪一个库?学习
明白了整个软件的数据库架构,才能知道哪个数据是从哪个表里头带出来的,它的逻辑是什么,有没有连带关系。
3.分析被测系统架构
用什么语言开发的?用的是什么服务器?测试它的话须要用什么样的环境进行测试?总体的测试环境是什么样的?
若是缺乏了,须要进行环境搭建,架构搭建。通常去一家新公司以后,架构是搭建好的,了解它便可,熟悉以前的这些老员工们使用什么样的架构去作的。
4.分析被测业务模块
整个软件有哪些模块,好比说首页面、注册页面、登陆页面、会员页面、商品详情页面、优惠券页面等等
明白有多少个模块须要测试,每一个模块之间的连带关系,进而怎样进行人员分工
5.分析测试所需资源
我须要几台计算机,须要几部手机,手机须要什么样的系统,什么样的型号。
好比测一个网站的性能的时候,电脑的配置达不到测试并发5000人的标准,要么升级电脑的硬件配置,要么多机联合,多机联合时须要几台电脑,都须要提早筹划。
6.分析测试完成目标
个人性能目标是什么样的?个人功能目标是什么样的?我要上线达到的上线标准是什么样的?
性能目标,好比我要达到并发5000人的时候,CPU占用率不能高于70%,内存占用率不能高于60%,响应时间不能超过5秒
功能目标,好比总体的业务流程都跑通,全部的分支流程都没有问题,全部的接口都可以互相调用,总体的UI界面没有问题,兼容性没有问题等
把这些问题都弄清楚,测试的思路会很是的清晰
2、缺陷洞察能力
1.通常缺陷的发现能力
至少你要知足通常缺陷的发现能力,这个是最基本的,若是要连最简单的通常的缺陷都发现不了的话,别说优秀测试工程师了,你说你是测试我都不信
2.隐性问题的发现能力
在软件的测试过程中有一些缺陷藏的比较深,有的是性能方面的问题,有的是功能方面的问题,它须要有一些设定特定的条件的状况下才会出现这样的问题。
好比说买双鞋必须选择的是什么品牌,必须选择是红颜色,必须选择44号,并且必须选择用特定的支付方式才会出现这样的bug的时候,那么这种就属于特别隐性的bug,对于这样的问题的发现能力必定要比别人更强,要找到一些别人可能发现不了的bug
3.发现连带问题的能力
当发现了一个缺陷以后,可以想到经过这个缺陷可能会引起其余哪一个地方出现问题,这就叫作连带的问题。而不是说发现这一个bug以后提了这一个就算完了,必定要有一个察觉,可能其余地方也存在这样的问题。
4.发现问题隐患的能力
有些软件里边可能有一些操做模块,或者是代码写的接口,表面上没有什么问题,可是它是有隐患的,好比说这个接口写的不稳定,当他传的数据有一些问题的时候,可能它最后返回的结果就是报错就是报404或者报乱码。
5.尽早发现问题的能力
若是你只能停留在界面级别的话,那你根本就没有办法达到尽早发现问题的这个能力
你必需要等到前端人员把每一个界面都作好了以后才能进入测试,而我能比你早一个月进入测试了,而后我比你结束测试时间快一个月,而你又比我晚一个月,那么咱俩的薪资一下就拉开了
6.发现问题根源的能力
须要知道这个缺陷它究竟是由什么缘由产生的,是属于什么类型的缺陷,是ui前端人员作的问题,仍是后台接口人员作的问题?
不只要找到这个bug,还要知道这个bug产生的缘由,这样的测试人员是很是棒的,并且非常受人尊敬,提bug的方式也就不同了
3、团队协做能力
1.合理进行人员分工
合理的进行人员分工是提升效率的重要保证
2.协助组员解决问题
好比说测试在赶进度,或者这个软件项目的质量把控是一个团队来把控的,协助组员解决问题就显得尤其关键
3.配合完成测试任务
一个团队里边的人员分工,他们的任务都是不同的,这就是我们说的配合。你的东西作完了,要轮到我了,个人性能测完了以后该轮到你了,因此整个的一个流程下来以后,你们应该是各司其职,配合得很是紧密的一个过程
4.配合开发重现缺陷
我给你提bug,你改个人bug,我们的目的只有一个,就是让这个软件变得更好,因此在这样的状况下,我们就必定要配合开发
5.督促项目总体进度
既然是一个团队协做的过程,就必定要互相的去督促对方,包括督促开发去改bug,由于开发人员他们有时候工做很忙,他们不知道要先改哪些问题,要后改哪些问题,可是每每有一些缺陷,它影响了测试的这个时间,影响了测试的进度,那么这个时候就须要测试员去督促开发人员,让他尽快的去解决你棘手的问题。这个东西可以提升我们的测试效率
6.出现问题敢于承担
愿意背锅的最后都成为了领导,不肯意背锅的最后依然是员工
4、专业技术能力
1.掌握测试基础知识
基础知识就是根基,根基打好了,你才可以更有效地日后期发展,也就是为了之后的学习作一个铺垫。若是根基都没打好,功能测试不会,就想直接学性能,那性能是作很差的
2.娴熟运用测试工具
熟悉工具和熟练使用工具彻底是两个概念,熟悉工具基本上等同于不会,遇到过不少简历上写会使用什么什么工具,都没有实际能力。好比loadrunner只会一个简单的录制,加强一下脚本,以为会用了,那知识会用了1/5,其余4/5 都不会。
3.了解工具操做原理
它是怎么样给服务器发送请求的,是用什么样的方式去发送请的,是用什么样的方式去监控的,它的操做原理是什么样的,我们要把这件事情搞清楚,这样的话能有助于更好的去使用这些东西。包括一些请求的协议,每一个协议表明什么意思,它是用来干什么的。
4.自主完成测试任务
必定要可以本身完成一个独立的内容,独立的工做,这件事情领导你交给我好了,放心我能给你搞定,要的是这样的人
5.找出问题出现缘由
找出缺陷的时候,不只要看它的表面,还要看它的本质
6.提供问题解决方案
发现问题不是能力,发现问题并提出解决方案才是真的能力
7.提供完整测试报告
测试报告可以说明你表达的清不清楚?领导能不能看懂?还有就是能不可以把你整个测试的过程给它梳理得很是详细,人家可以经过你的报告,可以了解到整个的项目的状况,而不是只了解一个片面的状况
8.了解相关技术领域
举一反三
5、逻辑思考能力
1.判断逻辑的正确性
面试官也常常会给测试人去出一些逻辑题,逻辑题可以分析出来你这我的思惟有没有?活跃不活跃?还有他的维度,包括他想的问题的全面性,都可以判断得出来。
好比说去买同样商品,它的里边逻辑就会常常会出现不少问题,好比说它的会员的级别,什么样的级别去买什么样的商品,它的价格不同,什么状况下会给优惠券,什么样的状况下不给优惠券?达到多少钱的状况下才可以使用优惠券?若是说这里边的逻辑出现了问题的话,那么整个的业务不用再测了
2.对可行性逻辑分析
要去测一个网站的逻辑的时候,必定要先思考这一个业务流程可能会涉及到哪些逻辑,这些逻辑哪些是可行的,有些是正向逻辑,有些是逆向逻辑,都要考虑全面,而不是说只是把正向的逻辑测试全面了,逆向逻辑不考虑。其实每每更容易出错的地方就是逆向逻辑
3.思惟导图梳理思路
思惟导图工具可以起到什么做用,可以让你更有效的进行测试,可以让你的思路更清晰
4.站在客观角度思考
去测试的时候,不要仅仅只是站在测试人员的角度上去对整个网站进行测试,还更多的要站在用户的角度,要替用户考虑
6、问题解决能力
1.技术上的问题
把本身的我的能力提高起来,多跟别人虚心请教,多去本身想办法解决问题
2.工做中的问题
在任何的企业里边去工做,确定会遇到一些工做当中的一些不愉快的事情,而不是什么事情都会让你很顺心。因此要去处理工做上的一些不顺心的事情,不要把它带到你的工做上,或者是你的生活上,尽量的去跟别人沟通,去解决这个工做上遇到的麻烦
3.同事间的问题
在工做当中可能会涉及到跟开发人员的沟通,跟产品人员的沟通,跟ui人员的沟通,跟这三方的人员去沟通的时候,就要用不一样的沟通方式
4.领导层的问题
若是你以为你的领导很差,或者说你以为对你的领导一些建议,不要的去跟同事之间去说他坏话或者怎么样的,领导须要的是解决问题的人,而不是制造问题的人
7、沟通表达能力
1.和技术人员的沟通
跟开发人员阐述缺陷时要简洁明了、清晰易懂。当发现严重缺陷时,也不要大惊小怪,要站在开发人员的角度思考如何解决问题。而不是踩在开发头上,炫耀本身发现问题的能力。
2.和产品人员的沟通
当对产品提出意见时,要站在用户的角度去说明本身的想法,而不要主观认为很差而要求产品进行修改。
3.和上级领导的沟通
跟领导沟通时要有大局观,不能只考虑本身部门的状况。而且与领导沟通时,尽可能直奔主题,不要拐弯抹角,当与领导意见不一致时,也不要直接反驳,应该先给予承认,再阐述本身的想法。
4.在集体会议中沟通
在集体会议中不要一味的突出本身的我的能力,不要当话痨,也不要默默无闻。适当的提出一些本身的看法,有助于让你们更加剧视你的存在。切记不要在多人会议中,去指责别人和推卸问题。各个部门的同事,都要面子~
5.与下级员工的沟通
与下级沟通时不要摆高姿态,不要让下级产生畏惧感,应该更多的为下级解决问题。服务好部门的同事,才能更好的产生凝聚力。
8、宏观把控能力
1.有效控制测试时间
测试周期的时间控制,应当采起多种方法去衡量,例如人员能力,人员数量,项目复杂程度,同类项目的测试经验等多方面去衡量。
2.有效控制测试成本
测试成本指的是人员成本跟时间成本,不要浪费每一个人的时间跟劳动力,要让每一个人充分发挥最大的价值。
3.有效制定测试计划
测试计划对于一个项目是核心关键,它的存在为了让测试进行中有依据可查。因此测试计划,必定要切合实际状况,要通过思考和衡量最后得出计划安排。
4.有效控制组员情绪
组员的情绪能够直接影响测试进度跟测试的质量,当有组员出现思想问题时,应当及时沟通,采起一些必要的措施去解决问题。而不能装看不见。
5.有效进行风险评估
任何项目在进行期间都存在许多潜在的风险,例如,人员离职,生病请假,业务变动,需求变动,服务器或其余组件故障等。应当提早作出相应的解决方案,以避免到时候手忙脚乱。
6.有效控制测试方向
测试的方向是指测试的目标和测试的范围,不少项目的测试是有针对性的,例如性能测试,因此在测试中,必定要随时清楚测试的目标和目的是什么,以避免把时间浪费在可有可无的业务上。