常用软件测试工具.docx
《常用软件测试工具.docx》由会员分享,可在线阅读,更多相关《常用软件测试工具.docx(21页珍藏版)》请在冰豆网上搜索。
常用软件测试工具
测试管理工具有td,qc,jira,bugzilla等。
惠普-水星公司的QTP,loadrunner,QC这三大自动化测试工具你能全部掌握,基本上就笑傲群雄了
白盒测试,还是黑盒测试?
你有开发基础做白合测试应该比较好,我是做黑盒的,说实话技术含量不大。
测试也分几种,功能测试,性能测试等。
测试工具种类非常多,掌握QTP,WINrunner,CQ,Loadrunner等其中一种就可以了,再随便掌握一款缺陷管理工具,像TD阿,bugzilla阿,mantis等等,用法都差不多的,各个公司用的工具也都不一样,能适应公司用的工具就可以了。
如果你去的公司有正规的测试团队,跟着项目走很快就能学会的,如果是单人测试的,那你就惨了,像我一样,进来很简单,但是学不到什么东西。
做测试的写测试用例是基本功,等价类划分一定要掌握好,最好能很熟悉业务相关事项。
良好的沟通能力和吃苦耐劳的精神。
这条是见鬼的,就是告诉你要能加班。
。
。
和开发的关系要搞好,不要提交了bug之后别个不理你。
五类测试工具
1.负载压力测试工具
这类测试工具的主要目的是度量应用系统的可扩展性和性能,是一种预测系统行为和性能的自动化测试工具。
在实施并发负载过程中,通过实时性能监测来确认和查找问题,并针对所发现问题对系统性能进行优化,确保应用的成功部署。
负载压力测试工具能够对整个企业架构进行测试,通过这些测试,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。
2.功能测试工具
通过自动录制、检测和回放用户的应用操作,将被测系统的输出记录同预先给定的标准结果比较,功能测试工具能够有效地帮助测试人员对复杂的企业级应用的不同发布版本的功能进行测试,提高测试人员的工作效率和质量。
其主要目的是检测应用程序是否能够达到预期的功能并正常运行。
3.白盒测试工具
白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级。
根据测试工具原理的不同,又可以分为静态测试工具和动态测试工具。
静态测试工具直接对代码进行分析,不需要运行代码,也不需要对代码编译链接和生成可执行文件。
静态测试工具一般是对代码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调用关系图等。
动态测试工具一般采用“插桩”的方式,在代码生成的可执行文件中
插入一些监测代码,用来统计程序运行时的数据。
它与静态测试工具最大的不同是,动态测试工具要求被测系统实际运行。
4.测试管理工具
一般而言,测试管理工具对测试需求、测试计划、测试用例、测试实施进行管理,并且测试管理工具还包括对缺陷的跟踪管理。
测试管理工具能让测试人员、开发人员或其他的IT人员通过一个中央数据仓库,在不同地方就能交互信息。
5.测试辅助工具
这些工具本身并不执行测试,例如它们可以生成测试数据,为测试提供数据准备。
IT测试工具集锦
RadviewTestView系列
Radview公司的TestView系列Web性能测试工具和WebLoadAnalyzer性能分析工具,旨在测试Web应用和Web服务的功能、性能、程序漏洞、兼容性、稳定性和抗攻击性,并且能够在测试的同时分析问题原因和定位故障点。
整套Web性能测试和分析工具包含两个相对独立的子系统:
Web性能测试子系统Web性能分析子系统。
其中Web性能测试子系统包含3个模块:
TestViewManager、WebFT以及WebLoad。
Web性能分析子系统只有WebLoadAnalyzer。
左图表达了在一个完整的测试系统中,TestViewManager用来定制、管理各种测试活动;WebLoad模拟多个用户行为进行测试,所测试的是系统性能,容量,稳定性和抗攻击性;WebFT模仿单一用户行为进行测试,所测试的是系统功能,漏洞,兼容性和稳定性;WebLoadAnalyzer对Web服务、中间件和数据库进行监控和分析,找出问题原因和故障点。
IBMRationalClearQuest
IBMRationalClearQuest提供基于活动的变更和缺陷跟踪。
以灵活的工作流管理所有类型的变更要求,包括缺陷、改进、问题和文档变更。
能够方便地定制缺陷和变更请求的字段、流程、用户界面、查询、图表和报告。
拥有“设计一次,到处部署”的能力,从而可以自动改变任何客户端界面(Windows、Linux、UNIX和Web)。
可与IBMWebSphereStudio、Eclipse和Microsoft.NETIDE进行紧密集成,从而可以即时访问变更信息。
支持统一变更管理,以提供经过验证的变更管理过程支持。
易于扩展,因此无论开发项目的团队规模、地点和平台如何,
均可提供良好支持。
软件测试工程师作为软件质量的把关者,其职能在于保证交付到客户手中的软件可靠好用,运行畅通无阻。
从产品定义到产品开发再到产品维护,都离不了软件测试。
按其级别和职位的不同,可分为三类,即
高级软件测试工程师,熟练掌握软件测试与开发技术,且对所测试软件对口行业非常了解,能够对可能出现的问题进行分析评估;
中级软件测试工程师,编写软件测试方案、测试文档,与项目组一起制定软件测试阶段的工作计划,能够在项目运行中合理利用测试工具完成测试任务;
初级软件测试工程师,其工作通常都是按照软件测试方案和流程对产品进行功能测验,检察产品是否有缺陷[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.0(SAMS,1998)是一本很好的介绍书。
但是,如果你的应用或系统要求高的保密度、产出、可靠性及灵活性,Unix依然是最好的选择。
如果你想成为一个成功的软件工程师,你必须能在Unix的世界里工作,如果你想从头学习编程,也要在Unix下进行。
你的选择是什么?
你可以到当地的学校或大学学习课程,或者在家建立一个Unix系统。
别昏过去了,你所需要的只是一台PC和一份能让你从网络免费下载的Linux拷贝。
(你大约花二十九元能买一份在一个CD-ROM中带了所有文件的拷贝。
)Linux不是Unix的“玩具”版,它是真实的。
它已经发行了七百万份拷贝,一些主要的PC生产商甚至先替你装载了它。
好了,你已经到了Unix或Linux系统了。
你应当学些什么?
文件和目录结构,标准输入输出和错误流,背景(background,也称为"daemon")处理,从C调用系统功能,好,我可以接下去了。
一个好的开端是读ArnoldRobbins的UnixinaNutshell(O'Reilly&Associates,1999)或者是EllenSiever的LinuxinaNutshell(O'Reilly&Associates,1999)。
2、交流技能(CommunicationsSkills)
能写出计算机程序却写不出一个完整句子的软件工程师现在还有。
但不幸的是,要成为一个成功的软件测试工程师,你需要清楚的交流。
你怎么去学习写?
通过写。
如果文字水平太粗糙,上