作为一名软件测试工程师,需要具备哪些能力

作为一名软件测试工程师,需要具备哪些能力,第1张

软件测试岗相对于IT行业其他岗位确实入门比较简单,基本上达到功能测试就可以找到工作。

使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。测试技术主要分为黑盒测试和白盒测试两大类。其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖,判定覆盖、基本路径覆盖等;

测试工作需要贯穿整个软件开发生命周期。完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。

测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。缺陷报告编写最主要的要求是保证缺陷的重现。要求测试人员具有很好的文字表达能力和语言组织能力。

测试人员需要分析软件质量。在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。最后给出一个软件是否可以发布或提交用户使用的结论。

测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测试策略、测试方法、测试工具、测试风险等。

测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。

为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。

测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等

对于技术人员而言,职业发展一般分两个方向:做技术、当管理。

刚进入软件测试行业的新人都会从最基础的技术执行开始做,然后是用例设计,相当于基本的功能测试。

随后,大家会根据个人职业发展来进一步细化,有的选择管理路线,成为了主管,项目负责人,经理;有的深入测试用例设计,继续高级的功能测试;有的发展技术,专研性能测试,安全测试,自动化测试等。

如果你想往技术领域深耕。

一般又可以细化为两类:一类是功能测试,也就是大家相对熟悉的点点点测试、黑盒测试,这类工作不需要太多的编程经验,只要看得懂代码就可以;另一类是自动化测试,包括功能自动化和性能自动化,这一类工作对代码能力要求就比较高了,也就是大家常说的测试开发工程师。

其实不管是往哪个方向发展,都是需要不断的学习,新的技术,新的知识。尤其是在IT行业。

1、首先必须一定要具备的就是认真、负责、严谨、耐心的态度,因为软件测试工程师吃的就是这口饭,所以必须对你所测试的产品负责。宁可错杀一千,也不可放过一个,虽然不能做到完全没有Bug,但一定要尽自己最大的努力保证产品质量。

2、要有过硬的技术本领,技术是为测试服务的,无论是测试理论、测试工具、开发知识、数据库、 *** 作系统、网络知识、你都必须精通一门,知晓其它。当然这个做到比较难,什么都会很难,再者多了之后就不会精,什么都会也等于什么都不会,至于最后你选择深度还是广度,都由你自己把控。

3、光有技术,没有业务,再好的技术也很难使上劲,熟练的业务知识会帮助你发现更多的缺陷,进而更好的保证好产品的质量。不懂产品的工程师不是好工程师。测试工程师需要训练自己的用户思维、用户视角,把自己当作真正的用户去感受产品。同时你还可以收集产品数据来做分析,通过数据再量化产品。甚至你还要去研究竞品的相关情况,知己知彼方能百战不殆。

4、沟通能力超级重要。一个优秀的软件测试人员除了经常要与开发打交道外,还需要与产品、运维、售前、售后、客服等不同的人打交道。所以如何更准确、更简洁、更严谨的描述Bug,如何让开发人员接受你发现的Bug,如何让其他人员理解你的想法等都需要沟通,所以良好的沟通能力显的尤为重要。

5、缜密的逻辑思维能力。测试人员不仅仅只是发现问题,找出Bug。更重要的是要去寻找Bug产生的真正原因,精准的找到问题发生的源头,以便协助开发人员更好更快的彻底解决Bug。这个比较考验你思维的灵敏度和推理能能力。其实测试人员和刑侦有一些点类似,除了要求有缜密的逻辑思维能力,有时候还需要具备逆向反推能力。

6、测试虽然不像开发那样创造产品,但测试需要保证产品各方面的质量,让用户使用产品时觉得舒服、方便,所以大多数测试工程师都需要有一颗追求完美的心。

未来软件测试将从繁复的手工 *** 作中解放出来,在敏捷开发的基础上,一个测试能够做好的真正价将不在是测试执行,而在于测试分析和设计,比如自动化测试工具的使用,uiautomatorviewer、TestBird等,将手工 *** 作逐渐淘汰,提高测试效率,这才是测试行业未来发展的趋势和净化的方向。

作为一个测试人员的角色定位,以及刚入门需要

了解的相关知识和心态方面的问题。说实话,感

觉到很为难,有时候有些事情做起来感觉并不是

很难,但是要把它转化为文字的形式表达出来对

