① 应聘软件测试工程师应具备哪些条件
1.掌握test基础知识。去itesting找资料。
2.熟练掌握至少一种测试工具(性能或自动化)。
3.学通一种以上数据库知识。
4.把C学好,以后写脚本会用到。
其次要学会如何编写测试计划,报告。排程。为以后测试管理打基础。
② 软件测试工程师需要具备哪些能力
通用技能上:
1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言)
2.基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估)
3.简单项目管理知识
产品、系统认知:
1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最最基本
2.熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力)
打个比方,支付公司上一种新的支付渠道,熟悉业务的测试人员应当可以预见到这次升级可能会对前段界面、系统账务、各类报表等各个模块造成影响,从而一并纳入测试范畴。
要知道,很多时候,即便是接入这些渠道的产品经理,也不一定会在Prd或者UC中对这些可见影响项一一列出,这需要经验和责任心。
性格上:
1.有牛皮糖属性的为佳,越“不要脸”越好
测试工程师,在很多公司,和研发是有业务上对立属性的(虽然从宏观角度上来说,都是为了提高软件质量服务)。测试工程师提交的BUG越多,意味着研发工程师工作质量越差,需要返工的工作量也越大,甚至会影响绩效,所以测试工程师有时候很容易得罪研发部门。
一个可以相对坚持原则(比如3级BUG以上一定要改),又能拉下脸和不愉快的研发工程师保持较好关系的测试工程师,会对项目质量起到很关键作用。说到底,又能做事(发现BUG并督促修改),又会做人(该进的不让,该退的绝对给面子,最大化消除部门间矛盾)的测试工程师,是十分难得的。
2.有异想天开属性的为佳
这个只可意会,不好言传的。在我带过的团队里,的确有那种奇葩……经常会用令人匪夷所思的方式找出BUG,这是天赋。
3.会“偷懒”的为佳
这里的偷懒不是指上班发微博聊天混日子,而是能够利用已知资源对枯燥乏味的测试工作进行优化的同学。
③ 软件测试工程师应该具备哪些技能
软件测试工程师应该具备的技能:
1、数据库技能
a、测试工作涉及到大量的测试数据,可以利用数据库生成。
b、检查被测试程序对数据的处理是否正确
2、编程语言、编程思想
a、理解编程语言对于功能的实现原理,有助于更高质量的完成测试
b、在测试过程中发现问题后,可以根据语言的特点猜测问题出现的原因,及解决的办法。
c、可以编写测试小工具,提高测试的效率。
3、常用算法
对想于接触白盒测试或性能测试的测试人员,这个显得很重要。
3、网络知识(对于C/S项目重要)
a、对于基本的网络知识,有一定的了解,如:网络的Http协议……
b、对于网络方面的问题,利用网络相关的工具,对被测对象出现的问题进行分析。
4、建模语言
a、对测试模块进行建模(流程图、活动图),有助于了解程序的内部处理流程。
④ 软件测试工程师需要具备哪些技能
按其级别和职位的不同,可分为三类:
高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;
中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务。
初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
(4)软件测试工程师要求扩展阅读:
软件测试工程师的工作职责:
1 、使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。测试技术主要分为黑盒测试和白盒测试两大类。
其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等;
2 、测试工作需要贯穿整个软件开发生命周期。完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。
单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。
确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
⑤ 作为一名软件测试工程师,需要必备哪些能力
一、业务分析能力
1.分析整体业务流程
不了解整个公司的业务,根本就没办法进行测试
2.分析被测业务数据
了解整个业务里面所需的数据有哪些?哪些是需要用户提供的?哪些是自己提供的?有哪些可以是假数据?有哪些必须是真数据?添加数据的时候可以用哪个库?
明白了整个软件的数据库架构,才能知道哪一个数据是从哪一个表里头带出来的,它的逻辑是什么,有没有连带关系。
3.分析被测系统架构
用什么语言开发的?用的是什么服务器?测试它的话需要用什么样的环境进行测试?整体的测试环境是什么样的?
如果缺少了,需要进行环境搭建,架构搭建。一般去一家新公司之后,架构是搭建好的,了解它即可,熟悉之前的这些老员工们使用什么样的架构去做的。
4.分析被测业务模块
整个软件有哪些模块,比如说首页面、注册页面、登录页面、会员页面、商品详情页面、优惠券页面等等
明白有多少个模块需要测试,每个模块之间的连带关系,进而怎样进行人员分工
5.分析测试所需资源
我需要几台计算机,需要几部手机,手机需要什么样的系统,什么样的型号。
比如测一个网站的性能的时候,电脑的配置达不到测试并发5000人的标准,要么升级电脑的硬件配置,要么多机联合,多机联合时需要几台电脑,都需要提前筹划。
6.分析测试完成目标
我的性能目标是什么样的?我的功能目标是什么样的?我要上线达到的上线标准是什么样的?
性能目标,比如我要达到并发5000人的时候,CPU占用率不能高于70%,内存占用率不能高于60%,响应时间不能超过5秒
功能目标,比如整体的业务流程都跑通,所有的分支流程都没有问题,所有的接口都能够互相调用,整体的UI界面没有问题,兼容性没有问题等
把这些问题都弄清楚,测试的思路会非常的清晰
二、缺陷洞察能力
1.一般缺陷的发现能力
至少你要满足一般缺陷的发现能力,这个是最基本的,如果要连最简单的一般的缺陷都发现不了的话,别说优秀测试工程师了,你说你是测试我都不信
2.隐性问题的发现能力
在软件的测试过程当中有一些缺陷藏的比较深,有的是性能方面的问题,有的是功能方面的问题,它需要有一些设定特定的条件的情况下才会出现这样的问题。
比如说买双鞋必须选择的是什么品牌,必须选择是红颜色,必须选择44号,而且必须选择用特定的支付方式才会出现这样的bug的时候,那么这种就属于特别隐性的bug,对于这样的问题的发现能力一定要比别人更强,要找到一些别人可能发现不了的bug
3.发现连带问题的能力
当发现了一个缺陷之后,能够想到通过这个缺陷可能会引发其他哪个地方出现问题,这就叫做连带的问题。而不是说发现这一个bug之后提了这一个就算完了,一定要有一个察觉,可能其他地方也存在这样的问题。
4.发现问题隐患的能力
有些软件里边可能有一些操作模块,或者是代码写的接口,表面上没有什么问题,但是它是有隐患的,比如说这个接口写的不稳定,当他传的数据有一些问题的时候,可能它最后返回的结果就是报错就是报404或者报乱码。
5.尽早发现问题的能力
如果你只能停留在界面级别的话,那你根本就没有办法达到尽早发现问题的这个能力
你必须要等到前端人员把每个界面都做好了之后才能进入测试,而我能比你早一个月进入测试了,然后我比你结束测试时间快一个月,而你又比我晚一个月,那么咱俩的薪资一下就拉开了
6.发现问题根源的能力
需要知道这个缺陷它到底是由什么原因产生的,是属于什么类型的缺陷,是ui前端人员做的问题,还是后台接口人员做的问题?
不仅要找到这个bug,还要知道这个bug产生的原因,这样的测试人员是非常棒的,而且很是受人尊敬,提bug的方式也就不一样了
三、团队协作能力
1.合理进行人员分工
合理的进行人员分工是提高效率的重要保证
2.协助组员解决问题
比如说测试在赶进度,或者这个软件项目的质量把控是一个团队来把控的,协助组员解决问题就显得尤为关键
3.配合完成测试任务
一个团队里边的人员分工,他们的任务都是不一样的,这就是咱们说的配合。你的东西做完了,要轮到我了,我的性能测完了之后该轮到你了,所以整个的一个流程下来之后,大家应该是各司其职,配合得非常紧密的一个过程
4.配合开发重现缺陷
我给你提bug,你改我的bug,咱们的目的只有一个,就是让这个软件变得更好,所以在这样的情况下,咱们就一定要配合开发
5.督促项目整体进度
既然是一个团队协作的过程,就一定要互相的去督促对方,包括督促开发去改bug,因为开发人员他们有时候工作很忙,他们不知道要先改哪些问题,要后改哪些问题,但是往往有一些缺陷,它影响了测试的这个时间,影响了测试的进度,那么这个时候就需要测试员去督促开发人员,让他尽快的去解决你棘手的问题。这个东西能够提高咱们的测试效率
6.出现问题勇于承担
愿意背锅的最后都成为了领导,不愿意背锅的最后依然是员工
四、专业技术能力
1.掌握测试基础知识
基础知识就是根基,根基打好了,你才能够更有效地往后期发展,也就是为了以后的学习做一个铺垫。如果根基都没打好,功能测试不会,就想直接学性能,那性能是做不好的
2.娴熟运用测试工具
熟悉工具和熟练使用工具完全是两个概念,熟悉工具基本上等同于不会,遇到过很多简历上写会使用什么什么工具,都没有实际能力。比如loadrunner只会一个简单的录制,增强一下脚本,觉得会用了,那知识会用了1/5,其他4/5 都不会。
3.了解工具操作原理
它是怎么样给服务器发送请求的,是用什么样的方式去发送请的,是用什么样的方式去监控的,它的操作原理是什么样的,咱们要把这件事情搞清楚,这样的话能有助于更好的去使用这些东西。包括一些请求的协议,每个协议代表什么意思,它是用来干什么的。
4.自主完成测试任务
一定要能够自己完成一个独立的内容,独立的工作,这件事情领导你交给我好了,放心我能给你搞定,要的是这样的人
5.找出问题出现原因
找出缺陷的时候,不仅要看它的表面,还要看它的本质
6.提供问题解决方案
发现问题不是能力,发现问题并提出解决方案才是真的能力
7.提供完整测试报告
测试报告能够说明你表达的清不清楚?领导能不能看懂?还有就是能不能够把你整个测试的过程给它梳理得非常详细,人家能够通过你的报告,能够了解到整个的项目的情况,而不是只了解一个片面的情况
8.了解相关技术领域
触类旁通
五、逻辑思考能力
1.判断逻辑的正确性
面试官也经常会给测试人去出一些逻辑题,逻辑题能够分析出来你这个人思维有没有?活跃不活跃?还有他的维度,包括他想的问题的全面性,都能够判断得出来。
比如说去买一样商品,它的里边逻辑就会经常会出现很多问题,比如说它的会员的级别,什么样的级别去买什么样的商品,它的价格不一样,什么情况下会给优惠券,什么样的情况下不给优惠券?达到多少钱的情况下才能够使用优惠券?如果说这里边的逻辑出现了问题的话,那么整个的业务不用再测了
2.对可行性逻辑分析
要去测一个网站的逻辑的时候,一定要先思考这一个业务流程可能会涉及到哪些逻辑,这些逻辑哪些是可行的,有些是正向逻辑,有些是逆向逻辑,都要考虑全面,而不是说只是把正向的逻辑测试全面了,逆向逻辑不考虑。其实往往更容易出错的地方就是逆向逻辑
3.思维导图梳理思路
思维导图工具能够起到什么作用,能够让你更有效的进行测试,能够让你的思路更清晰
4.站在客观角度思考
去测试的时候,不要仅仅只是站在测试人员的角度上去对整个网站进行测试,还更多的要站在用户的角度,要替用户考虑
六、问题解决能力
1.技术上的问题
把自己的个人能力提升起来,多跟别人虚心请教,多去自己想办法解决问题
2.工作中的问题
在任何的企业里边去工作,肯定会遇到一些工作当中的一些不愉快的事情,而不是什么事情都会让你很顺心。所以要去处理工作上的一些不顺心的事情,不要把它带到你的工作上,或者是你的生活上,尽可能的去跟别人沟通,去解决这个工作上遇到的麻烦
3.同事间的问题
在工作当中可能会涉及到跟开发人员的沟通,跟产品人员的沟通,跟ui人员的沟通,跟这三方的人员去沟通的时候,就要用不同的沟通方式
4.领导层的问题
如果你觉得你的领导不好,或者说你觉得对你的领导一些建议,不要的去跟同事之间去说他坏话或者怎么样的,领导需要的是解决问题的人,而不是制造问题的人
七、沟通表达能力
1.和技术人员的沟通
跟开发人员阐述缺陷时要简洁明了、清晰易懂。当发现严重缺陷时,也不要大惊小怪,要站在开发人员的角度思考如何解决问题。而不是踩在开发头上,炫耀自己发现问题的能力。
2.和产品人员的沟通
当对产品提出意见时,要站在用户的角度去说明自己的想法,而不要主观认为不好而要求产品进行修改。
3.和上级领导的沟通
跟领导沟通时要有大局观,不能只考虑自己部门的情况。并且与领导沟通时,尽量直奔主题,不要拐弯抹角,当与领导意见不一致时,也不要直接反驳,应该先给予认可,再阐述自己的想法。
4.在集体会议中沟通
在集体会议中不要一味的突出自己的个人能力,不要当话痨,也不要默默无闻。适当的提出一些自己的见解,有助于让大家更加重视你的存在。切记不要在多人会议中,去指责别人和推卸问题。各个部门的同事,都要面子~
5.与下级员工的沟通
与下级沟通时不要摆高姿态,不要让下级产生畏惧感,应该更多的为下级解决问题。服务好部门的同事,才能更好的产生凝聚力。
八、宏观把控能力
1.有效控制测试时间
测试周期的时间控制,应当采取多种方法去衡量,例如人员能力,人员数量,项目复杂程度,同类项目的测试经验等多方面去衡量。
2.有效控制测试成本
测试成本指的是人员成本跟时间成本,不要浪费每个人的时间跟劳动力,要让每个人充分发挥最大的价值。
3.有效制定测试计划
测试计划对于一个项目是核心关键,它的存在为了让测试进行中有依据可查。所以测试计划,一定要切合实际情况,要经过思考和衡量最后得出计划安排。
4.有效控制组员情绪
组员的情绪可以直接影响测试进度跟测试的质量,当有组员出现思想问题时,应当及时沟通,采取一些必要的措施去解决问题。而不能装看不见。
5.有效进行风险评估
任何项目在进行期间都存在许多潜在的风险,例如,人员离职,生病请假,业务变更,需求变更,服务器或其他组件故障等。应当提前做出相应的解决方案,以免到时候手忙脚乱。
6.有效控制测试方向
测试的方向是指测试的目标和测试的范围,很多项目的测试是有针对性的,例如性能测试,所以在测试中,一定要随时清楚测试的目标和目的是什么,以免把时间浪费在无关紧要的业务上。
<img src="https://pic3.mg.com/50/v2-_hd.jpg" data-size="normal" data-rawwidth="3307" data-rawheight="4388" class="origin_image zh-lightbox-thumb" width="3307" data-original="https://pic3.mg.com/v2-_r.jpg">
⑥ 软件测试工程师需要具备哪些技能
首先要学习比较流行的开发语言,如:python,这是为了自动化测试的学习打下基础,不过软件测试工程师只要能用python进行简单的开发就可以,不需要像软件开发工程师一样把python学的特别好。
其次学习LoadRunner、JMeter、Selenium、Appium、Postman、Fiddler这些测试工具。第三学习目前主流的数据库系统MySQL,熟悉数据库的基本结构和原理,熟练掌握数据库的常用操作技术。最后软件测试中有五大测试方法,分别为:功能测试、web自动化测试、移动自动化测试、接口测试、性能测试,这五种测试方法软件测试工程师都需要掌握。
不仅如此,行业技能也是软件测试工程师所必须掌握的一点。
行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。
很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。行业知识与工作经验有一定关系,通过时间即可以完成积累。
⑦ 软件测试对工程师有什么要求
一、细心
软件测试工程师并不需要写太多的代码,但是作为软件质量的把关者,在进行软件测试工作时要十分的细心,因为稍有一点粗心就有可能漏掉一些重大的bug,造成软件质量不过关。严重的甚至会为团队甚至公司造成重大损失。
二、耐心
软件测试并不像软件开发需要大量的创造性,更多的是重复性的工作,所以耐心也是作为软件测试工程师非常重要的品质。不仅要耐得住一遍一遍反复的用不同方法进行测试,还要耐得住软件每一轮更新的有可能重复的测试工作。
三、良好的沟通能力
软件测试人员在提交bug给开发人员的时候,肯定免不了与开发人员进行一些技术上和问题上的沟通,这个时候就需要良好的沟通能力了。如何能让开发人员更好的去修改bug,很考验测试人员的沟通技巧。除此之外,在工作中跟产品经理等其他同事也经常需要沟通交流,所以良好的沟通能力也是测试工程师的要求之一。
四、责任心
虽然责任心在任何工作中都是必不可少的,但是在软件测试工作中尤为重要。不能只满足于用常规的测试方法测试,没有问题就万事大吉。还要用一些非常规的方法去发现问题,要对测试工作,包括测试的软件,以及整个团队负责。
以上这些问题其实都不是专业背景方面的要求,因为软件测试工程师的门槛很低,并不需要你有多么好的思维和IT背景。这些所需的品质都可以在学习和日常生活中慢慢培养,比如多与不同的人沟通交流,做事注重细节,不断培养耐心和责任心等等。
⑧ 中高级软件测试工程师需要考什么
中高级软件测试工程师需要考的内容
考试内容:
一、软件测试的基本概念
1.软件质量的概念。
2.软件测试的目标和原则。
3.软件测试的心理学。
4.软件测试的经济学。
5.软件质量保证。
二、软件测试的类型及其在软件开发过程中的地位
1.软件开发阶段。
2.规划阶段的测试。
3.设计阶段的测试。
4.编码阶段的测试。
5.验收和维护阶段的测试。
三、代码检查、走查与评审
1.桌面检查。2.代码走查。
3.代码检查。4.同行评审。
四、覆盖率(白盒)测试
1.覆盖率测试。
2.逻辑结构的覆盖率测试。
3.路径覆盖率测试。
4.数据流测试。
5.程序变异测试。
6.基于覆盖的测试用例选择。
五、功能(黑盒)测试
1.边界值测试。
2.等价类测试。
3.基于因果图的测试。
4.基于决策表的测试。
5.基于状态图的测试。
6.基于场景的测试。
7.比较测试。
六、单元测试和集成测试
1.单元测试的目标和模型。
2.单元测试策略。
3.单元测试分析。
4.单元测试的测试用例设计原则。
5.集成测试基本概念。
6.集成测试策略。
7.集成测试分析。
8.集成测试用例设计原则。
七、系统测试
1.系统测试概念。
2.系统测试方法。
3.系统测试的实施。
八、软件性能测试和可靠性测试
1.软件性能的概念。
2.性能测试的执行。
3.软件可靠性的概念。
4.可靠性预计。
5.可靠性分析方法。
6.软件可靠性测试的执行。
九、面向对象软件的测试
1.面向对象软件测试的问题。
2.面向对象软件测试模型。
3.面向对象软件的测试策略。
4.面向对象软件的单元测试。
5.面向对象软件的集成测试。
6.面向对象软件的系统测试。
十、Web应用测试
1.应用服务器的分类和特征。
2.Web应用系统的特点。
3.Web应用系统的测试策略。
4.Web应用系统测试技术。
5.Web应用系统安全测试。
十一、其他测试
1.兼容性测试。
2.易用性测试。
3.GUI测试。
4.构件测试。
5.极限测试。
6.文档测试。
十二、软件测试过程和管理
1.软件测试过程概念。
2.测试组织管理。
3.测试计划的制定。
4.测试步骤的确定。
5.测试环境管理。
6.软件测试风险分析和成本管理。
7.测试文档管理。
8.测试的复用与维护。
十三、软件测试自动化
1.测试自动化的原理、方法。
2.测试用例自动生成。
3.测试执行自动化。
4.测试结果比较自动化。
5.测试工具的分类和选择。
6.测试工具的主流产品介绍。
十四、软件测试的标准和文档
1.软件测试的标准。
2.软件测试的文档。
十五、软件测试实践
1.软件测试过程管理。
(1)软件测试过程管理概念。
(2)测试的设计。
(3)测试的准备。
(4)测试的执行。
(5)软件问题报告和软件问题生命周期。
(6)测试的总结。
(7)QESuite软件测试过程管理平台。
2.白盒测试实践。
(1)被测程序说明。
(2)静态分析。
(3)被测程序的插装和动态测试。
(4)QESAT/C++白盒测试工具
⑨ 作为一名软件测试工程师,需要具备哪些能力
通用技能上:
1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言)
2.基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估)
3.简单项目管理知识
产品、系统认知:
1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最最基本
2.熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力)
打个比方,支付公司上一种新的支付渠道,熟悉业务的测试人员应当可以预见到这次升级可能会对前段界面、系统账务、各类报表等各个模块造成影响,从而一并纳入测试范畴。
要知道,很多时候,即便是接入这些渠道的产品经理,也不一定会在Prd或者UC中对这些可见影响项一一列出,这需要经验和责任心。
性格上:
1.有牛皮糖属性的为佳,越“不要脸”越好
测试工程师,在很多公司,和研发是有业务上对立属性的(虽然从宏观角度上来说,都是为了提高软件质量服务)。测试工程师提交的BUG越多,意味着研发工程师工作质量越差,需要返工的工作量也越大,甚至会影响绩效,所以测试工程师有时候很容易得罪研发部门。
一个可以相对坚持原则(比如3级BUG以上一定要改),又能拉下脸和不愉快的研发工程师保持较好关系的测试工程师,会对项目质量起到很关键作用。说到底,又能做事(发现BUG并督促修改),又会做人(该进的不让,该退的绝对给面子,最大化消除部门间矛盾)的测试工程师,是十分难得的。
2.有异想天开属性的为佳
这个只可意会,不好言传的。在我带过的团队里,的确有那种奇葩……经常会用令人匪夷所思的方式找出BUG,这是天赋。
3.会“偷懒”的为佳
这里的偷懒不是指上班发微博聊天混日子,而是能够利用已知资源对枯燥乏味的测试工作进行优化的同学。