1、摘要: 软件测试是保证软件质量的重要手段, 它在整个软件开发过程中占据了将近一半的时 间和资源。在软件测试过程中合理的引入测试工具,能够加快测试进度,提高测试质量,实 现更快、更好的开发软件产品的目标。本文介 绍了覆盖软件测试各个阶段的测试工具,说明 了每一类工具所应用的测试阶段,以及它能发挥的作用。Abstract: Software test is one measure to insure the quality of software, it costs half of time and resource in the whole process of development. If
2、test tools can be used in the process, it would to improve the speed of test and the quality of test, Its probable to develop software rapidly and to produce high quality. In this document it introduces some software test tools for the different of test moment, it introduce the time for every kind o
3、f tools, but the function of the test tool. 关键字:软件测试工具; 测试设计; 静态分析; 单元测试; 功能测试; 性能测试; 测 试过程管理; Keywords: software test tool; test design; static analysis; unit test; function test; performance test; test process management; 1 引言 最近几年, 软件测试在国内越来越受到重视, 因为大家逐渐认识到了软件测试对于保证软件 质量的重要性。随着对软件测试重视的提高,国内软件测试技术
4、的发展也很快,逐渐从过去 手工作坊式的测试向测试工程化的方向发展。 要真正实现软件测试的工程化, 其基础之一就是要有一大批支持软件测试工程化的工具。 因 此, 软件测试工具对于实现软件测试的工程化来说至关重要。 本文就从如何进一步提高软件 测试质量和效率的角度出发,讨论测试工具在软件测试过程中的应用。 2 为什么要引入测试工具 在测试过程中引入测试工具能给我们带来以下的好处。 2.1 提高工作效率 这是引入测试工具给我们带来的一个显著好处。那些固定的、重复性的工作,可以由测试工 具来完成, 这样 就使得测试人员能有更多的时间来计划测试过程,设计测试用例,使 测试进 行的更加完善。 2.2 保证
5、测试的准确性 测试是需要投入大量的时间和精力的,人工进行测试时,经常会犯一些人为的错误,而工具 的特点恰恰能保证测试的准确性,防止人为疏忽造成的错误。2.3 执行困难的测试工作 有一些测试工作,人工进行是很困难的。有的是因为进行起来较为复杂,有的是因为测试环 境难以实现。 测试工具可以执行一些通过手工难于执行,或者是无法执行的测试。 3 测试工具在软件测试过程中的具体应用 在这一部分,我们讨论测试工具在测试过程中的具体应用。 现在的测试工具很多,基本上覆盖了各个测试阶段。按照工具所完成的任务,可以分为以下 几大类:测试设计工具、静态分析工具、单元测试工具、功能 测试工具、性能测试工具、测 试过
6、程管理工具。下面,我们就针对每一类工具展开介绍。 3.1 测试设计工具 测试设计工具, 更完整的名称应该是测试用例设计工具, 是一种帮助我们设计测试用例的软 件工具。 设计测试用例是一项智力性的活动, 工具如何能够代替呢?确实是这样, 但仔细思考一下我 们就会发现,很多设计测试用例的原则、方法是固定的,比如等价类划分、边界值分析、因 果图等等,这些成型的方法,很适合通过软件工具来实现。 测试用例设计工具按照生成测试用例时数据输入内容的不同, 可以分为: 基于程序代码的测 试用例设计工具和基于需求说明的测试用例设计工具。下面分别对这两类工具进行介绍。 3.1.1 基于程序代码的测试用例设计工具
7、基于程序代码的测试用例设计工具是一种白盒工具, 它读入程序代码文件, 通过分析代码的 内部结构,产生测试的输入数据。这种工具一般应用在单元测试中, 针对的是函数、类这样 的测试对象。由于这种工具与代码的联系很紧密,所以,一种工具只能 针对某一种(些)编 程语言。 这类工具的局限性是只能产生测试的输入数据, 而不能产生输入数据后的预期结果, 这 个局限也是由这类工具生成测试用例的机理所决定的。所以, 基于程序代码的测试用例设计 工具所生成的测试用例,还不能称之为真正意义上的测试用例。不过即使这样, 这种工具仍 然为我们设计单元测试的测试用例提供了很大便利。 3.1.2 基于需求说明的测试用例设计
8、工具 这种测试用例设计工具,依据软件的需求说明,生成基于功能需求的测试用例。 这种工具所 生成的测试用例既包括了测试输入数据,也包括预期结果,是真正完整的测试用例。 使用这种测试用例设计工具生成测试用例时, 需要人工的事先将软件的功能需求转化为工具 可以理解的文件格式,再以这个文件作为输入,通过工具生成测试用例。在使用这种测试用 例设计工具来生成测试用例时,需求说明的质量是很重要的。 由于这种测试用例设计工具是基于功能需求的, 所以可用来设计任何语言、 任何平台的任何 应用系统的测试用例。我们来看一个这类工具的例子SoftTest。在使用 SoftTest 生成测试用例时,先将软件 功能需求转
9、化为文本形式的因果图,然后让 SoftTest 读入,SoftTest 会根据因果图自动 生成测试用例。在这个过程中,工具的使用者只需要完成由功能需求到因果图的转化,至于 如何使用因果图来生成测试用例,则完全由 Softtest 完成。 所有测试用例设计工具都依赖于生成测试用例的算法, 工具比使用相同算法的测试人员设计 的测试用例更彻底、更精确,这方面工具有优势。但人工 设计测试用例时,可以考虑附加测 试,可以对遗漏的需求进行补充, 这些是工具无法做到的。所以,测试用例设计工具并不能 完全代替测试工程师来设计测试用例。使用这些工具的同时,再人工的检查、补充一部分测 试用例,会取得比较好的效果。
10、 3.2 静态分析工具 一提到软件测试,人们的第一印象就是填入数据、点击按钮等这些功能操作。这些测试工作 确实是重要的,但它们不是软件测试的全部。与这种动态运行程序的测试相对应,还有一种 测试被称为静态测试,也叫做静态分析。 进行静态分析时,不需要运行所测试的程序,而是通过检查程序代码,对程序的数据流和控 制流信息进行分析,找出系统的缺陷,得出测试报告。 进行静 态分析能切实提高软件的质量,但由于需要分析人员阅读程序代码, 使得这项工作进 行起来工作量又很大。 对软件进行静态分析的测试工具在这种需求下也就产生了。 现在的静 态分析工具一般提供以下两个功能:分析软件的复杂性、检查代码的规范性。 软件质量标准化组织制定了一个 ISO/IEC9126 质量模型,用来量化的衡量一个软件产品 的质量。该软件质量模型是一个分层结构,包括质量因素