我来说确实比较为难的。但是我还是很愿意去用

一支拙笔来慢慢描述我对测试人员定位的一个理

解:

当一个人在一个漫长而坎坷的道路上走过之

后,我相信他一定会有自己沉淀下来的东西。前段

时间参加华东测试交流会时,听到海松大哥解析测试

人员如何定位自己的角色的时候就感触很深,感觉自己

还有很多值得钻研的地方,在测试领域,自己的很多认识

还是很肤浅的。随着公司规模逐渐扩大,测试人员也由以前的几个人发展到现在的几十人。队伍的壮大是显而易见的。然而很多刚进入门的同仁却开始慢慢对做测试流露出迷茫的眼神,问其原因,很简单,做测试学不到东西,整天就鼠标点点,键盘敲敲,很难学到真正的东西。听了之后不由得露出理解的笑容,想当年我也是从这样的境遇走过来的。刚进入公司的时候就让做测试,经历了同样的鼠标点点,键盘敲敲的经历。然而正是这样的一些成长经历让我在平淡中明白了很多道理,并且慢慢从因为工作而做测试转化为因为兴趣爱好而继续做测试工作。做测试不仅仅是表面看到的这种敲敲点点现象的延续,还有更深层次的内涵,只是我们很多人还没到达这个境界而已,所以看起来很枯燥。(我也没达到这个境界,不过我知道自己做的工作并不是很枯燥的,呵呵)。

刚开始做测试的朋友很多都在做黑盒测试,而黑盒测试往往对代码编写能力要求不是很高,这样给刚入门的人就造成了一个测试人员不需要太多知识的误解。然而,做测试往往需要很广泛的知识。不仅仅只是专业上的,而且要了解很多开发人员不了解的东西,在一个系统里面开发人员可以只了解客户需求,而我们的测试人员需要了解整个全局的东西。呵呵,感觉有点统筹全局的成就感。不过有时候相对于开发人员来说也的确是这样的。开发人员可以不用太多了解用户的需求,而我们却需要能够准确捕获用户的观点,对很多细节需要非常注意。往往很多人在初入测试行业的时候非常热衷于测试工具的学习以及使用,其实这并不是一个很系统的认知。知识的学习也是分阶段的。测试这两个字很表面来看很简单,只是给程序挑错误,找出bug来,但是在整个软件开发过程中我们该如何把测试跟开发结合起来有效地进行都需要经过实践来证明。而这些不是工具所能完成的。

我们对整个测试流程方面的东西需要了解得很多很多,而工具只是需要了解的其中一部分而且是比较小的一部分知识而已。你所了解的不仅仅只是测试的表面,你需要了解测试的流程,你需要了解如何用一个好的测试计划来规划我们的测试时间、测试范围(有些公司把测试范围的设计归纳在测试需求里面,但是很多公司都是在测试计划里面),需要了解如何用一个好的测试用例来覆盖整个测试范围之内的测试实施。了解如何保证所测试出来的bug是开发人员的问题而不是因为自己了解不够导致出现的问题。Bug分析报告之内如何总结问题都是我们需要注意到的知识。对自己的测试时间也需要进行详细规划,尽量多地考虑进去各种可能。这样才可以尽量减少相关的风险。

测试里面的知识学习可以分为以下三个阶段来进行(这个阶段只是自己的一种个人见解):

第一个阶段我们必须要让做测试的人明白测试在整个软件工程里面的重要性,了解测试的相关基础知识,并且在了解这些知识的过程中逐渐挖掘出他对测试的兴趣。兴趣爱好是很好的从事一项工作的一个重要条件。让一个对测试丝毫不懂而且不感兴趣的人去直接去做测试,你不觉得是在耽误别人的青春吗?

第二个阶段我们必须对测试的流程的管理工作通过实际的软件测试有个非常明确的认识。因为很多时候工作都是在团队相互协调的情况下进行的,所以对于整个软件开发流程以及开发流程当中的测试流程都需要很熟悉,这样才可以更好的配合工作。当我们这些都很熟悉并且在工作当中应用很流畅的时候,我们就可以对测试工具进行相对应的学习。诚然,现在很多公司在招聘测试人员的时候总是要求了解自动化测试工具,实际上据了解,很多公司并不能真正用自动化测试。所以不要一进门就想着学习自动化测试工具,很多知识在你了解了其他知识之后学习效果跟用途可能会更好。在了解测试相关流程的同时我们必须扩充我们的其他相关知识,包括对我们的产品的客户的需求的了解要比开发人员了解更全面,更深入。这样才能保证我们的流程,我们的测试按照客观的正确的方向前进,而不至于被开发人员的思想所牵引。呵呵。我喜欢做事主动而不是被动的去执行。

