“软件开发测试工程师”到底是什么的?
软件开发测试工程师,软件开发和测试工作两者皆有。
软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程。
软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程。
软件一般是用某种程序设计语言来实现的。
通常采用软件开发工具可以进行开发。
软件分为系统软件和应用软件,并不只是包括可以在计算机上运行的程序,与这些程序相关的文件一般也被认为是软件的一部分。
软件设计思路和方法的一般过程,包括设计软件的功能和实现的算法和方法、软件的总体结构设计和模块设计、编程和调试、程序联调和测试以及编写、提交程序。
软件测试(英语:Software Testing),描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。
换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。
软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。
软件技术 软件测试工程师到底怎么样?工程师还要考吗?
与其他IT职位相比,软件测试工程师最大的优势就是发展方向太多了。
由于工作的特殊性,测试人员不但需要对软件的质量进行检测,而且对于软件项目的立项、管理、售前、售后等领域都要涉及。
在此过程中,测试人员不仅提升了专业的软件测试技能,还能接触到各行各业,从而为自己的多元化发展奠定了基础。
请问软件测试工程师需要掌握哪些技术?
如果想成为一个比较好的软件测试工程师的话,上海瑭锦信息技术总结以下这些条件是需要具备的:1. 你要有较好的编写代码的水平,最好是自己亲自独立完成过某软件的开发工作2.需要对数据库有较为清楚的认识,以及会编写数据库脚本3.了解至少2种以上的操作系统,并且对问题有较强的分析判断能力接下来,2. 如果你想成为更优秀的测试工程师,就需要具备如下素质: 1、有相当的百盒测试经验,这就需要能针对核心模块,核心算法进行代码走查和代码跟踪,从代码内部发现问题。
要想做到这一点,不仅要了解所使用的编码语言本身,还要会使用它提供的IDE工具进行代码的跟踪和调试,这些功夫可不是看看书就能掌握的呦;2、熟练使用流行的测试工具,虽然无论是wr还是lr本身在测试工作中并不会每天都涉及到,但是对工具的熟练掌握确实我们职位和薪水得以晋升的一个重要的砝码.
作为一个软件测试工程师应具备哪些技能
计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。
尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。
计算机专业技能主要包含三个方面:⒈ 测试专业技能测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。
测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
⒉ 软件编程技能软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。
因此,测试人员要想得到较好的职业发展,必须能够编写程序。
只有能够编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。
因此测试人员要具备一定的算法设计能力。
依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
⒊ 网络、操作系统、数据库、中间件等知识与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。
由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。
例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。
而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。
因此不但要掌握基本的安装、配置,还要掌握SQL。
测试人员至少应该掌握Mysql、MSSqlserver、Oracle等常见数据库的使用。
做一名软件测试工程师究竟是怎样一种体验
1、技术副总裁。
不管软件测试是一个独立的部门,还是归属于研发序列,软件测试工程师能汇报到的最大的领导就是技术副总裁了。
技术副总裁也是技术领域工资最高的人了,虽然基本上不会写代码了,但是也不影响技术副总裁的技术地位。
技术副总裁的一生是传奇的一生,总结起来技术副总裁基本上就干了两件事情:(1)在当上技术副总裁之前,想尽一切办法当上技术副总裁。
(2)当上技术副总裁之后,施展各种技能稳住自己的位置。
有真才实干的技术副总裁,洋洋洒洒指点江山领着兄弟们打下一片江山。
徒有虚名者,就虚避实从不落地也能混个三五载。
如果,你想去一个公司做软件测试工程师,请在最后的面试中留心将来可能成为最高统帅的技术副总裁。
如果不合适就别去了。
2、产品经理。
测试工程师应该会和很多产品经理配合。
一个负责任有担当的产品经理会让测试工程师的工作轻松很多。
产品经理会自称产品狗,其实是一种明着谦虚,暗着要统治一切的感觉。
如果和产品经理发生争执的时候,他们会用:“产品经理不讲对错,只讲利弊”,这种偷梁换柱的方式把你带入他们的领域或者节奏,最后把你拿下。
当然,这种产品经理在国内已经算是优秀的产品经理了。
3、开发工程师。
开发工程师懂技术,核心生产力。
站在世界技术领域内,国内开发工程师应该是相对而言差距最小的岗位。
个人非常崇拜coding能力非常强的人,当然开发工程师也没有什么好黑的。
所以,想从事软件测试工程师的同学们,尤其是男生,尽量做开发吧。
中国的软件从10多年前才真正的开始发展。
在除了软件测试的各种岗位上都发展的非常的迅猛。
老牌的开发工程师和产品经理依旧抢手,并且越来越表现的不可或缺。
和测试工程师同期发展的运维工程师(SA)和设计师也有了长足的进步。
唯独软件测试工程师再近10年的发展历程中停滞不前。
被所有的岗位超越。
再来说说SA,SA应该是比软件测试工程师更晚被引进的。
SA和软件测试工程师一样,很多成果都需要依赖开发工程师的成果。
但是为什么SA能比软件测试工程师发展的好很多呢?这就引出了软件测试工程师尴尬的两点:一、真的不重要。
SA掌握着一个互联网公司的线上服务的健康程度。
规模越大,SA责任越大。
测试工程师呢?一直自己说自己很重要,但是真的没有体现出有多重要。
二、SA的工作更聚焦,更容易深入。
SA只保证线上服务的健康,健康也能有几个有限的技术指标来描述清楚,所以,功能内容非常的明确。
但是测试工程师呢?恨不得什么都管,把所有的内容都纳入了所谓的质量体系,但是真的什么都没有管好。
测试工程师的尴尬远远不止以上两点。
每次定季度任务或者年度任务的时候都会非常尴尬。
自己都说不清楚,上个季度干了什么,下个季度想干什么。
要是在摊上数据考核,直接死得心都有了。
怎么说呢?以bug考核,是绝对不正确的。
bug数量多或者少都不能说明测试工程师的工作是更好了,还是更差了。
【软件测试需要具备什么】作为一名软件测试工程师,需要具备哪些能...
通用技能上: 1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言) 2.基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估) 3.简单项目管理知识 产品、系统认知: 1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最最基本 2.熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力) 性格上: 1.一个可以相对坚持原则(比如3级BUG以上一定要改),又能拉下脸和不愉快的研发工程师保持较好关系的测试工程师,会对项目质量起到很关键作用。
2.有异想天开属性的为佳 这个只可意会,不好言传的。
在我教过的达内软件测试学员里,的确有那种经常会用令人匪夷所思的方式找出BUG,这是天赋。
3.会“偷懒”的为佳 能够利用已知资源对枯燥乏味的测试工作进行优化的同学。
测试工程师需要学习什么
1、 基础:前文所说的基础技能必需掌握,推荐Java+Oracle+Uml组合。
掌握程度一般不用太深,测试工具开发职位的除外。
特别注明,Junit是一定要掌握的。
市面上书籍很多,笔者推荐《Java编程思想》、 《Oracle 9i 参考手册》、《UML精粹》。
2、 专业:前文所说的测试方法、测试工具必需掌握。
其中对于测试工具,如果开源则尽可能阅读源码。
推荐书籍《计算机软件测试技术》、《软件测试艺术》、《软件测试》。
3、 实战:前文所说的测试模式必需掌握。
至少全程参与二十次项目,至少参与两次50人以上规模的项目,至少编写测试用例10000个,至少发现缺陷5000个,至少编写测试脚本20000行,至少担任过三次测试负责人,所有产品发布后遗漏缺陷总数小于50个并呈收敛趋势。
推荐书籍《设计模式》、《人月神话》、《软件测试经验与教训》。
4、 沉淀:深入了解质量控制原理,对功能性(含安全)、效率、易用性、可移植性、可维护性、可靠性等质量特性均有实际测试经验。
推荐书籍《质量无泪》、《质量免费》、《ISO9126》等所有软件质量相关国标。
5、 领域:选取一至两门测试技术作为长期研究的方向,中途可适当调整,这里说的长期指的是五年、十年及以上,在这个层次重点是要做到专精。
推荐方向“云测试”、 “基于模型测试”。
6、 专家:理论计算机科学研究。
笔者不是专家,因此不敢臆测到达此层次后应该做些什么以及怎么做,但“P/NP问题”是笔者一直有兴趣并持续关注的,也是很多科研工作者选取的研究课题,在此郑重推荐。
软件测试工程师的前景如何?
前景分析: 软件测试人员的主要职责是对软件产品的整个开发过程进行监督和检验,使之能够达到满足客户的需求,因此对于企业来讲是十分重要的岗位。
在国外,一般软件测试人员与软件开发人员的岗位设置比例是1:1,像微软在开发windows2000时候使用的软件开发人员是1700名,而专业的测试工程师有3200名,测试开发人员比例高到1.7:1,由此可见软件测试岗位重要性的不一般。
软件测试工程师(Software Testing Engineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),测试软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。
按其级别和职位的不同,分为三类。
按其级别和职位的不同,可分为三类: 高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估 ; 中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务; 初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。
可见,软件测试工程师只是软件项目开发中的一个角色而已。
测试工程师承担的任务角色决定工作内容和承担的任务。
测试工程师的角色应该承担什么任务呢?这没有统一的答案。
因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。
而且,测试工程师也有普通和高级之分。
笼统的答案列举如下: 设置软件测试环境,安装必要的软件工具。
运行软件,发现和报告软件缺陷或错误。
尤其需要快速定位软件中的严重的错误。
对软件整体质量提出评估 确认软件达到某种具体标准 以最低的成本,最短的时间,完成高质量的测试任务 ...... 在这其中,最重要的是要明确,程序员的责任和目标。
在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。
提高测试质量的要诀 另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。
对此,有什么可以借鉴的诀窍吗?请尝试以下方法,保证不会使您失望。
首先测试程序的核心功能,然后测试辅助功能。
首先测试功能,然后测试性能。
首先测试常见情况,然后测试异常情况。
首先测试经过变更的部分,然后测试没有变更的部分。
首先测试影响大的问题,然后测试影响小的问题。
首先测试必须测试的部分,然后测试可选或没有要求测试的部分。
服务员 需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。
任何服务都有被服务对象—客户,测试工程师的服务对象有哪些呢? 最重要的客户是软件的用户。
测试工程师需要站在客户的使用和需求角度测试软件,报告问题。
项目经理也是客户。
测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。
程序员是最经常打交道的客户。
为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。
技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。
避免错误 前文已经指出测试工程师应该明确角色,明确任务和责任。
知道哪些是自己分内的事,哪些是不属于自己的事。
一定要尽最大努力完成分内的事,不要做不属于自己的事情,以免弄巧成拙。
为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误: ⒈承诺完成测试的软件没有质量问题 软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。
软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。
个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。
⒉承担软件的发布权利 不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。
也不要认为已经完成了测试计划,自己决定可以发布软件。
因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。
另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。
通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。
⒊扮演过程改进...
"软件测试工程师"是具体做什么工作呢?
软件测试工程师(Software Testing Engineer)的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
软件测试工程师简单的说是软件开发过程中的质量检测者和保障者,负责软件质量的把关工作。
那么软件测试工程师的工作内容有哪些呢?1、测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。
设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。
为了提高测试用例的设计效率,BTEST培训课程专门开设了高效设计测试用例一门课来讲授各种设计用例的技术与方法。
2、使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。
测试技术主要分为黑盒测试和白盒测试两大类。
其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等。
3、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。
4、测试工作需要贯穿整个软件开发生命周期。
完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。
单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。
集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。
确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
5、为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。
6、测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。
缺陷报告编写最主要的要求是保证缺陷的重现。
要求测试人员具有很好的文字表达能力和语言组织能力。
7、测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测试策略、测试方法、测试工具、测试风险等。
8、测试人员需要分析软件质量。
在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。
给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。
最后给出一个软件是否可以发布或提交用户使用的结论。
软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制。
而且随着项目经验的不断增长和对行业背景的深入了解,会越有经验越吃香。