第六章 自动化测试工具介绍
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1.4 自动化测试工具的作用及优势
软件测试自动化通常借助测试工具进行。测试工具可以进行部分 的测试设计、实现、执行和比较的工作。部分的测试工具可以实 现测试用例的自动生成,但通常的工作方式为人工设计测试用例, 使用工具进行用例的执行和比较。如果采用自动比较技术,还可 以自动完成测试用例执行结果的判断,从而避免人工比对存在的 疏漏问题。 自动化测试工具的作用: (1)确定系统最优的硬件配置。 (2)检查系统的可靠性。 (3)检查系统硬件和软件的升级情况。 (4)评估新产品。
第六章 自动化测试工具介绍
6.1 软件自动化测试原理及方法 6.2 软件自动化测试工具分类介绍
本章教学目标
理论环节 认识与理解应用软件自动化测试的原理 常用软件自动化测试工具简介 实践环节 学习使用黑盒自动化测试工具(QTP)进行软件功能测试 学习使用压力测试工具(LoadRunner)进行性能和压力测试
自动化测试的原理和方法(续)
关于自动化测试中的“录制—回放”技术 目前的自动化负载测试解决方案几乎都是采用 “录制-回放” 的技术。 所谓的“录制-回放”技术,就是先由手工完成一遍需要测试的 流程,同时由计算机记录下这个流程期间客户端和服务器端之间的 通信信息,这些信息通常是一些协议和数据,并形成特定的脚本程 序 (Script) 。然后在系统的统一管理下同时生成多个虚拟用户,并 运行该脚本,监控硬件和软件平台的性能,提供分析报告或相关资 料。这样,通过几台机器就可以模拟出成百上千的用户对应用系统 进行负载能力的测试。
自动化测试工具的作用及优势(续)
自动化测试工具的优势主要体现在以下几个方面: (1)记录业务流程并生成脚本程序的能力。 (2)对各种网络设备(客户机或服务器、其它网络设备)的模仿能 力。 3 (3)用有限的资源生成高质量虚拟用户的能力。 (4)对于整个软件和硬件系统中各个部分的监控能力。 (5)对于测试结果的表现和分析能力。
6.1 自动化测试的原理和方法(续)
(2)捕获和回放(黑盒测试) )捕获和回放(黑盒测试) 代码分析是一种白盒测试的自动化方法,捕获和回放则是一种 黑盒测试的自动化方法。捕获是将用户每一步操作都记录下来。这 种记录的方式有两种:程序用户界面的像素坐标或程序显示对象 (窗口、按钮、滚动条等)的位置,以及相对应的操作、状态变化 或是属性变化。所有的记录转换为一种脚本语言所描述的过程,以 模拟用户的操作。 回放时,将脚本语言所描述的过程转换为屏幕上的操作,然后 将被测系统的输出记录下来同预先给定的标准结果比较。这可以大 大减轻黑盒测试的工作量,在迭代开发的过程中,能够很好地进行 回归测试。
测试工具存在的不足
不现实的期望过高 缺乏测试实践经验 期望自动化测试工具完全能取代手工测试 期望自动化测试发现新故障 安全性的误解 测试自动化不能提高有效性 测试工具本身不具想象力
6.2 软件自动化测试工具介绍
6.2.1 自动化测试工具的分类 6.2.2 选择自动化测试工具
Return
6.2.1 自动化测试工具的分类
自动化测试的原理和方法(续)
(3)脚本技术 ) 脚本是一组测试工具执行的指令集合,也是计算机程序的一种 形式。脚本可以通过录制测试的操作产生,然后再做修改,这样可 以减少脚本编程的工作量。当然,也可以直接用脚本语言编写脚本。 脚本技术可以分为以下几类: 线性脚本——是录制手工执行的测试用例得到的脚本。 结构化脚本——类似于结构化程序设计,具有各种逻辑结构(顺序、 分支、循环),而且具有函数调用功能。 共享脚本——是指某个脚本可被多个测试用例使用,即脚本语言允 许一个脚本调用另一个脚本。 数据驱动脚本——将测试输入存储在独立的数据文件中。 关键字驱动脚本——是数据驱动脚本的逻辑扩展。
Devpartner
TrueCoverage:功能就是统计测试覆盖率,在使用TrueCoverage记录程 序的覆盖情况时,要有程序的源代码,所以只适合应用于单元测试阶段和 集成测试阶段。 在单元测试、集成测试阶段使用TrueCoverage的基本步骤是: 1、制定出尽可能完善的测试用例。这一步和是否使用TrueCoverage没有 太大的关系,不管你是否统计覆盖率,对于测试来说,制定出完善的测试 用例都是必要的。 2、打开TrueCoverage,启动被测试的程序,依次执行测试用例。就象往 常那样操作程序,按照测试用例进行输入,观察实际输出,并与预期输出 进行比较,最后记录下每个测试用例的执行结果。TrueCoverage会在后台 记录程序的执行覆盖情况。 3、查看、分析测试覆盖情况。在执行完事先制定好的测试用例后,根据 TrueCoverage提供的测试覆盖率信息,决定测试工作是否可以结束,如果 还未达到测试目标,我们可以根据TrueCoverage提供的测试覆盖率信息, 进一步补充测试用例。TrueCoverage用不同的颜色标识被执行的代码和未 被执行的代码,这很有利于我们补充测试用例。 4最后,达到事先要求的覆盖率。 TrueCoverage给出的覆盖率是“语句覆盖”,是一种低强度的覆盖率, 覆盖率是“语句覆盖” 是一种低强度的覆盖率 覆盖率是 所以我们测试的项目,用TrueCoverage统计覆盖率后,应使其尽量趋近 100%。
Segue
中文名称为赛格瑞 2006年被Borland 以1亿美元收购 2009年Borland被英国软件公司Micro Focus以7500万 美元收购 主要产品包括: SilkTest :功能测试 SilkPerformer:性能测试 SilkRadar :缺陷跟踪工具 SilkCentralTestManager :测试管理
Devpartner
在单元测试阶段、集成测试阶段使用BoundsChecker的基本步骤是: 1 为被测试程序制定测试用例。因为BoundsChecker只能检查被执 行过的代码中是否存在错误,如果某一部分的代码没有被执行到, 如果某一部分的代码没有被执行到, 如果某一部分的代码没有被执行到 即使这部分代码有问题, 也不能发现。 即使这部分代码有问题,BoundsChecker也不能发现。所以,在 也不能发现 所以, 开始使用BoundsChecker前,为被测程序制定覆盖全面的测试用 开始使用 前 例非常重要。 例非常重要。 2 执行测试用例。打开BoundsChecker功能,运行被测试的程序, 按照制定好的测试用例,逐个执行。在操作被测试程序时,就象操 作平常的程序一样,输入数据,点击鼠标,观察预期的结果, BoundsChecker会在后台跟踪、监视程序的运行情况,一旦发现错 误,会马上记录下错误的相关信息。BoundsChecker的价值不但 的价值不但 反映在功能上的错误,还可以发现,象内存泄露这样的“癌症” 。 反映在功能上的错误,还可以发现,象内存泄露这样的“癌症” 3第三步分析错误了。根据BoundsChecker列出的错误列表,分析 错误产生的原因。对于每一个错误,BoundsChecker会给出该错误 的类型、描述、发生位置等信息。
பைடு நூலகம்
Mercury
2004年改名为Mercury(美科利,www.mercury.com) 2006年被HP45亿美元收购 主要产品包括: WinRunner:功能测试 QTP:QuicktestProfessional:功能测试 LoadRunner:性能测试 SiteScope :IT系统监控与诊断工具 TD:TestDirector(现为QualityCenter ):测试管理
Compuware
中文名为:康普科纬迅 2009年被英国MicroFocus公司8000万美元收购 主要产品包括: Devpartner:白盒测试 QARun(已被TestPartner 替换):功能测试 TestPartner :功能测试 QALoad:性能测试 QADirector:测试管理
Empirix
Devpartner
DevPartner 主要包含提供了三个工具 BoundsChecker、TrueCoverages和TrueTime。 BoundsChecker是一个动态、白盒测试工具主 要定位程序在运行时期发生的各种错误。 BoundsChecker能检测的错误包括:内存泄露; 资源泄露;对指针变量的错误操作;内存读、 写溢出; 使用未初始化的内存;API函数使用 错误等等。 BoundsChecker,最适合在单元测试阶段、集 成测试阶段使用。在使用BoundsChecker对程 序进行检测时,要求有程序的源代码。
总结
软件测试主要是HP、IBM、Micro focus、 Oracle占据了四大软件质量管理提供商 的位置,未来微软会加入进来。 HP MI系列产品占据了软件测试的主导 市场。 开源测试工具将在中小软件企业中应用 越来越广泛。
一、白盒单元测试工具
1、IBM Rational Software Analyzer Developer Edition 2、Eclipse Test and Performance Tools Platform(TPTP) 3 HP 3、HP DevInspect 4、 MicroFocus compuware的DevPartner 5、ParaSoft Jtest ----------------------------------主要实现静态测试(测试数据用例生成、软件质量 分析、代码规范检查)和动态测试( 功能确认与接口 测试 、覆盖测试 、性能测试 、内存分析)
6.1 自动化测试的原理和方法
软件测试自动化实现的基础是可以通过设计的特殊程序模拟测试人 员对计算机的操作过程、操作行为,或者类似于编译系统那样对计 算机程序进行检查。 软件测试自动化实现的原理和方法主要有:直接对代码进行静态和 动态分析、测试过程的捕获和回放、测试脚本技术、虚拟用户技术 和测试管理技术。 (1)代码分析(白盒测试) )代码分析(白盒测试) 代码分析类似于高级编译系统,一般针对不同的高级语言去构 造分析工具,在工具中定义类、对象、函数、变量等定义规则、语 法规则;在分析时对代码进行语法扫描,找出不符合编码规范的地 方;根据某种质量模型评价代码质量,生成系统的调用关系图等。
最常规使用的测试工具一般可分为白盒测试工具、黑盒测试工具、 最常规使用的测试工具一般可分为白盒测试工具、黑盒测试工具、性能测 试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、 试工具,另外还有用于测试管理(测试流程管理、缺陷跟踪管理、测试用 例管理)的工具,这些产品主要是MercuryInteractive(MI)、 )、Segue、 例管理)的工具,这些产品主要是 ( )、 、 IBM Rational、 Compuware和Empirix、Radview等公司的产品,而MI 等公司的产品, 、 和 、 等公司的产品 公司的产品占了主流。 公司的产品占了主流。
ParaSoft白盒测试工具 白盒测试工具
工具名 Jtest Jcontract C++ Test CodeWizard Insert++ .test BoundsChecker TrueTime Failsafe Jcheck TrueCoverage SmartCheck CondReview 语言 Java Java C、C++ C、C++ C、C++ .Net C++、Delphi C++、Java、Visual Basic Visual Basic MS Visual J++ C++、Java、Visual Basic Visual Basic Visual Basic 强项 代码分析和动态类、组件测试 实时性能监控以及分析优化 代码分析和动态测试 代码静态分析 实时性能监控以及分析优化 代码分析和动态测试 API各OLE错误检查、指针和泄露错误检查 、内存错误检查 代码运行效率检查、组件性能的分析 自动错误处理和恢复系统 图形化的纯种和事件分析工具 函数调用次数、所占比率统计以及稳定性 跟踪 函数调用次数、所占比率统计以及稳定性 跟踪 自动源代 码分析工具
IBM Rational
主要产品包括: PurifyPlus (2008年已被SoftwareAnalyzer ):白盒 测试工具 Robot (现已被Functional Tester 替代):功能测试 Functional Tester :功能测试 PerformanceTester :性能测试 TestManager (现已被QualityManager替代) :测试 管理 QualityManager :测试管理
中文名称为安培力 2008年被Oracle收购 主要产品包括: E-Test :功能测试 E-load:性能测试 OneSight :运行时监测工具 E-monitor :测试管理
Radview
主要产品包括: WebFT :功能测试 WebLoad :性能测试 TestView Manager :测试管理
测试工具可以从两个不同的方面去分类。 根据测试方法不同,自动化测试工具可以分为: 白盒测试工具、黑盒测试工具 根据测试的对象和目的,自动化测试工具可以分为: 单元测试工具、功能测试工具、负载测试工具、性能测试工具、Web测试工具、数据库测试工 具、回归测试工具、嵌入式测试工具、页面链接测试工具、测试设计与开发工具、测试管理 工具等