到第三个阶段我们可以跟区分专业一样走自己喜欢的途径:一方面可以继续深入提高自己的测试的专业技能并且能够真正从事自动化测试,成为技术领域里面的专家。另一方面我们可以慢慢趋于测试管理方面。上次在交流会上,海松大哥对测试人员的发展阶段跟发展路径规划曾作出一个很形象的比喻来,我画了一个粗略的流程,大家可以看看下面的发展图:(自下向上的发展趋势)(当然并不是每个人都在这个曲线发展之内)

从这个图形我们大家也可以粗略的看出,对于初级测试工程师,这是两个不同的发展方向,但是最终还是发展为一个终点(PM)。从一个初级测试工程师晋升到一个高级测试工程师比较快,但是从一个初级测试工程师发展到一个Team Leader所需要的时间相对比较长。而从一个高级测试工程师发展到一个资深测试工程师花费时间更长一点,到达资深测试工程师之后就可以很容易做到测试主管了,以后可以发展到PM。当然从初级测试人员到高级、资深测试人员在上面的图中并不是表述为“曲线发展过程”的,很多时候行业经验、行业知识的累积等都很重要。而这点只有深入发展的人才会发现其重要性的。很多随着时间的推移和经验的增长,一些沉淀下来的东西不是表现在字面上,别人就可以理解并领悟的。所以要有信心的同时我们做事还必须有耐心,罗马非一日建成。相信明天就要紧紧把握今天。

我们很多人在测试的时候感觉到不爽的另外一个比较大众化的原因,可能就是对测试不感兴趣的同时知识层次不够。(建议接触测试一年之后还对此不感兴趣的朋友找找自己的原因,实在找不出来就早点看看别的比较好发展的行业吧。)。因为自己知识层次的不够,这样往往感觉自己找出的bug在开发人员那里得不到很好的重视,感觉自己的劳动成果没有得到相应的尊重一样。一个测试人员在跟开发人员打交道的时候往往会产生这么一个现象,随着开发的进行,测试人员提交的bug越来越不被开发人员重视了,这里面除了开发人员比较忙碌的缘故之外,另外一个不容忽视的原因就是我们测试人员自身的知识不够层次,很多时候因为我们不了解需求,不了解相关专业知识而误认为正确的东西是bug。任何一个领域里面的人我想都应该有这样的想法并且比较反对这个想法:那就是外行对内行进行不正确的指点,这相当于对别人劳动成果的一种不负责任的否定。所以我们一定要加强我们自身的专业知识的学习。这个时候大家可能会问,那么一个真正的测试人员应该具备哪些知识呢?我想在除了相关专业知识之外还有一些比较共性的知识需要我们大家了解,专业知识因为行业的不同所以有很多的不同之处,这儿不详细介绍了,我从大众化的方面来阐述下面几个需要我们注意的地方,这也是作为一个测试人员应该具备的基本素质:

1、我们需要具备很好的沟通能力:沟通是人类相互进步的一个重要标志,用在我们这个行业里面沟通也比较适用。我们的沟通往往不仅是跟开发人员的沟通,有时候也会跟我们的客户进行沟通的。这是两种不同类型的人,他们关心问题的侧重点也不同。所以我们沟通时候需要掌握一定的技巧,这样才能从客户那儿得到比较准确的需求。有时候我们的工作会被开发人员认为是“破坏”性的工作,这样就会引起我们跟开发人员的冲突,所以当我们发现一个bug之后如何跟开发人员沟通也是一门艺术。很多时候我们不仅仅是把bug写出来,也要很好地说给开发人员知道。从而达到我们彼此想要的一种结果。

