作为一个开源测试工具的推崇者,我经常被问到这个问题。许多测试工程师对商业测试工具情有独钟,总觉得商业测试工具既好用又强大,而开源测试工具功 能弱,缺陷多,而且不好用。对开源测试工具的偏见一方面来自于商业测试工具的宣传,另一方面,也来自部分测试工程师在使用开源测试工具过程中的心态。
在本人所在的组织中,公司内使用的绝大多数测试工具或多或少都有开源测试工具的影子,从开源测试工具在本组织的应用中看来,使用开 源测试工具带来的优势非常明显:
极低的License费用:这个是显而易见的一个优点。设想,如果公司需要对Web应用进行上万并发的性能测试,使用 LoadRunner等商业 测试工具的费用不是一个小数字;
更高的集成度:大多数商业测试工具本身也号称提供了自己的“完整解决方案”,但商业测试工具往往 只能覆盖测试中一部分的领域,对于集成测试或是针 对应用的接口测试方面,商业测试工具很难提供企业需要的好的解决方案。这样一来,这部分企业自己建立的自动化测试工具很难被集成到商业测试工具形成的 “测试框架”中。而采用开源测试工具解决方案的话,这个问题根本不是问题;
更适合企业需要:出于商业利益的考虑,商业测试工具总是 试图覆盖“大的用户群体”,因此商业测试工具往往是那种“谁都可以用”,但“在哪里都不 是特别好用”的那一类工具,反之,开源测试工具在这方面具有显然的优势;
更适合提高企业的测试技术水平:许多开源测试工具中都体现和 非常值得学习的测试思想和方法,由于开源本身的特性,这些思想和方法是非常容易通过对 开源测试工具的研究来进行学习和掌握的。
以JMeter这个工具为例,我在许多场合下向测试工程师推荐这个性能测试工具,的确也有一些测试工程师尝试了这个工具,但从他们那里,我得到的反 馈往往是:“为什么这个工具的界面这么难看?”,“为什么这个工具没有xx功能(与商业测试工具相比)?”,“为什么这个工具没有漂亮的文档?”。许多人 在第一印象上便认为,这个工具比不上商业测试工具,然后弃之如敝屐。实际上真是这样吗?我所在的组织的性能测试几乎完全依赖于JMeter,通过在 JMeter上扩展的图表功能,支持集群等功能,通过少量的代码,JMeter可以生成比商业测试工具更加漂亮,更加有价值的图表,而且,更重要的 是,适合我们自己的环境需要。
当然,除了看到开源测试工具的优点,我们也应该看到开源测试工具的不便之处。与商业测试工具相比,开源测试工具在产品的用户交互性,易用性,易学习 性方面显然 不是那么好(当然,在我看来,这方面不是测试工具的重点)。因此,要在组织中使用和引入开源测试工具的话,对组织中的成员,组织环境是有一定的要求的。
本人的经验而言,许多目前的开源测试工具,例如Mantis、Testlink、JMeter、Selenium/Webdriver、 xUnit等都已经是非常成熟的测试工具,拥有了大量的使用者,也有许多成功的应用实例,本人的实践已经充分证明了这些工具在实际工作中能够带来的收益: 即使只是简单的使用开源测试工具去完成某个特定的任务,或是用来搭建公司内部的测试管理平台,也能从这些工具中受益不少;更何况开源测试工具拥有众多的开 发者,处于不断的完善和提高中,具有良好的扩展性,给你充分修改和改造的自由,从这个角度来说,如果你拥有足够的资源,想要打造属于自己的测试平台,开源 测试工具是一个好的平台。