BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

测试驱动的代码重用

| 作者 Amr Elssamadisy 关注 0 他的粉丝 ,译者 乔梁 关注 7 他的粉丝 发布于 2007年9月20日. 估计阅读时间: 2 分钟 | GMTC大前端的下一站,PWA、Web框架、Node等最新最热的大前端话题邀你一起共同探讨。

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

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

插件做的太不友好了 by Jacky Li

偶刚给开发者发了邮件,好的创意,如果非要让人忍受不方便的操作的话,那势必不能流行开来

Re: 插件做的太不友好了 by 霍 泰稳

哪儿不友好?普遍现象还是不符合你自己的个人使用习惯?

Re: 插件做的太不友好了 by Jacky Li

1. If there're many results matched the interface, and I only want one or two of them, I have to deselect the others one by one. "Select all" and "Deselect all" buttons are very helpful.

2. after I click "Send the query to Merobase" button, then Eclipse will have no response for several seconds, which is the same as I click "Download and compile the selected classes - create project for each" button. The non-UI actions should run in a non-UI process, then it won't make the user feel uncomfortable.

3. If I click "Run the test case on the selected classes" button, then I have no idea about what's happening, I mean there's no progress bar, no message showing that some class is being tested. Only after several minutes, then I can see "Skipped" or "passed" in "Result" column, I think it's not friendly to users.

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

3 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT