测试工程师资料.docx
- 文档编号:8869811
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:21
- 大小:56.13KB
测试工程师资料.docx
《测试工程师资料.docx》由会员分享,可在线阅读,更多相关《测试工程师资料.docx(21页珍藏版)》请在冰豆网上搜索。
测试工程师资料
软件测试工程师
百科名片
软件测试工程师(SoftwareTestingEngineer)指理解产品的功能要求,并对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性(Robustness),写出相应的测试规范和测试用例的专门工作人员。
简而言之,软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时纠错及时更正,确保产品的正常运作。
按其级别和职位的不同,分为三类。
目录
简述
角色定位
工作职责
职业发展
1.测试分析师
2.自动化测试工程师、测试开发工程师
职业素质
1.计算机专业技能
2.行业知识
3.个人素养
外包软件测试工程师
1.主要业务类型
2.主要测试的范围
3.测试工作主要方式
《软件测试工程师指南》
1、软件工程技能
2、交流技能
3、组织技能
4、实践经验
5、态度
6、必备特性
1.否定性的创造力。
2.探测技巧。
3.总体理解产品。
4.用客户的眼光进行评。
5.要求变化。
6.怀疑的而不是敌意的态度。
7.经受得住坏消息而保持目标的能力。
8.拥抱新技术的热望。
开设课程
简述
角色定位
工作职责
职业发展
1.测试分析师
2.自动化测试工程师、测试开发工程师
职业素质
1.计算机专业技能
2.行业知识
3.个人素养
外包软件测试工程师
1.主要业务类型
2.主要测试的范围
3.测试工作主要方式
《软件测试工程师指南》
1、软件工程技能
∙2、交流技能
∙3、组织技能
∙4、实践经验
∙5、态度
∙6、必备特性
1.否定性的创造力。
2.探测技巧。
3.总体理解产品。
4.用客户的眼光进行评。
5.要求变化。
6.怀疑的而不是敌意的态度。
7.经受得住坏消息而保持目标的能力。
8.拥抱新技术的热望。
∙开设课程
展开
编辑本段
简述
工程师作为软件质量的把关者,其职能在于保证交付到客户手中的软件可靠好用,运行畅通无阻。
从产品定义到产品开发再到产品维护,都离不了软件测试。
按其级别和职位的不同,可分为三类,即:
高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;
中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;
初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷。
编辑本段
角色定位
软件项目开发是个分工明确的系统工程,不同的人员扮演了不同的角色,包括部门经理、产品经理、项目经理、系统分析师、程序员、测试工程师、质量保证人员等。
可见,软件测试工程师只是软件项目开发中的一个角色而已。
测试工程师承担的任务角色决定工作内容和承担的任务。
测试工程师的角色应该承担什么任务呢?
这没有统一的答案。
因为,这与软件公司的规模,软件项目管理制度,公司领导和项目经理的管理风格,以及具体软件项目自身的特点有很大关系。
而且,测试工程师也有普通和高级之分。
笼统的答案列举如下:
设置软件测试环境,安装必要的软件工具。
运行软件,发现和报告软件缺陷或错误。
尤其需要快速定位软件中的严重的错误。
对软件整体质量提出评估
确认软件达到某种具体标准
以最低的成本,最短的时间,完成高质量的测试任务
......
在这其中,最重要的是要明确,程序员的责任和目标。
在执行任何具体测试任务前,都要在项目组内对于责任和目标达成共识,以免带来后续工作的相互推诿。
提高测试质量的要诀
另外一个值得注意的方面就是工作效率和质量,或许高级测试工程师与普通测试工程师的主要区别在于高级测试工程师可以更快地发现更多软件中的严重错误。
对此,有什么可以借鉴的诀窍吗?
请尝试以下方法,保证不会是您失望。
首先测试程序的核心功能,然后测试辅助功能。
首先测试功能,然后测试性能。
首先测试常见情况,然后测试异常情况。
首先测试经过变更的部分,然后测试没有变更的部分。
首先测试影响大的问题,然后测试影响小的问题。
首先测试必须测试的部分,然后测试可选或没有要求测试的部分
测试工程师是项目团队中的服务员
需要强调的一点是,无论你是多么高级的测试工程师,都要明白无论测试需要的工具多么复杂,测试步骤多么冗长,测试工程师在软件项目开发中始终都是扮演服务员的角色,这是由测试工作的特点决定的。
任何服务都有被服务对象—客户,测试工程师的服务对象有哪些呢?
最重要的客户是软件的用户。
测试工程师需要站在客户的使用和需求角度测试软件,报告问题。
项目经理也是客户。
测试工程师需要报告测试工作进度和发现的问题,尤其是严重的问题。
程序员是最经常打交道的客户。
为了便于程序员重复报告的错误,尽量提供良好的软件问题报告,以便程序员可以更快的修复软件错误。
技术文档工程师、市场开发人员和技术支持工程师也都是测试工程师的服务对象。
测试工程师避免犯的几个错误
前文已经指出测试工程师应该明确角色,明确任务和责任。
知道哪些是自己份内的事,哪些是不属于自己的事。
一定要尽最大努力完成份内的事,不要做不属于自己的事情,以免弄巧成拙。
为了更好的扮演软件测试工程师的角色,尽量避免犯下面的错误:
1、承诺完成测试的软件没有质量问题
软件测试只是保证质量的一种方法,软件测试工程师的工作不会直接提高软件质量,因为绝大多数软件错误都需要程序员修复。
软件测试只能证明软件存在错误,不能保证软件没有错误,不可能找出全部软件错误。
个人的能力和对质量的影响范围很小,软件质量的提高要靠软件项目团队全体成员的共同努力。
2、承担软件的发布权利
不要因为软件中存在还没有修复的错误,而试图提出更改软件发布的计划。
也不要认为已经完成了测试计划,自己决定可以发布软件。
因为,改变软件发布计划可能要失去进入市场的良机和很多客户,对此造成的经济和公司市场的损失将不是测试工程师能够承担的。
另外,软件发布后,如果用户发现了新的软件错误,公司领导或项目经理可能将过错加在软件测试人员的头上,因为他们同意发布软件。
通常软件发布的权利由产品经理、项目经理、测试经理、市场经理共同集体讨论决定。
3、扮演过程改进成员的角色
软件测试工程师必须报告错误,有时也要分析错误的类型、特征和产生错误的原因。
但是,不要主动提出改进软件过程的具体改进措施,更不要直接干涉程序员的工作方式,以免出力不讨好,影响今后的愉快合作。
软件过程改进的方法是软件质量控制部门的事情,这是他们的本职工作。
[1]
编辑本段
工作职责
软件测试就是使用人工或自动手段,来运行或测试某个系统的过程。
其目的在于检验它是否满足规定的需求或弄清
软件测试工程师证书
预期结果与实际结果之间的差别。
开发工作的根本是尽量实现软件用户的需求,测试工作的根本是检验软件系统是否满足软件用户的需求。
软件测试工程师简单的说是软件开发过程中的质量检测者和保障者,负责软件质量的把关工作。
软件测试工程师具体工作有:
1、使用各种测试技术和方法来测试和发现软件中存在的软件缺陷。
测试技术主要分为黑盒测试和白盒测试两大类。
其中黑盒测试技术主要有等价类划分法、边界值法、因果图法、状态图法、测试大纲法以及各类典型的软件故障模型等;白盒测试的主要技术有语句覆盖、分支覆盖、判定覆盖、基本路径覆盖等;
2、测试工作需要贯穿整个软件开发生命周期。
完整的软件测试工作包括单
软件测试职业发展的各个阶段
元测试、集成测试、确认测试和系统测试工作。
单元测试工作主要在编码阶段完成,由开发人员和软件测试工程师共同完成,其主要依据是详细测试。
集成测试的主要工作测试软件模块之间的接口是否正确实现,基本依据是软件体系结构设计。
确认测试和系统测试是在软件开发完成后,验证软件的功能与需求的一致性、验证软件在相应的硬件条件下的系统功能是否满足用户需求,其主要依据是用户需求。
3、测试人员将发现的缺陷编写成正式的缺陷报告,提交给开发人员进行缺陷的确认和修复。
缺陷报告编写最主要的要求是保证缺陷的重现。
要求测试人员具有很好的文字表达能力和语言组织能力。
4、测试人员需要分析软件质量。
在测试完成后,测试人员需要根据测试结果来分析软件质量,包括缺陷率、缺陷分布、缺陷修复趋势等。
给出软件各种质量特性包括有功能性、可靠性、易用性、安全性、时间与资源特性等的具体度量。
最后给出一个软件是否可以发布或提交用户使用的结论。
5、测试过程中,为了更好地组织与实施测试工作,测试负责人需要制定测试计划,包括有测试资源、测试进度、测
试策略、测试方法、测试工具、测试风险等。
6、测试人员为了更好更有效地进行测试,保证测试工作质量,需要在执行测试工作之前首先需要设计测试用例,形成测试用例报告。
设计测试用例是保证测试质量的核心工作,很多测试技术都可以用来指导设计用例。
为了提高测试用例的设计效率,BTEST培训课程专门开设了高效设计测试用例一门课来讲授各种设计用例的技术与方法。
7、为了提高工作效率或提高测试水平,测试工作需要引进自动化测试工具,测试人员需要学会使用自动化测试工具,编写测试脚本,进行性能测试等。
8、测试负责人在测试工作中,还需要根据实际情况不断改进测试过程,提高测试水平,进行测试队伍的建设等。
编辑本段
职业发展
测
职业方向
试组长这类测试人员通常是测试项目的负责人,既要具备较高的测试技术能力,还要具备一定的管理能力。
主要职责是制定测试计划、编写测试计划、监控和管理整个测试过程。
测试组长可以向上发展为测试部经理、质量经理,也可以横向发展为项目经理,而且通常待遇相对较高些。
测试分析师
主要职责是对系统的测试结果进行综合的分析,例如缺陷分析、性能分析等。
测试分析师不但测试技术能力较强,还要具备数据库、操作系统等多方面的技术知识。
这类职务的发展空间也不错,可以发展成系统设计师等。
自动化测试工程师、测试开发工程师
主要职责是编写测试程序、执行自动化测试任务。
这类职位的测试人员至少要达到初级程序员的能力,因为经常和程序打交道。
发展空间也不错,例如可以发展为程序员。
编辑本段
职业素质
计算机专业技能
计
算机领域的专业技能是测试工程师应该必备的一项素质,是做好测试工作的前提条件。
尽管没有任何IT背景的人也可以从事测试工作,但是一名要想获得更大发展空间或者持久竞争力的测试工程师,则计算机专业技能是必不可少的。
计算机专业技能主要包含三个方面:
1.测试专业技能
测试专业知识很多,本书内容主要以测试人员应该掌握的基础专业技能为主。
测试专业技能涉及的范围很广:
既包括黑盒测试、白盒测试、测试用例设计等基础测试技术,也包括单元测试、功能测试、集成测试、系统测试、性能测试等测试方法,还包括基础的测试流程管理、缺陷管理、自动化测试技术等知识。
2.软件编程技能
“软件编程技能实际应该是测试人员的必备技能之一,在微软,很多测试人员都拥有多年的开发经验。
因此,测试人员要想得到较好的职业发展,必须能够编写程序。
只有能给编写程序,才可以胜任诸如单元测试、集成测试、性能测试等难度较大的测试工作。
此外,对软件测试人员的编程技能要求也有别于开发人员:
测试人员编写的程序应着眼于运行正确,同时兼顾高效率,尤其体现在与性能测试相关的测试代码编写上。
因此测试人员要具备一定的算法设计能力。
依据资深测试工程师的经验,测试工程师至少应该掌握Java、C#、C++之类的一门语言以及相应的开发工具。
3.网络、操作系统、数据库、中间件等知识
与开发人员相比,测试人员掌握的知识具有“博而不精”的特点,“艺多不压身”是个非常形象的比喻。
由于测试中经常需要配置、调试各种测试环境,而且在性能测试中还要对各种系统平台进行分析与调优,因此测试人员需要掌握更多网络、操作系统、数据库等知识。
在网络方面,测试人员应该掌握基本的网络协议以及网络工作原理,尤其要掌握一些网络环境的配置,这些都是测试工作中经常遇到的知识。
操作系统和中间件方面,应该掌握基本的使用以及安装、配置等。
例如很多应用系统都是基于Unix、linux来运行的,这就要求测试人员掌握基本的操作命令以及相关的工具软件。
而WebLogic、Websphere等中间件的安装、配置很多时候也需要掌握一些。
数据库知识则是更应该掌握技能,现在的应用系统几乎离不开数据库。
因此不但要掌握基本的安装、配置,还要掌握SQL。
测试人员至少应该掌握Mysql、MSSqlserver、Oracle等常见数据库的使用。
行业知识
行业主要指测试人员所在企业涉及的行业领域,例如很多IT企业从事石油、电信、银行、电子政务、电子商务等行业领域的产品开发。
行业知识即业务知识,是测试人员做好测试工作的又一个前提条件,只有深入地了解了产品的业务流程,才可以判断出开发人员实现的产品功能是否正确。
很多时候,软件运行起来没有异常,但是功能不一定正确。
只有掌握了相关的行业知识,才可以判断出用户的业务需求是否得到了实现。
行业知识与工作经验有一定关系,通过时间即可以完成积累。
个人素养
作为一名优秀的测试工程师,首先要对测试工作有兴趣:
测试工作很多时候都是显得有些枯燥的,因此热爱测试工作,才更容易做好测试工作。
因此,除了具有前面的专业技能和行业知识外,测试人员应该具有一些基本的个人素养,即下面的“五心”。
1.专心:
主要指测试人员在执行测试任务的时候要专心,不可一心二用。
经验表明,高度集中精神不但能够提高效率,还能发现更多的软件缺陷,业绩最棒的往往是团队中做事精力最集中的那些成员。
2.细心:
主要指执行测试工作时候要细心,认真执行测试,不可以忽略一些细节。
某些缺陷如果不细心很难发现,例如一些界面的样式、文字等。
3.耐心:
很多测试工作有时候显得非常枯燥,需要很大的耐心才可以做好。
如果比较浮躁,就不会做到“专心”和“细心”,这将让很多软件缺陷从你眼前逃过。
4.责任心:
责任心是做好工作必备的素质之一,测试工程师更应该将其发扬光大。
如果测试中没有尽到责任,甚至敷衍了事,这将会把测试工作交给用户来完成,很可能引起非常严重的后果。
5.自信心:
自信心是现在多数测试工程师都缺少的一项素质,尤其在面对需要编写测试代码等工作的时候,往往认为自己做不到。
要想获得更好的职业发展,测试工程师们应该努力学习,建立能“解决一切测试问题”的信心。
“五心”只是做好测试工作的基本要求,测试人员应该具有的素质还很多。
例如测试人员不但要具有团队合作精神,而且应该学会宽容待人,学会去理解“开发人员”,同时要尊重开发人员的劳动成果——开发出来的产品。
编辑本段
外包软件测试工程师
外包软件测试工程师主要承接外包软件测试工作,外包软件测试就是指软件企业将软件项目中的全部或部分测试工作,交给提供软件外包测试服务的公司,由他们为软件进行专门的测试。
这样做的好处有两个:
一方面软件企业可以更好地专注核心竞争力业务,同时降低软件项目成本;另一方面,由第三方专业的测试公司进行测试,无论在技术上还是管理上,对提高软件测试的有效性都具有重要意义。
外包软件测试行业前景非常看好,发展空间很大。
IDG的数据显示,最近几年,中国的软件外包产业年均增长率为36.5%,正处于快速发展的阶段,2008年预计已达到16.9亿美元的市场规模。
目前韩日、欧美国家的软件企业纷纷关注中国市场,而作为软件外包强国的印度,在其国内处于前几位的软件外包服务商也准备来“分一杯羹”。
从目前市场来看,选择将部分软件测试工作进行外包的公司主要是微软、IBM等国际软件旗舰企业,他们利用第三方专业软件测试公司,在产品发布前对软件进行一系列的集成测试和系统测试,即保证了测试工作的全面性,又节省了人力、物力的开销。
最重要的是,测试结果往往好于这些软件企业最初的预期,效果非常令人满意。
软件企业和提供软件外包测试服务的公司进行合作,只要达成双赢,两方皆大欢喜,这样的合作就会越来越多,项目也会越做越大。
主要业务类型
·本地化软件测试
·国际化软件测试
主要测试的范围
·本地化语言质量测试
·国际化软件的功能和性能测试
测试工作主要方式
·公司内部(Inhouse)执行的测试
·派驻客户开发中心的现场测试(Onsite)。
编辑本段
《软件测试工程师指南》
作者简介:
Timur赵,Nortel高级测试主管,浙大博士;
当你生活于网络时代,只要原地不动就很容易落伍了。
没有经验,不知如何跻身于测试工程师的行列?
以下几个基本方向能使你从新手成为软件测试的行家里手。
软件工业是自动化工业的一部分。
而且是最活跃发展最迅速的一个方面。
到底有多迅速?
任何人的想像力都不够!
正如我们不会把我们的事务托付给不可靠的经纪,任何有分量的公司都不会采用没有质量保障的软件。
软件测试人员,我是说有水平有经验的软件测试人员永远是供不应求的。
软件测试经理不得不花很多的时间去面试有潜力的应聘者。
一些应聘者在软件方面或者软件测试方面毫无实际经验,明知道软件测试工作是一个高回报的和最合适的软件工业入门,就是无法抓住一个又一个机会。
这些人真正需要的是一个指南能告诉他们如何成为一个软件测试工程师。
首先,进入软件测试需要哪些技能?
1、软件工程技能 你必须了解软件软件工程(设计、开发和简单测试),应用,系统,自动测试编程,及操作系统,数据库,网络系统和协议的设计和使用。
2、交流技巧 如果想确定软件缺陷,你应当能够指出什么时候的缺陷算是缺陷。
3、组织技能 如果你在别人都头脑发昏的时候保持清醒,你就可能是一个好的软件测试工程师。
在网络时代软件测试是一项有压力的复杂性工作,但如果你能从这些纷繁中找到一种途径,它就是一项回报丰厚的事业。
4、实践技能 当一个工作需要经验,而你又需要一个工作去丰富你的经验时该怎么办?
这并不完全是一个两难的问题,你可能采用几种方式去获得实际经验。
5、态度 除了技术水平,你需要理解和采取适当的态度去做软件测试。
编辑本段
1、软件工程技能
(SoftwareEngineeringSkills)
软件工程技能可以分成三大块:
理解软件工程的规则,了解计算机编程和操作系统知识。
理解软件工程“规则”。
有一种过时的眼光认为软件工程只是由一些在工作期限之前疯狂编程、靠着非凡的协调能力和超人般的咖啡消耗整夜不睡,不停地设计和测试程序的“专家”们组成的。
这种现象确实存在,但你只有了解了软件开发的真正过程,才会是一个专业人员。
从哪开始呢?
先到图书馆去走一走。
你需要建立软件测试知识的软件工程基础。
我的建议是阅读RogerPressman的软件工程:
APractitioner'sApproach,fifthedition(职业入门,第五版,McGrawHill,2000年版)和GlenfordMyers的TheArtofSoftwareTesting(软件测试艺术,JohnWiley&Sons,1979年版)。
Pressman的书是一个对软件工程原理的全面介绍。
有很多关于软件技巧、项目管理、要求分析和软件设计等软件工程方面的好书,但Pressman对这些方面在一本书里作了介绍。
GlenfordMyers不到二百页,1979年发行,却是软件测试方面的圣经。
Myers定义及诠释的测试方法论已成为软件测试的基本模块。
Myers还考查了软件测试中的经济(缺陷的代价)和心理学方面(测试的目标就是发现失误及不成功之处),以及主导软件开发和测试的基本原则。
对参考书进行基本研究是一个好的开端,但这只是单方对话。
如果你能和上千个直接具有软件工程和测试经验的人以及想进入这一领域的人对话是不是再好不过了呢?
感谢那些网络电子部落,你已经可以做到了。
Comp.software-eng覆盖了设计、编程、项目管理等软件工程的各个方面。
Comp.software.testing涵盖了软件测试的自动化、培训、技巧等方面。
等等,别只停留在这里!
你是不是应当经常访问这些网址呢?
Bug-Net(http:
//65.54.244.250/cgi-bin/linkrd...%2ebugnet%2ecom)是有关软件缺陷的在线杂志。
阅读有关缺陷的文章是学习如何工作及失败的极好方式。
你也应当查阅软件测试及质量工程杂志(http:
//65.54.244.250/cgi-bin/linkrd...ww%2estqe%2ecom)。
STQE是确定网络软件测试资源很好的始发站。
计算机编程。
不能想像有的人喜欢测试产品却从不阅读、检查和理解组成产品的软件一样。
不要误解我的意思。
你不必花所有的时间去读源代码,但任何你做过的有关自己程序的设计、编写和纠错都能大大地有助于测试别人编写的程序。
你怎样学习编程?
通过编程。
可以严肃地说,开始学习写计算机程序是最简单的事。
记住我说的是“开始学习”。
软件编程环境,例如MicrosoftWindowsFoundationClasses(MFC)orSun'sJavaFoundationClasses(JFC,alsocalled"Swing")不断变得越来越复杂,越来越难跟得上。
但我在努力超越自己。
你应当怎样学习编程呢?
首先,买MicrosoftVisualBasic。
不要让名字骗了你。
你能用这套组件建立相当复杂的程序。
而且它只要一百元左右。
下一步呢?
等等,是visual编程警告的时候了!
现在你为你的PC买一个程序语言的时候,你其实是买了一个集成开发系统或称为IDE。
这些IDE通过对编程的简化把开发过程流水线化。
这些IDE其实会帮你写很多编码。
这非常有利于尽早开发出一个产品,却不利于你学习编程。
如果你用Windows产生程序,你别无选择,因为环境介入太多使你无法从头编程。
如果你从Unix系统产生程序,你能自己写所有的编码。
一旦你习惯了与参量、控制结构、对象、输入输出及更重要的VisualBasic纠错打交道的时候,你就可以开始学习C语言了。
学习C能使你熟悉十六进制系统,通过指针分配和参考内存,存取个体位码及建立程序模块。
我总是认为在学Java之前最好先学会C,因为C强迫你自己去完成许多任务而Java会自动处理(例如,释放未用的空间)。
用C工作比Java难,但你能学到编程更多的基本方面。
你其实能用VisualC++IDE从头写C程序,但最好还是在Unix系统中学C。
操作系统知识。
你已经把它交给了在Redmond,Washington的那些人了。
在短短的几年内,WindowsNT已经成为世界上大部分计算机的标准操作系统。
如果你要用NT工作,你需要了解它的寄存地址。
(它是一种用于存储你的系统结构的各个方面的数据库。
)我发现PeterNorton写的InsideWindowsNT4.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 工程师 资料
![提示](https://static.bdocx.com/images/bang_tan.gif)