"软件测试工程师"是具体做什么工作呢?
软件测试工程师(Software Testing Engineer)的主要工作职责是,理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试案例。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
软件测试工程师简单的说是软件开发过程中的质量检测者和保障者,负责软件质量的把关工作。
那么软件测试工程师的工作内容有哪些呢?1、测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。
设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。
为了提高测试用例的设计效率,BTEST培训课程专门开设了高效设计测试用例一门课来讲授各种设计用例的技术与方法。
2、使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。
测试技术主要分为黑盒测试和白盒测试两大类。
其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等。
3、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。
4、测试工作需要贯穿整个软件开发生命周期。
完整的软件测试工作包括单元测试、集成测试、确认测试和系统测试工作。
单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。
集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。
确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
5、为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。
6、测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。
缺陷报告编写最主要的要求是保证缺陷的重现。
要求测试人员具有很好的文字表达能力和语言组织能力。
7、测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测试策略、测试方法、测试工具、测试风险等。
8、测试人员需要分析软件质量。
在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。
给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。
最后给出一个软件是否可以发布或提交用户使用的结论。
软件测试工作是对质量的把关,其中包含技术及管理等方面的工作,工作相对稳定,对年龄没有限制。
而且随着项目经验的不断增长和对行业背景的深入了解,会越有经验越吃香。
软件测试工程师应该学些什么方面的知识?
软件测试工程师应该学习知识:(1)软件开发技术很多人认为,干吗要学习软件开发啊,那还不如直接去学什么JAVA、C++、C#了。
要知道,在以后的软件测试工作中,你就会发现软件开发与软件测试之间是什么样的关系了。
没有软件开发,就没有软件测试,有了软件测试,软件开发出的软件产品才能够达到用户满意的地步,他们之间是相互依赖关系。
有了更多的软件开发知识,就会更好地能理解软件产品,就知道在哪个环节开发人员容易犯错误,知道在哪个逻辑结构、哪个接口或函数,甚至是从内存的管理机制上都可以找出问题。
软件开发所用的程序设计语言有很多种,所以要精通其中一门,其他能看懂代码,会对你的测试工作有更好的帮助,另外也会帮助开发人员进行快速缺陷定位。
而且在软件测试工作中,要编写一些辅助测试的小工具,都需要有软件开发基础。
象测试过程管理工具、测试用例管理工具、缺陷跟踪工具、性能检测工具等等。
不要老是认为软件开发难,什么事都是从不会到会,从不精通到精通,都需要一个过程。
没有人一生下来就什么都会的,都需要自己的不断努力才能成功。
(2)网络技术软件是从字符界面产品发展到图形界面产品,从单机版到网络版(C/S结构和B/S结构),经历了一个漫长的过程。
计算机网络的出现,改变了现实社会中人们的相互沟通方式,把一个小小的地球变成了一个地球村。
所以,目前所有的软件产品都从传统的单机模式向网络模式转变,网络技术就更加关键。
目前网络的发展,使得网络速度进一步提高。
目前,家庭网速达到1M~2Mbps,企业达到4Mbps,据说要到2012年家庭的网络速度要达到20Mbps。
那么网络硬件从传统的电缆到目前的光纤技术、无线通信技术。
从目前的发展速度,三网(电信网、电视网、计算机网络)合并是迟早的事情。
网络硬件协议的测试,也是网络设备生产商要做的工作。
(3)数据库技术现在的数据信息是海量的。
在目前的软件产品中,底层架构中就需要有数据库进行数据存储,那么对数据的增删改查的操作是软件测试人员必须要必备的技能。
数据库测试也是测试技术的一种。
(4)测试与质量保证技术精通软件测试理论,熟悉软件测试流程,理解软件测试的哲学思想,掌握软件测试每个阶段的文档编写技巧,掌握软件测试的策略与各种测试方法,掌握测试用例的设计方法。
掌握单元测试、集成测试、确认测试、系统测试、验收测试等每个阶段的测试技术。
软件质量保证知识、测试项目管理、测试团队建设知识也是必须要具备的。
掌握软件测试自动化工具,理解软件测试自动化测试框架,能够学会如何进行测试项目管理、回归测试以及性能测试,能够把性能缺陷进行定位。
软件测试还是一个崭新的学科,还没有形成一个独有的知识体系,还需要我们不断的研究与实践。
(5)行业知识目前软件测试涉及的行业是多种多样的,从金融产品到电信、游戏、汽车、杀毒、网站、企业管理、学校教育、本地化产品等等,各行各业的软件产品都需要大量的测试,所以相关行业知识的储备也是必须的。
(6)职场规范职场礼仪是必须的,你是否适合某个企业,能否融入这个企业,基本的职场规范是要学习的。
必要、有效的沟通也是软件测试人员所必须掌握的技巧。
软件测试工程师转行适合做什么?
工作职责测试人员1.编写测试计划、规划详细的测试方案、编写测试用例。
2. 根据测试计划搭建和维护测试环境;3. 执行测试工作,提交测试报告。
包括编写用于测试的自动测试脚本,完整地记录测试结果,编写完整的测试报告等相关的技术文档;4.对测试中发现的问题进行详细分析和准确定位,与开发人员讨论缺陷解决方案。
5.提出对产品的进一步改进的建议,并评估改进方案是否合理;对测试结果进行总结与统计分析,对测试进行跟踪,并提出反馈意见。
6.为业务部门提供相应技术支持,确保软件质量指标。
测试组长1. 对软件质量负责2. 根据需求制定软件质量指标3. 强调一定吻合欧美方要求的质量标准[1]4. 制定测试计划5. 领导制定测试用例和测试环境6. 对测试进行评估7. 培训测试工程师从业资格在企业中一般称为软件开发测试工程师(Software Development Engineer in Test,SDET)。
一般为具有1-2年经验的测试工程师或程序员 测试工程师职责。
有良好经验的测试工程师可以成长为产品/项目组的测试组长(SDETLead)或软件质量经理(SQA Manager),负责软件质量保证,进行测试管理和领导测试团队。
职业前景在外界环境大好的情况下,软件测试却面临着自身的严峻考验——人才紧缺。
在国外,一般软件测试人员与软件开发人员的岗位设置比例是1:1,像微软在开发windows2000时测试开发人员比例高到1.7:1,由此可见软件测试岗位重要性的一般。
据前程无忧调查显示,国内120多万软件从业者中,真正能担当测试职位的不足5万,人才缺口已超20万,并随需求逐年增长。
软件测试人才需求量的加大,除了受产业先行的波及外,主要是受教育滞后的影响。
由于及时捕捉到市场的需求,部分IT职业培训机构率先驶入测试培养的蓝海,紧跟发展趋势,开设了一系列科学完善的课程体系,为软件企业培养了众多专业软件测试工程师,成为人才培养的主力军。
企业可通过内部培训、引进人才等方式来培育人才,但受人力成本的限制,这些方式没有大规模普及。
另外,国内部分高等院校也开始着手准备,召开软件测试教学研讨会,筹划专业开设的相关事宜。
[4] 展开
软件测试工程师是做什么的?
执行测试用例后。
这个测试的工程师也分高级中级初级,初级就是听别人指挥做最基本的。
软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,设计和维护测试系统,正好做的软件测试这块,主要是做黑盒测试。
说白了就是研发软件开发部把软件什么做好了,让你来测试功能强力么,中级可以有自己的一些想法和权利,甚至根据需要编写不同的测试工具,高级的是指挥他人做,掌控大局。
你在百度百科里把相关的词条一年就全明白了,对测试方案可能出现的问题进行分析和评估,需要跟踪故障,以确保开发的产品适合需求我最近在公司实习...
软件工程师是干什么的
软件工程师一般指从事软件开发职业的人。
软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格。
软件工程师的技术要求是比较全面的,除了最基础的编程语言(C语言/C++/JAVA等)、数据库技术(SQL/ORACLE/DB2等)等,还有诸多如JAVA SCRIPT、AJAX、HIBERNATE、SPRING等前沿技术。
此外,关于网络工程和软件测试的其他技术也要有所涉猎。
【软件测试需要具备什么】作为一名软件测试工程师,需要具备哪些能...
通用技能上: 1.基本计算机知识(操作系统,数据库,通讯协议原理,熟悉至少一门编程语言) 2.基本软件测试知识(各种测试理论,测试方法论,测试用例编写,缺陷界定标准,软件质量评估) 3.简单项目管理知识 产品、系统认知: 1.熟悉所测产品功能,能够将产品文档内描述的UC转化成TC,这个最最基本 2.熟悉所测产品的一些隐藏需求或者功能(业务上的进阶能力) 性格上: 1.一个可以相对坚持原则(比如3级BUG以上一定要改),又能拉下脸和不愉快的研发工程师保持较好关系的测试工程师,会对项目质量起到很关键作用。
2.有异想天开属性的为佳 这个只可意会,不好言传的。
在我教过的达内软件测试学员里,的确有那种经常会用令人匪夷所思的方式找出BUG,这是天赋。
3.会“偷懒”的为佳 能够利用已知资源对枯燥乏味的测试工作进行优化的同学。
软件测试工程师是什么?
软件测试,在专业上区分,也是有所区分的,分黑盒和白盒测试两种,白盒测试一般在一些大的软件工程项目里面使用得到,要求的技术层次相对较高,基本上是半个以上研发人员的技术水平要求。
(具体两者区分可以自行百度)这里具体说说软件测试中,两种测试工种的工作内容。
白盒测试,往往要直接接触程序的源代码,所以白盒测试人员任职的一个很重要的条件就是读懂对应开发语言,最好是半个以上的开发人员。
黑盒测试,则没有要能读懂程序源代码要求(当然有软件开发这方面知识的更佳),黑盒测试人员的要求往往更侧重测试人员对软件测试理论和对应行业了解。
现在很多的测试人员对于白盒测试这个工作近乎有一种膜拜的心态,个人觉得没有必要。
做你喜欢做的,做你最擅长做的,坚持你所做的,我想最后被人膜拜的人就是你。
两者在工作的内容上存在相同之处也存在不同之处。
相同之处在于:都要进行测试用例设计,也都要执行测试用例,报告缺陷。
不同之处在于:白盒测试人员是在能看到程序内部实现、及程序需求的情况下进行的测试用例设计,而黑盒测试人员只能通过程序的需求文档进行测试用例设计;往往黑盒测试用例的量相对白盒测试而言要多一些。
望采纳
做一名软件测试工程师究竟是怎样一种体验
1、技术副总裁。
不管软件测试是一个独立的部门,还是归属于研发序列,软件测试工程师能汇报到的最大的领导就是技术副总裁了。
技术副总裁也是技术领域工资最高的人了,虽然基本上不会写代码了,但是也不影响技术副总裁的技术地位。
技术副总裁的一生是传奇的一生,总结起来技术副总裁基本上就干了两件事情:(1)在当上技术副总裁之前,想尽一切办法当上技术副总裁。
(2)当上技术副总裁之后,施展各种技能稳住自己的位置。
有真才实干的技术副总裁,洋洋洒洒指点江山领着兄弟们打下一片江山。
徒有虚名者,就虚避实从不落地也能混个三五载。
如果,你想去一个公司做软件测试工程师,请在最后的面试中留心将来可能成为最高统帅的技术副总裁。
如果不合适就别去了。
2、产品经理。
测试工程师应该会和很多产品经理配合。
一个负责任有担当的产品经理会让测试工程师的工作轻松很多。
产品经理会自称产品狗,其实是一种明着谦虚,暗着要统治一切的感觉。
如果和产品经理发生争执的时候,他们会用:“产品经理不讲对错,只讲利弊”,这种偷梁换柱的方式把你带入他们的领域或者节奏,最后把你拿下。
当然,这种产品经理在国内已经算是优秀的产品经理了。
3、开发工程师。
开发工程师懂技术,核心生产力。
站在世界技术领域内,国内开发工程师应该是相对而言差距最小的岗位。
个人非常崇拜coding能力非常强的人,当然开发工程师也没有什么好黑的。
所以,想从事软件测试工程师的同学们,尤其是男生,尽量做开发吧。
中国的软件从10多年前才真正的开始发展。
在除了软件测试的各种岗位上都发展的非常的迅猛。
老牌的开发工程师和产品经理依旧抢手,并且越来越表现的不可或缺。
和测试工程师同期发展的运维工程师(SA)和设计师也有了长足的进步。
唯独软件测试工程师再近10年的发展历程中停滞不前。
被所有的岗位超越。
再来说说SA,SA应该是比软件测试工程师更晚被引进的。
SA和软件测试工程师一样,很多成果都需要依赖开发工程师的成果。
但是为什么SA能比软件测试工程师发展的好很多呢?这就引出了软件测试工程师尴尬的两点:一、真的不重要。
SA掌握着一个互联网公司的线上服务的健康程度。
规模越大,SA责任越大。
测试工程师呢?一直自己说自己很重要,但是真的没有体现出有多重要。
二、SA的工作更聚焦,更容易深入。
SA只保证线上服务的健康,健康也能有几个有限的技术指标来描述清楚,所以,功能内容非常的明确。
但是测试工程师呢?恨不得什么都管,把所有的内容都纳入了所谓的质量体系,但是真的什么都没有管好。
测试工程师的尴尬远远不止以上两点。
每次定季度任务或者年度任务的时候都会非常尴尬。
自己都说不清楚,上个季度干了什么,下个季度想干什么。
要是在摊上数据考核,直接死得心都有了。
怎么说呢?以bug考核,是绝对不正确的。
bug数量多或者少都不能说明测试工程师的工作是更好了,还是更差了。
作为一个软件测试工程师应具备哪些技能
计算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。
尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。
计算机专业技能主要包含三个方面:⒈ 测试专业技能测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。
测试专业技能涉及的范围很广:既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
⒉ 软件编程技能软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。
因此,测试人员要想得到较好的职业发展,必须能够编写程序。
只有能够编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。
因此测试人员要具备一定的算法设计能力。
依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
⒊ 网络、操作系统、数据库、中间件等知识与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。
由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。
例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。
而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。
因此不但要掌握基本的安装、配置,还要掌握SQL。
测试人员至少应该掌握Mysql、MSSqlserver、Oracle等常见数据库的使用。
转载请注明出处51数据库 » 软件测试工程师做什么