常用软件测试工具的分析
江苏省电子信息产品质量监督检验研究院 张影秋
随着软件测试的地位逐步提高,测试的重要性逐步显现,测试工具的应用已经成为了普遍的
趋势。目前用于测试的工具已经比较多了,测试工具的应用可以提高测试的质量、测试的效率、减
少测试过程中的重复劳动、实现测试自动化,这些测试工具一般可分为白盒测试工具、黑盒测试工
具、性能测试工具,另外还有用于测试管理的工具,本文对常用的测试工具作一 分析比较。
1 白盒测试工具
白盒测试工具一般是针对代码进行测试,测试中发现的缺陷可以定位到代码级,根据测试工
具原理的不同,又可以分为静态测试工具和动态测试工具。 静态测试工具直接对代码进
行分析,不需要运行代码,也不需要对代码编译链接,生成可执行文件。静态测试工具一般是对代
码进行语法扫描,找出不符合编码规范的地方,根据某种质量模型评价代码的质量,生成系统的调
用关系图等;动态测试工具与静态测试工具不同,动态测试工具的一般采用 “插桩”的方式,向代
码生成的可执行文件中插入一些监测代码,用来统计程序运行时的数据。其与静态测试工具最大的
不同就是动态测试工具要求被测系统实际运行。
(1) Jtest
是一 代码分析和动态类、组件测试工具,是一个集成的、易于使用和自动化的Java 单元测
试工具。它增强代码的稳定性,防止软件错误。
(2) Jcontract
Jcontract 在系统级验证类/部件是否正确工作并被正确使用。Jcontract 是 独立工具,在功
能上是Jtest 的补充。可以用Jcontract 插装按DbC 注解的Java 代码。当您将类/部件组装成系统
时,Jcontract 在运行时监视并报告错用和功能性问题。Jcontract 帮助每 开发人员有效地考核
类/部件的系统级行为。
(3) C++ Test
C++Test 可以帮助开发人员防止软件错误,保证代码的健全性、可靠性、可维护性和可移植性。
C++Test 自动测试C 和C++类、函数或组件,而无需编写单 测试实例、测试驱动程序或桩调用。
(4) CodeWizard
CodeWizard 代码静态分析工具,先进的C/C++源代码分析工具,使用超过 500 编码规范
自动化地标明危险的,但是编译器不能检查到的代码结构。
(5) Insure++
Insure++是一 基于C/C++的自动化的内存错误、内存泄漏的精确检测工具。 Insure++能够
可视化实时内存操作,准确检测出内存泄漏产生的根源。Insure++还能执行覆盖性分析,清楚地指示
那些代码已经测试过。
(6) .test
.TEST 是专为.NET 开发而推出的使用方便的自动化单元级测试与静态分析工具。使用超过200
1
条的工业标准代码规则对所写代码自动执行静态分析。这些规则立即应用.NET 工业专家深入、全
面的编程知识到你的代码当中,迅速、彻底地防止错误的出现。自动测试代码构造与功能。 .TEST
非常智能。他能提取刚完成的代码,对其进行读 ,并提出如何对这些代码进行单元测试,不需要
任何的人为干涉。所有由.TEST 产生的单元测试都是可以用户自定义的。
(7)BoundsChecker
BoundsChecker Visual C++ Edition 是针对 Visual C++开发人员的首选的运行时的错误检
测和调试工具。它通过驻留在 Visual C++ 开发环境内部的自动调试处理程序来加速应用程序的开
发,缩短产品发布的时间。BoundsChecker 对于编程中的错误,大多数是 C++中特有的提供了清晰
的详细的分析。它能够检测和诊断出在静态,堆栈内存中的错误以及内存和资源泄漏问题。在运行
状态下,BoundsChecker 验证超过 8,700 APIs 和 OLE 方法,包括最新的 Windows APIs, ODBC,
ActiveX,DirectX, COM 和 Internet APIs。
(8) TrueTime
代码运行缓慢是开发过程中一 重要问题。一 应用程序运行速度较慢,程序员不容易找到
到底是在哪里出现了问题,如果不能解决应用程序的性能将降低并极大