软件测试工程师需要具备哪些技能?
发布网友
发布时间:2022-04-22 22:38
我来回答
共11个回答
热心网友
时间:2022-04-10 19:09
首先要学习比较流行的开发语言,如:python,这是为了自动化测试的学习打下基础,不过软件测试工程师只要能用python进行简单的开发就可以,不需要像软件开发工程师一样把python学的特别好。
其次学习LoadRunner、JMeter、Selenium、Appium、Postman、Fiddler这些测试工具。第三学习目前主流的数据库系统MySQL,熟悉数据库的基本结构和原理,熟练掌握数据库的常用操作技术。最后软件测试中有五大测试方法,分别为:功能测试、web自动化测试、移动自动化测试、接口测试、性能测试,这五种测试方法软件测试工程师都需要掌握。
不仅如此,行业技能也是软件测试工程师所必须掌握的一点。
行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。
很多时候,软件运行起来没有异常,但是功能不一定正确。只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。行业知识与工作经验有一定关系,通过时间即可以完成积累。
热心网友
时间:2022-04-10 20:27
软件测试的工作就是不断完善一个软件产品的过程,在交到用户的手中的时候,这个产品必须是经过不断重复测试并且没有漏洞的,同时也是用户体验不断完善的过程。那么作为一名企业软件测试从业人员,需要具备哪些素质呢?
在这里将软件测试人员的能力分为几个方面来具体阐述,软件测试人员需要具备以下素质能力:
通用能力:
1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言)。
2.基本软件测试知识(各种测试理论,测试方*,测试用例编写,缺陷界定标准,软件质量评估)。
3.简单项目管理知识。
4.语言表达能力、沟通能力,良好的表达能力是解决问题的开始。
对产品、系统的认知能力:
1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最基本的。
2.熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力)。
自身职业素养:
1.工作态度如何,是评价一个测试人员最主要的方面,一个高水平的测试人员(指纯技术能力)如果没有一个好的工作态度,在测试团队中有时候不但不能对测试工作起到推动作用,有时候还起到阻碍作用。
2.测试工作是一个烦琐的工作,如果你不是认真、细心,不怕麻烦的人,建议你最好不要进入这个行业,否则,最后难受的肯定是你自己。
3.随着测试工作日益专业化,原来的低水平测试人员越来越不能满足测试的需要,测试工具的使用,测试理论的更新,新技术的应用都要求测试人员要不断提高自己的水平。
团队合作意识:软件测试工作始终是一个团队完成的,你在公司中身处软件测试团队,同时,工作时又和开发团队,质量团队的合作密不可分,所以与团队成员的互相合作非常重要。
以上三点就是一个合格的软件测试人员所必须具备的能力,软件测试一个不断重复不断革新的行业,需要我们具备不断学习的能力,未来会拥有哪些方法,我们无法预知,我们需要的是做好自己,让自己随时处于一个准备状态,保证新来的知识我们能够快速学习吸收。
热心网友
时间:2022-04-10 22:02
付费内容限时免费查看回答你好很高兴为你解答问题 软件测试工程师需要具备的技能包含一下四个方面: 1、专业技能:包括测试专业技能、软件编辑技能、网络、操作系统、数据库、中间件等知识。 2、软件技能:包括对软件工程规则的理解、对计算机编程的了解、对操作系统知识的掌握。 3、交流技能:比如将产品测试的技术书写成文件。 4、组织技能:比如在理解技术和产品的基础上,开发出组织方式,对一些问题进行调整,让测试效果和效率更大化。
热心网友
时间:2022-04-10 23:53
1.分析能力。软件测试的核心其实应该就是设计测试用例了,而设计测试用例,就是依赖于分析能力了。这里我们不说那些常用的设计方法,从一个稍高的层面上来讲,就是怎么将一个复杂的系统进行抽象,分析拆成几个不同的维度,结合维度可能出现的情况进行有选择的组合,以小成本获取大收益。无法将一个复杂系统拆解成简单的维度,是没法做好用例设计的。
2.编程语言。语言其实就像说话一样,只不过我们常说的英语日语之类是与人沟通,计算机语言就是与计算机进行沟通的。对于测试工程师来说,精通一门语言,熟悉其它几门语言是有必要的。对于不同语言编写的被测程序,是有不同特点的,如果对实现的语言不了解,无法进行白盒测试,没法看代码diff(结合代码diff做测试)来提高效率。对于特点不了解,可能也会导致自己漏掉部分内容。
3.设计能力。不要认为设计能力就是开发工程师的事情,拥有好的设计能力,就可以在设计评审的时候多提意见,促进开发工程师使用好的设计,不仅对开发有好处,对测试也是很有好处的。这样才能防患于未然,不仅自己的劳动力,也节省团队的劳动力。
4.对业务的理解。对业务的理解越充分,就越能够理解终端用户的需求,促进产品设计使用好的方式,促进产品成功。难道你想做一大堆不成功的项目么,那样是多么没有成就感的一件事啊。
5.自动化相关的考虑。随着项目越来越多,系统的测试项目也会积累的越来越多,每次有新功能了,难道要用手工来回归一下原有的case么。自动化测试是提高回归测试效率的唯一解决方案,以高效率促进高质量,才是一个良性循环的发展方式啊。
热心网友
时间:2022-04-11 02:01
要成为软件测试工程师,我们应该掌握哪些技能。
1.描述问题的能力
程序是人写的难免会出Bug,但是也是因为是某个程序员写的,他对于内在的逻辑、可能发生问题的地方会有一个大致的判断。测试工程师的工作就是,告诉他发生问题数据的ID、发生问题的场景、当时的测试数据是怎样的等等。而不是,把一个截图甩给程序员,说:“这地方出错了啊。”
2.基础代码能力
如何增强对逻辑思维的锻炼?写代码啊,又学一门手艺又得到了大脑的锻炼,岂不是美滋滋?
貌似很多测试工程师都喜欢去学Python这门语言,确实这是一门对于代码入门者非常友好的语言,但是测试小哥都有一个困惑:学了Python能干嘛?我的建议是从写爬虫开始,学习爬虫的编写可以接触到网络请求的基本知识、可以学习到正则表达式,需要爬取大量数据时,还可以顺便学习一下数据库的使用。当然了,对于爬虫来说,学习一下非关系型数据库就可以了。这一方面是为自己学习自动化测试铺路,e79fa5e9819331333366306564一方面也可以为以后转岗提供换一个后路:不做测试了我干脆去写代码好了。
3.乐观的心态
测试工程师每天面对的是程序中的“错误”,而程序员每天都在创造代码。起码我作为一个垃圾代码的创造者,是很讨厌去排错的。因此就我而言,测试时你很难保证心态的平和,因为你不知道什么时候会出一个莫名奇妙的错误。
假设这么一个场景,你测试出了一个bug,但是程序员自测之后发现无法复现,你的第一反应不应该是脱口而出:“不可能!”而应该是比对两个人的测试用例,发现可能存在的问题。
热心网友
时间:2022-04-11 04:26
软件测试是一个入门简单、但深入难的工作
入门的时候只要会看懂中文、理解能力没问题就可以按照测试用例来执行用例了
进一步之后需要会的知识会越来越多
1、操作系统的知识(什么软件都是运行在操作系统之上的、一般的操作必须要会)
2、数据库知识(现在还能找到多少不需要数据库的大型软件捏?)
3、计算机网络(通信呀通信、千万不要TCP和UDP都分不清楚)
4、计算机硬件(你要是C/S架构的测试或者是做性能测试、那么计算机硬件都是必修课了、总得知道IO是什么IOPS又是啥)
5、各种测试工具的使用、什么QC/TD/BUGfree/QTP/LR之类的
不需要样样精通但是必须要熟练使用
6、软件测试基础知识(这年头没有知识是万万不能的、软件测试基础知识其实买几本书好好看看就能学个差不多了)
7、开发语言(做到高级软件测试的人都是会写点小工具的)
8、测试环境配置:这个要说下、我在做配置管理的时候发现很多测试人员居然连自己的测试环境都配置不好、一个连自己的测试环境都不会配置的人会成为一个合格的测试么。(你要测试web的apache、tomcat、iis之类的得会配置吧)
PS:希望7a64e4b893e5b19e31333330336333你不要被我写的这么多东西吓到了、这些知识是在软件测试的进化过程中慢慢积累起来的、不是所有人都一开始就会了、你是计算机专业毕业的。那么计算机硬件、网络、操作系统、数据库什么的都应该在学校的时候有学到的、所以应该不是问题
最后:祝你好运
热心网友
时间:2022-04-11 07:07
【软件测试工程师需要的技能】如下:
1、根据产品需求及开发文档,独立分析所负责模块的业务需求,输出设计测试方案、测试计划;根据产品需求及开发文档结合测试方案编写测试案例。
2、能够准备测试数据,执行测试用例,提交/跟踪bug,提交主导,测试报告,跟踪上线进行验证。
3、根据通用测试方法及测试经验,把控测试方案的正确性、全面性等,完成测试用例评审,保障测试用例覆盖指导。
4、根据测试流程要求,把控研发过程中的流程规范性,包括但不局限于提测质量、bug规范、用例规范、bug过程质量分析,保证项目质量;
能够通过过程的的质量分析,解决问题,提升过程的规范性和最终更好保障质量。
5、根据项目过程,及时识别项目风险,进行风险预警,推动风险问题解决,保证项目上线时间及质量;
6、根据项目痛点,思考改进工作方法,优化测试流程,引入自动化测试技术以及测试工具,提高测试效率;具备自动化测试框架设计能力、新型技术的落地能力。
想了解更多有关软件测试工程师的详情,推荐选择【达内教育】。该机构致力于面向IT互联网行业,培养软件开发工程师、测试工程师、会计等职场人才,目前已在北上海广深等70个大中城市成立了342家学习中心;拥有行业内完善的教研团队,强大的师资力量,200余位总监级讲师,1000余名教研人员,确保学员利益,全方位保障学员学习;更是与多家企业签订人才培养协议,全面助力学院更好就业。
→感兴趣的话点击此处,免费学习一下
热心网友
时间:2022-04-11 10:05
如果想成为一个比较好的软件测试工程师的话,以下这些条件是需要具备的:
1.你要有较好的编写代码的水平,最好是自己亲自独立完成过某软件的开发工作
2.需要对数据库有较为清楚的认识,以及会编写数据库脚本
3.了解至少2种以上的操作系统,并且对问题有较强的分析判断能力
接下来,如果你想成为更优秀的测试工程师,就需要具备如下素质:
(这部分是我转的,因为我也同意这个说法)
1、有相当的白盒测试经验,这就需要能针对核心模块,核心算法进行代码走查和代码跟踪,从代码内部发现问题。要想做到这一点,不仅要了解所使用的编码语言本身,还要会使用它提供的IDE工具进行代码的跟踪和调试,这些功夫可不是看看书就能掌握的呦;
2、熟练使用流行的测试工具,虽然无论是wr还是lr本身在测试工作中并不会每天都涉及到,但是对工具的熟练掌握确实我们职位和薪水得以晋升的一个重要的砝码,所以介于这一点,建议考一些工具方面的认证可能会比较实用一些。
总之,我觉得软件测试工程师的要求比较高,如果你从未有过编程经验,可能几乎没有公司会录用你,实话,莫怪
大三啊,那是可以自学成功的啦,我是电气专业的,都不懂编程的,毕业工作以后自学的,半年已经可以基本满足要求了。
只要你能坚持下来,别半途而废,就好。我是觉得做测试要比做程序员好很多的,呵呵,那你加油咯~希望能有点启示。更多相关内容请到365testing进行交流和学习。
热心网友
时间:2022-04-11 13:20
01 软件测试理论
作为一个软件测试人员,总不能不知道软件测试本身的东西吧。
你总要知道软件测试是什么?什么是测试用例?什么是缺陷?软件测试有些什么特点?这些仅仅是理论,还不关心会不会做。
再比如软件测试的定义,软件测试是测试程序?还是测试文档?还是测试软件等?
02 软件测试流程
如果要清楚软件测试流程,那就一定要知道软件工程、软件生命周期、研发模型、测试模型。
模型又有经典的瀑布模型、目前最流行的敏捷开发流程、V模型、W模型、X模型、H模型等,这些模型至少要随便知道三四种吧
除了这些,还需要知道在测试流程每个阶段都要相应地做些什么事吧。
03 测试文档
软件测试是技能型工作,不是研究型工作,了解了软件测试理论之后,你总会要做点东西吧,比如写写文档。
软件测试人员必备技能之一就是写文档,会总结。
软件测试有很多文档要写,比如测试计划、测试方案、测试用例、提交bug单、测试报告,有时每个迭代完全后,老大还会要求你输出几份经验文档出来,可见会写文档的测试人员是多么的必要。
04 计算机基础
软件测试工程师怎么说也算是IT人员,计算机基础总要会吧。
不然让你关个服务,你迷茫……
让你配置个环境变量,你再迷茫……
让你安装软件,卸载个软件,你搞半天,安装的软件全在C盘,卸载软件完全没卸干净,重装不成功,然后你再再迷茫……
让你在DOS命令窗口查个IP,然后再配个静态IP,你再再再迷茫
………………
计算机基础是软件测试人员必备的技能之一。
05 软件、工具
作为一个IT人员,你好意思说自己不会几个软件么?
那我们就一起盘点盘点,软件测试人员必须要会的软件:
office办公软件就不说了,软件测试要写这么多文档,office办公软件一定要会。
需求分析时,拆会测试点时,总要画一下思维导图,所以XMIND或其它思维导图软件总要会一个吧。
配置管理工具,不管是以前的SVN还是现在流行的git总要会一个。
远程连接工具,数据库和服务器基本都是配置机房,所以数据库和服务器的远程连接工具都要会,你总不能跑到机房去操作吧,如果你跑到机房去操作,那一定记得带台显示器去。
碰到不会的,总要查一下度娘和谷叔吧,你不会说这个人人都会,千万别这样!要不然怎么会有相同的问题,别人就能快速找到解决方法,而你搜索出来的网页总是找不到呢?
06 数据库
不管是MySQL,还是Oracle,还是SQLServere,还是DB2等等,数据库的特性、性能和优化可能不用知道,但是SQL语言总要会吧,谁让它们都认识SQL语言呢。
SQL语言又会为DDL、DML、DQL、DCL。
数据定义语言(DDL):
用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。
数据操作语言(DML):
用于操作数据库对象中包含的数据,例如:INSERT UPDATE DELETE语句。
数据查询语言(DQL):
用于查询数据库对象中包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂不同的数据库查询,并将数据返回到客户机中显示,例如:SELECT语句。
数据控制语言(DCL):
用于管理数据库的语言,包含管理权限及数据更改,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。
就算软件测试人员不需要关心数据库结构,可以不用DDL、DCL,但是针对数据(增、删、改、查)的DML、DQL语言一定要会吧。
就算你说INSERT、UPDATE、DELETE语句都很简单,照着格式直接使用就行,那SELECT呢。
SELECT语句不仅有简单查询,还有复杂查询。
复杂查询中包含多表查询、连接查询、子查询,以及包含各种函数进行的查询。
这些语句软件测试人员都要掌握吧。
07 LINUX
Linux做为做为服务器的操作系统,软件测试人员需要经常在LINUX上进行搭建测试环境。
如果你说公司的测试环境都是开发搭的,系统和软件是运维装的,不用了解Linux系统。
那你就大错特错了。
如果测试过程中,运行报错了,总需要在后台去看看日志吧,分析下是不是BUG,如果是BUG,总还需要定位一下吧。
如果Linux系统很卡时,你总要去查下进程,查下系统资源管理,或者杀死几个进程,重启下服务什么的。
那这些命令软件测试人员总都要会吧。
如果你说这些还都可以依靠开发和运维,那你就当我没说。
08 编程语言
既然是IT人士,如果出去说自己不会一门编程语言,好像很没面子一样的。
目前世面上编程语言有C、C++、C#、世界上最好的语言(PHP)、JAVA、Perl、Python等等上百种,那你总要选一门语言学会使用。
一般情况下都是选公司系统目前所用的语言。
但如果不知道怎么选,那我建议软件测试人员可以选JAVA和Python,JAVA经久不衰定有它过人之处,Python能在这么短的时间内火起来,也一定是有原因的。
如果没有任何编程基础,建议先学Python,Python更加贴近自然语言,学起来更顺手,更快。
09 行业
软件测试有一条原则是:测试活动依赖于测试内容。
那这个测试内容就是公司业务,在成为业务之前,俗称需求。
经常在JD中看到有支付行业经验优先,有金融行业经验优先,有电信行业经验优先,有电商行业经验优化……
为什么会这样呢?
那是因为测试人员一定需要了解业务,熟悉业务。
从事电信行业的测试人员需要掌握各类协议,比如HTTP协议、TCP/IP协议,还有可能需要熟悉交换机和路由器的原理。
从事金融行业的测试人员需要熟悉各种会计知识。
如果是测试嵌入系统的测试人员还需要了解硬件知识。
软件测试人员需要非常熟悉所测软件的业务,比谁都要熟悉。
热心网友
时间:2022-04-11 17:08
1、开发语言知识背景
对被测试对象使用的语言有一定的了解,这样有助于测试工作的开展,同时,与开发人员之间的沟通协作也将更顺畅
计算机语言都具有一定的共通性,只要你深刻了解了一门语言,其他语言也不是难事。所以,即使被测试对象使用的语言与你之前学过的了解的不相符亦无太多关系
2、数据库的熟悉使用
能够自行编写大部分的SQL语句来辅助测试(SELECT,DELETE,UPDATE),对于存储过程可也多了解,在无程序辅助的情况下,它是制作数据的最好帮手
主要在日常测试工作中,提取数据库中的数据验以证测试结果的有效性、制作测试数据、批量修改测试数据等
3、被测试对象业务的熟悉度
所谓知已知彼,百战不殆
对于被测试对象业务流程的了解越多、越深入越有利于测试工作的开展
这样不仅可以使你在平常的测试工作中如鱼得水,同时在测试工作中,你还会发现一些其他不了解深层次需求的人发现不了的隐蔽问题
4、测试理论
软件测试的基本概念,及软件测试存在的理由
不需要死记硬背,但能知道软件测试是做什么,为什么而存在
软件测试的整体流程
能详细说出软件工程中完整的软件测试生命周期,及一些软件测试模型(双V,V模型)
软件工程中软件生命周期
软件工程中软件生命周期的主要过程,以及软件测试在生命周期中的阶段及作用
测试用例设计的几大基本方法
做到对于件测试中经常使用的测试用例设计方法能脱口而口,同时结合实际工作中的例子进行描述、解释
软件测试的几大类型能
根据实际项目,很快地说出某个被测试对象需要测试哪些类型
缺陷管理策略
缺陷的完整生命周期,有可能出现的一些其他环节
一个缺陷需要包含的内容,不可重现缺陷、缺陷不被认可等问题出现时的处理策略
5、白盒测试(仅针对白盒测试)
对代码有足够的驾驭能力
熟悉各种白盒测试用例设计方法,了解各个方法的优劣,根据业务需求熟悉的使用最恰当的方法进行测试用例设计
6、测试工具的使用
缺陷管理工具
Jira、Mantis、Bugfree、QC(TD)
JIra、Mantis、Bugfree都为开源软件
能熟练使用常用的缺陷管理工具,对于各个工具的优劣有自己的想法,同时对于缺陷工作的使用,有一定的文档化总结内容
缺陷工具的基本使用本身简单,对于未使用过的缺陷工具,也要能快速的上手使用
需求管理工具
Rational RequisitePro
Cloudtopo Topo
需求管理工具,一般用于大中型项目的需求管理,可有一定的了解
自动化工具
自动化测试基本流程
能清楚说出自动化测试的基本流程,及自动化工具的基本原理
自动化测试工具
QuickTest Pro(QTP) from HP
QTP为目前市场上很成熟的一款产品,以其强大的功能而占有主要的市场份额,但因价格昂贵,不少公司无法接受
SELENIUM、WATIR 开源自动化测试工具
对于QTP昂贵的价格且不开源,开源的自动化工具可谓备受青睐
想在自动化测试领域发展的同学,对于QTP和SELENIUM都可作一定的了解、学习
自动化测试脚本设计
说自动化测试,其实主要的重点在测试脚本的设计
设计脚本需要有一定的语言功底,如QTP默认使用的是VBS脚本,如果你对VBS熟悉,那么这款工具你可以算掌握了1/3
自动化测试框架了解、设计
测试框架就像大厦的基石,后续的扩展、丰富都要以此为基础,自然作为自动化测试的难点
刚接触自动化测试的同学可多了解
性能测试工具
LoadRunner(LR) from HP
QA Load、WebRunner
性能测试原理及流程
知道性能测试的基本原理及测试的基本过程
性能测试脚本录制、调优
性能测试的重点工作之一录制、调优脚本
需要有一定的语言功底,如LR默认使用的是C语言,有C语言功底的同学学起来自然是有百利而无一害
性能测试场景设计
性能测试的又一个重点场景的设计
场景的设计是否正确、合理,直接关系到最后性能测试结果的有效性
性能测试结果分析、性能分析(重点)
性能测试中的重中之重,也是性能测试的目的
通过性能测试结果数据,分析被测试对象中存在的问题,对被测试对象做出相应的调优后重新测试,直到被测试对象的性能参数达到要求。
7、计算机知识
了解并能使用常见操作系统
Windows系列、Mac系列、Linux系列
TCP/IP协议
知道TCP/IP协议的内容,以及对应层的功能
常用快捷指令的使用
在日常工作中能很快的使用运行中的快捷动作,如notepad,mspaint,ipconfig,regedit等
热心网友
时间:2022-04-11 21:13
源码时代老师给我们讲想要能够找打工作,必须加强对这些技能的锻炼,描述问题的能力、基础代码能力、各种测试工具的使用、乐观的心态。