2、我们需要具备很好的自信心:很多时候开发人员会经常认为测试人员的开发相关知识不如自己,所以会有一种轻视的态度,这个时候我们除了补充我们的专业知识之外还需要有很强的自信心。呵呵。如果允许他对我们说这说那,那么我认为我们的工作还没开展就已经处在十分不利的地步了,我们将会被他们牵着鼻子走。这种现象很正常。而我却属于那种很讨厌被别人牵着鼻子走的人。所以我知道我们一定要很专业才能让别人尊重自己的劳动成果并听取自己的见解。当然这种自信心也是建立在心平气和下的沟通,不是完全对立的。

3、我们需要保持一种怀疑的精神:(这点我很擅长,我经常怀疑那些跟我擦肩而过的PLMM对我放电。所以总是。。。。。。,呵呵,结果最近医务室大夫说我患了神经质。亏大了)我们会经常碰到这样一种情况,我们往往发现的bug交给开发人员时他们总是尽他们最大的努力解释每个他们认为不是bug的bug。我们在倾听他们解释的同时必须要怀疑他们的观点直到我们自己确认过之后。

4、我们需要耐心和很好的记忆力:有时候往往一个bug需要我们很耐心的花费时间、精力去投入在上面,而且当我们再找到有些类似的bug的时候,要能从脑子里面找出来这些bug,这就需要我们有很好的记忆力。其实如果不具备这些条件了那么相关的文档就是我们最好的查询资料。我就是属于这种类型的,很多时候总是翻阅以前的文档。但是这样也有一个好处,那就是在不断的查询过程中我们对文档的修改,使文档日臻完善,当然这种完善也是相对的。

5、我们需要一颗安静的心:因为浮躁的人是找不出隐藏在深处的bug的,(所以我们的开发人员总是喜欢让我测试他们的东西,因为我汇报的bug很少,这样他们的绩效就表现得很好啊。所以我总是挨批啊。不过现在学乖了,呵呵。)所以当我们测试的时候我们应该保持内心的平静,这样我们才会保持很好的洞察力来找到那些隐藏很深的bug。而且也会抓到相关的重点的。这点是很重要的。否则你的测试跟流水账做也没什么区别,根据业务流程,根据用户需求,根据开发人员的思路一路跑下去,发现一些皮毛的bug。这不是一个好的测试人员应该做的。我们在平静当中才能保持自己的观点不被别人左右。

6、我们还需要能够承受压力并排遣压力:无须质疑,我们的工作承受着一定的压力,当然这样说有点片面,不过大体上应该是这样的。所以我们经常承受着一定的压力,客户在催促,开发人员在delay,风箱里面的老鼠两头受气。所以我们要能够承受压力,包括外界的、工作上的压力。并且不要把因为压力而导致的不好的情绪带到工作当中。学会排遣这些压力,保持一颗轻松的,平静的心,然后全身心投入到我们的工作。

上面的只是根据实际的一些经验以及曾经看过的一些朋友的见解总结而来的,还有很多其他方面的知识,但是我实在没有时间了,呵呵,很抱歉。以后有时候还可以继续补充。只是想强调一点:测试在中国的发展前景是非常好的,而这点从这几年无论测试人员和测试环境的变化还是客户对产品质量的要求越来越高都可以看出的。

还是上面说的那句老话:相信明天,就要把握今天!

首先要学习比较流行的开发语言,如:python,这是为了自动化测试的学习打下基础,不过软件测试工程师只要能用python进行简单的开发就可以,不需要像软件开发工程师一样把python学的特别好。

其次学习LoadRunner、JMeter、Selenium、Appium、Postman、Fiddler这些测试工具。第三学习目前主流的数据库系统MySQL,熟悉数据库的基本结构和原理,熟练掌握数据库的常用 *** 作技术。最后软件测试中有五大测试方法,分别为:功能测试、web自动化测试、移动自动化测试、接口测试、性能测试,这五种测试方法软件测试工程师都需要掌握。

不仅如此,行业技能也是软件测试工程师所必须掌握的一点。

行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。

很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。行业知识与工作经验有一定关系,通过时间即可以完成积累。

现在的软件测试工程师人才缺口再创新高,软件测试工程师无疑成为薪资高、待遇高的IT黄金职位。软件测试工程师薪资待遇到底怎么样一位过来人以自己的亲身体验告诉你。刚从院校毕业的学员需要渡过一个社会适应期,所以平均起薪水平大概在200左右,年薪在2~3万元。如果院校毕业生参加了类似于达内软件测试培训的职前培训,就可以跳过此阶段,毕业年薪大概在35万~5万元左右。

