序号 |
工具类型 |
基本描述 |
1 |
测试过程生成器 |
根据需求/设计/对象模型生成测试过程 |
2 |
代码(测试)覆盖率分析器和代码测量器 |
确定未经测试的代码和支持动态测试 |
3 |
内存泄漏检测 |
用来确认应用程序是否正确地管理了它的内存资源 |
4 |
度量报告工具 |
读取源代码并显示度量信息,例如数据流、数据结构和控制流的复杂度,能够根据模块、操作数、操作符和代码行的数量提供代码规模的度量 |
5 |
可使用可用性测试工具 |
用户配置、任务分析、制作原型和用户走查 |
6 |
测试数据生成器 |
产生测试数据 |
7 |
测试管理工具 |
提供某些测试管理功能,例如:测试过程文档化和存储,以及测试过程的可追踪性 |
8 |
网络测试工具 |
监视、测量、测试和诊断整个网络的性能 |
9 |
GUI测试工具(记录/回放工具) |
通过记录用户与在线系统之间的交互,使GUI测试自动化,这样它们可以被自动回放 |
10 |
负载、性能和强度测试工具 |
用于负载/性能/强度测试 |
11 |
专用工具 |
针对特殊的构架或技术进行专门测试的测试工具,例如:嵌入式系统 |
―――――――――――本文摘自《有效软件测试》
以上几种类型的测试工具的特点:
l 测试过程生成器:一个需求管理工具可以和一个基于需求规格说明书的测试过程(用例)生成器联成一体。需求管理工具是用来捕捉需求信息的,随后这些信息会被测试过程生成器利用。生成器通过统计、计算或者探索式的方法创建测试过程。如果用统计的方法生成测试过程,那么工具会按一个分布选择输入的结构和值,这个分布可能是统计上的随机分布,或者是和正在测试的软件的用户配置相匹配的分布。测试过程生成器最常用的策略是动作、数据、逻辑、事件和状态驱动。这些策略用于检测不同种类的软件缺陷。当用探索式或故障导向的方法来生成测试过程时,工具需要使用测试工程师提供的信息。测试工程师把以前频繁发现的故障输入到工具中。这样工具就具备了一定的知识,它利用对历史故障的了解生成测试过程
l 代码覆盖率分析器和代码测量器。测量结构上的覆盖率使开发组和测试组认识到测试 和测试套件的有效性。此类工具能够量化设计的复杂度,测量限制设计所必需的集成测试的数量,有助于进行集成测试和测量还没有执行的集成测试的数量。有些工具还能有用多种方式测量测试覆盖率,其中包含:代码段、分支和条件覆盖率。测量的方式是根据特定应用程序的具体情况而确定的。例如:整个测试套件可以通过代码覆盖率工具来测量分支覆盖率,然后把没有覆盖到的分支和逻辑加到测试套件中去。
l 内存泄漏检测工具。此类工具用于特定的目的地:验证应用程序是否正确地使用它的内存资源。这些工具确定一个应用程序是否释放了它申请的内存,并且还提供了运行时的错误检测。因为许多程序缺陷都和内存问题有关,其中包括性能问题,所以如果应用程序内存操作非常频繁,那么进行内存检测是值得的。
l 可使用性测试工具。可使用性工程学是一个范围很广的学科,其中包括:用户界面设计、图形设计、人类环境改造学、人性因素、民族学,还有工业和认知心理学。可使用性测试主要是通过手动的过程来确定一个系统界面的易使用性以及其他一些特征。但是有些自动化工具可以辅助完成这个过程,虽然它们绝不能代替对界面的手工确认。
l 测试数据生成器。测试数据生成器通过自动生成测试数据来辅助测试过程。市场上有许多工具支持生成测试数据和填充数据库。无论测试数据用于功能测试、数据驱动的负载测试,还是性能测试和强度测试,测试数据生成器都能够根据一组规则快速地填充数据库。
l 测试管理工具。测试管理工具支持对测试生命周期的所有方面进行计划、管理和分析。有些测试管理工具(例如:Rational的TestStudio)与需求管理、配置管理以及缺陷追踪工具集成在一起,这是为了简化对整个测试生命周期的管理。
l 网络测试工具。客户端-服务器或者WEB环境的普及给测试工作带来了新的复杂度。测试工程师不能再像过去那样只是检验在单一系统上操作的单个的、封闭的应用程序。客户端-服务器构架包含3个独立的部分:服务器、客户端和网络。平台间的连接增加了出错的可能性。因此,测试过程必须要覆盖服务器和网络的性能、整个系统的性能和贯穿这3个组成部分的功能。利用网络测试工具,测试工程师能够在整个网络上对性能进行监控、测量、测试和诊断。
l GUI测试工具(记录/回放工具)。市场上有很多自动的GUI测试工具。这些工具通常包含记录和回放功能,测试人员可以在不同的环境下创建(记录)、修改和运行(回放)自动化的测试。其中在用户界面控件或者“窗口部件”上(不在位图上)记录GUI的组件的工具最为常见。记录活动捕捉测试工程师输入的按键,自动地在后台用高级语言创建一个脚本。负责记录工作的是一个称为测试脚本的计算机程序。但是这种工具的记录/回放功能大约仅是其全部功能的1/10。为了充分体现记录/回放工具的价值,工程师应该充分利用工具内置的脚本语言。记录的脚本必须经过测试工程师的修改,才能成为一个可重用的和可维护的测试过程。脚本的运行结果成为测试的基线。然后脚本在软件新版本上回放的结果可以和基线进行比较。具备记录功能的测试工具通常还带有一个比较器,它会自动把实际结果与预期输出进行比较,并且将比较的结果记入日志。根据测试的比较类型,结果可以按像素、字符和属性进行比较,并且工具会自动指出预期结果和实际结果之间的区别。
l 负载、性能和强度测试工具。性能测试工具使测试人员能够检查一个系统或者应用程序的响应时间和负载能力。此类工具可以在多台客户机上同时运行,这是为了测量客户端-服务器系统同时被多个用户访问情况下的响应时间。强度测试包括用强度场景运行客户机来确定它们是否崩溃和什么时候崩溃。
专用工具。例如:针对不同类型和构架的应用程序,需要对构架上特殊部分进行专门测试。例如:对一个WEB应用程序,就要求自动链接测试人员来验证是否有断开的链接,而对安全测试工作,就要求检查WEB服务器的安全性问题。