技术开发 频道

测试驱动的代码重用

【IT168 技术文章】

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

    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返回的结果:

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

0
相关文章