经过2到3年的工作经验,如果成功晋升到中级软件测试工程师,年薪大概在6万左右,拥有五险一金福利待遇。此阶段已经基本渡过职场的最初级水平,能够编写测试方案、测试文档、与项目组一起制定测试阶段的工作计划。能够在项目中合理利用测试工具来完成测试任务。可以独立编写自动测试脚本程序,并且担任测试变成初期的领导工作,进一步拓展编程语言、 *** 作系统、网络和数据库方面的技能。

中层岗位如果业绩突出,很快就可能被提拔为高级测试工程师,此阶段帮助开发或维护测试编写标准和过程,负责同级的评审,并能够指导初级软件测试工程师。年薪一般在10万至15万元左右。不仅拥有五险一金福利待遇,还会有带薪年假、双休日、节假日补贴、公费旅游两次等软硬福利。中层的管理人员,如果再往上晋升,基本就已经脱离了技术的 *** 作,比如测试主管或者测试经理,能够担当测试领域内的整个生存周期业务,负责项目成本、进度安排、计划和人员分工等工作。年薪可达20万到30万,除了现金收益,还可能有股票分红等等。

随着互联网的不断发展,企业对软件测试人员的重视程度也在不断的提高,要知道,有时候由于软件的不稳定或者前期未测试的话,是非常有可能导致软件的直接崩溃的。所以,今天,北京IT培训就一起来了解一下一个好的软件测试程序员应该如何成长发展。

一、心理适应期

由于软件公司千千万万、每个公司的规章制度都不一样,甚至有一些公司对于软件的质量并不是很了解,使软件测试这个行业总会被忽略。还有一些行业中的人觉得技术不太好才会去做测试人员。因为他们会由于前期的忽略而产生心理不适应,所以在上班的过程中经常会培养自信心,并且进行定时培训使他们以更高的技术来测试应用。

二、熟悉流程阶段

做软件测试工作人员主要的就是对测试软件的熟悉,并且能够将它所涉及到的所有业务都掌控好,这样才能够更好地将软件检测完毕并较好检测出应用中存在的隐患。

三、自我提升阶段

即使对需要 *** 纵的流程再熟悉,也无法算作技术方面的提升,所以测试人员一定要在工作的过程中不断的提升技术方面的能力,这样才能更全方位的找出软件的bug,并且完善编辑出修改方案给予开发者确认或维修、升级。

四、团队沟通阶段

一个人始终无法将事情完成得非常好,所以,在整个测试的过程中工作人员必须要学会如何与上下级进行沟通。只要懂得如何与上司汇报,他才能够将问题直接追究到个人,这样才不会再次出现同等隐患。而与下属进行沟通可以方便工作、使自己的工作量减少,并且能够培养双方之间的默契,对于之后的测试方面工作也是非常好的。

五、自我领悟阶段

通过以上的这几个方面之后,软件测试工作人员即可以进入自我领悟阶段,不断积累工作中的经验才能够迈向一个更好的阶层,为公司也为自己提高测试技术。

以上的这几个阶段就是测试工作人员必须经历过的成长历程,也只有通过这些方面的锻炼才能够获得更大的进步,并且这些方面的领悟不仅仅是在测试工作中能够用到,日常为人处事中也非常有帮助。

软件测试工作有前途。

软件测试就业前景挺好的,目前IT行业对于软件测试方面的人才需求是非常大的,软件产品的质量对于一个软件来说是攸关生死的,各企业越来越重视软件产品质量,而软件测试的工作就是让软件质量越来越好,还有就是软件测试的工资待遇是非常好的,和其它职业相比,月入上万要简单的多,随着时代的发展,软件也越来越普及,所以人才需求量和前景都是不错的。

软件测试是软件开发过程的重要组成部分,是用来确认一个程序的功能或性能是否符合开发之前所提出的一些要求。软件测试就是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。最直观的目的肯定是通过对软件系统或程序的测试,发现其中的错误,也是目前和未来比较热门的一个行业。

以上就是关于软件测试岗位的主要工作内容是做什么全部的内容,包括:软件测试岗位的主要工作内容是做什么、软件测试人员都有什么职业发展方向、作为一名软件测试工程师,需要具备哪些能力等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/8813027.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存