编者按:

  随着社会的不断发展,开源软件运动正不断地改变着软件行业的开发模式、运营方法,当然也改变着软件测试的方法,借助开源软件测试工具可以构造一个完整的测试解决方案,从单元测试、功能测试到性能测试,从Web页面测试到VoIP/Telephony等一些多媒体应用的测试,甚至涉及测试的管理平台和缺陷跟踪系统,它覆盖整个测试工作领域。小编这次从51Testing网站中,适当的整理了一下开源测试工具的文章,希望大家能更加了解它的应用。

  整理的一些常见的开源测试工具

  白盒测试工具

  linux c/c++内存泄露分析软件:http://valgrind.org/

  c/c++单元测试:http://code.google.com/p/googletest/

  http://code.google.com/p/googlemock/

  xCover是一个C/C++语言的代码覆盖分析库:http://www.xcover.org/

  UseMon是一个开源实时性能检测代理工具,能够嵌入JVM提供监控程序运行能力,包括异步运行情况,只需要花费很小的代价,并且能够在生产环境中使用。UseMon提供了以下功能:http://code.google.com/p/usemon/

  Clover是一个基本的Java代码覆盖测试分析工具http://www.atlassian.com/software/clover/

  DbUnit使您可以容易地执行JDBC查询并获取它们的值。使用DbUnit JDBC包装器而不是纯粹的JDBC有几个理由:http://www.dbunit.org/

  JDepend一个开放源代码的可以用来评价Java程序质量的优秀工具:http://www.clarkware.com/software/JDepend.html

  代码覆盖率检查工具Coberturahttp://cobertura.sourceforge.net/

  Java程序性能分析工具VisualVMhttps://visualvm.dev.java.net/

  性能测试框架p-unit,p-unit是一款开放源码的性能测试框架,和JUnit不同,JUnit关注的是测试案例的正确性,而p-unit不仅关注测试案例的正确性,还收集测试案例的性能参数,http://p-unit.sourceforge.net/

  GroboUtils使得扩展Java测试变得可能。它包括用在Java不同方面测试的多个子项目。在GroboUtils中最常被到的工具是:多线程测试(multi-threaded tests),整体单元测试(hierarchial unit tests),代码覆盖工具(code coverage tool)。http://groboutils.sourceforge.net/

  白盒测试工具CodeCover, CodeCover是一个免费的白盒测试工具,主要测试代码、分支、循环、MC/DC覆盖。支持为每个测试用例生成独立的报表,目前支持的语言有Java和COBOL。http://codecover.org/

  Fluint是一个Flex单元测试工具,对于Flex单元和集成测试,“Fluint”非常简洁。它是为编写Flex2或Flex3应用的开发者提供的测试框架,无论这些应用是通过Adobe Flash Player在浏览器中部署的,还是通过Adobe AIR在桌面上部署的。http://code.google.com/p/fluint/

  Memtest86+是一款免费开源的内存测试软件,测试准确度比较高,内存的隐性问题也能检查出来!也是一款基于Linux核心的测试程序.http://www.memtest.org/

  JMemProf基于Web的内存剖析工具.JMemProf允许你撷取应用程序在运行时内存剖析信息.http://oss.metaparadigm.com/jmemprof/

  mmapper可以用来访问机器的任何资源,可直接读写内存总线中的任何物理地址、I/O端口、PCI空间配置等http://sourceforge.net/projects/memmapper/

  测试环境搭建工具:

  虚拟机软件:www.xen.com

  集成测试(接口测试)工具:

  TCP协议测试工具:http://code.google.com/p/tcpjunk/

  网络协议分析软件:http://www.wireshark.org/

  JAMon(Java应用程序监视器)是一个免费的,简单,高性能,线程安全的Java API.它让开发者可以方便地监控软件。JAMon用来测定程序的性能瓶颈,程序与用户的互动性和程序的可量测性。JAMon收集概要的统计数据比如执行时间(总的,平均的,最大的,最小的等),并发程序请求等。JAMon把这些统计数据以报表的形式展示出来。

  http://jamonapi.sourceforge.net/

  Iperf 是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失http://iperf.sourceforge.net/

  ......

  专题入口:http://www.51testing.com/zhuanti/kygj.html

  为什么要使用开源测试工具?

  作为一个开源测试工具的推崇者,我经常被问到这个问题。许多测试工程师对商业测试工具情有独钟,总觉得商业测试工具既好用又强大,而开源测试工具功能弱,缺陷多,而且不好用。对开源测试工具的偏见一方面来自于商业测试工具的宣传,另一方面,也来自部分测试工程师在使用开源测试工具过程中的心态。

  在本人所在的组织中,公司内使用的绝大多数测试工具或多或少都有开源测试工具的影子,从开源测试工具在本组织的应用中看来,使用开 源测试工具带来的优势非常明显:

  1. 极低的License费用:这个是显而易见的一个优点。设想,如果公司需要对Web应用进行上万并发的性能测试,使用LoadRunner等商业 测试工具的费用绝对不是一个小数字;

  2. 更高的集成度:大多数商业测试工具本身也号称提供了自己的“完整解决方案”,但商业测试工具往往只能覆盖测试中一部分的领域,对于集成测试或是针 对应用的接口测试方面,商业测试工具很难提供企业需要的好的解决方案。这样一来,这部分企业自己建立的自动化测试工具就很难被集成到商业测试工具形成的 “测试框架”中。而采用开源测试工具解决方案的话,这个问题根本就不是问题;

  3. 更适合企业需要:出于商业利益的考虑,商业测试工具总是试图覆盖“最大的用户群体”,因此商业测试工具往往是那种“谁都可以用”,但“在哪里都不 是特别好用”的那一类工具,反之,开源测试工具在这方面具有显然的优势;

  4. 更适合提高企业的测试技术水平:许多开源测试工具中都体现和非常值得学习的测试思想和方法,由于开源本身的特性,这些思想和方法是非常容易通过对 开源测试工具的研究来进行学习和掌握的。

  以JMeter这个工具为例,我在许多场合下向测试工程师推荐这个性能测试工具,的确也有一些测试工程师尝试了这个工具,但从他们那里,我得到的反馈往往是:“为什么这个工具的界面这么难看?”,“为什么这个工具没有xx功能(与商业测试工具相比)?”,“为什么这个工具没有漂亮的文档?”。许多人在第一印象上便认为,这个工具比不上商业测试工具,然后就弃之如敝屐。实际上真是这样吗?我所在的组织的性能测试几乎完全依赖于JMeter,通过在 JMeter上扩展的图表功能,支持集群等功能,通过少量的代码,JMeter可以生成比商业测试工具更加漂亮,更加有价值的图表,而且,更重要的是,100%适合我们自己的环境需要。

  当然,除了看到开源测试工具的优点,我们也应该看到开源测试工具的不便之处。与商业测试工具相比,开源测试工具在产品的用户交互性,易用性,易学习性方面显然 不是那么好(当然,在我看来,这方面不是测试工具的重点)。因此,要在组织中使用和引入开源测试工具的话,对组织中的成员,组织环境是有一定的要求的。

  就本人的经验而言,许多目前的开源测试工具,例如Mantis、Testlink、JMeter、Selenium/Webdriver、 xUnit等都已经是非常成熟的测试工具,拥有了大量的使用者,也有许多成功的应用实例,本人的实践已经充分证明了这些工具在实际工作中能够带来的收益: 即使只是简单的使用开源测试工具去完成某个特定的任务,或是用来搭建公司内部的测试管理平台,也能从这些工具中受益不少;更何况开源测试工具拥有众多的开 发者,处于不断的完善和提高中,具有良好的扩展性,给你充分修改和改造的自由,从这个角度来说,如果你拥有足够的资源,想要打造属于自己的测试平台,开源 测试工具绝对是一个好的平台。

  专题入口:http://www.51testing.com/zhuanti/kygj.html