测试驱动的代码重用

  • Amr Elssamadisy
  • 乔梁

2007 年 9 月 19 日

话题:Java敏捷语言 & 开发架构文化 & 方法

代码重用一直以来是软件开发领域的理想。我们已经尝试通过抽象化和框架来达到“代码重用”这一目的,而它们都有其自身的“痛处”。现在,有一种新方法来达到同样的目的,那就是利用搜索工具和开发人员写好的自动化测试代码来查找那些能够匹配接口与行为的开源代码。

Colin Atkinson 和他所在的曼海姆大学软件工程系的一个研究小组已经研发了一个叫做merobase的工具。假如你打算找到与你的接口 (结构) 相匹配的即有代码,你可以用这个工具在互联网上搜索。这个工具看来不错,却不是唯一的一个,还有其它的搜索引擎同样提供类似的服务,例如 Google Code Search

值得一提的是,Atkinson 和他的学生(Hummel 和 Monika Krug)研究出来的 merobase 不但能够以结构(structure)为条件进行搜索,还可以把行为(behavior)做为条件。这个特性不但已 成为搜索标准的一部分,而且是由开发者用 TDD 方式完成的。在网上找到的所有与所需接口相匹配的类都会通过那些给定的测试代码的测试。

Monika 还写了一个 Eclipse 插件,叫做FAST (Fully Automated Search and Test),它会根据你写好的测试自动解析和查询 merobase。你只要在写好的测试类上点击右键,就可以从互联网上得到与其相匹配的实现类。

下面是一个为名为 Die 的类写的一个测试:

下面是 FAST 的操作:

下面是 FAST 返回的结果:

目前,这只是个研究性项目,但可以想到,对于大型组织来说这种方法是多么有用啊!因为你可以通过搜索并重用千万行代码,而无须投资去建设那些很难理解、使用和维护的框架或抽象结构。

原文英文链接:Test Driven Code Reuse

Java敏捷语言 & 开发架构文化 & 方法