写点什么

测试驱动的代码重用

  • 2007-09-19
  • 本文字数:649 字

    阅读完需:约 2 分钟

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

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

2007-09-19 20:531250
用户头像

发布了 100 篇内容, 共 25.6 次阅读, 收获喜欢 5 次。

关注

评论

发布
暂无评论
发现更多内容

7-32 哥尼斯堡的“七桥问题” (25 分)(思路

爱好编程进阶

Java 程序员 后端开发

Day262

爱好编程进阶

Java 程序员 后端开发

Github已标星80

爱好编程进阶

Java 程序员 后端开发

2021年金三银四必问的1000道Java面试题及答案整理

爱好编程进阶

Java 程序员 后端开发

如何开发LAXCUS分布式应用软件(一):前言

LAXCUS分布式操作系统

集群 并行计算 分布式操作系统 分布式应用软件

C语言_语句与位运算练习

DS小龙哥

5月月更

2021 企业架构(EA)状态调查报告

涛哥 数字产品和业务架构

企业架构

32岁的我裸辞了,八年 Java 老鸟,只因薪水被应届生倒挂

爱好编程进阶

Java 程序员 后端开发

985硕非科班,靠着自己的努力一步一步转行拿到抖音后端offer,现在想想就觉得满足

爱好编程进阶

Java 程序员 后端开发

Day193

爱好编程进阶

Java 程序员 后端开发

GitHub上14个屌炸天的Java进阶教程、面试真题项目,建议收藏

爱好编程进阶

Java 程序员 后端开发

GitHub持续霸榜!2021年Java核心知识:面试突击版

爱好编程进阶

Java 程序员 后端开发

5 年 Java 开发经验,阿里面试了 7 轮,太难了呀

爱好编程进阶

Java 程序员 后端开发

CQRS架构

爱好编程进阶

Java 程序员 后端开发

【愚公系列】2022年05月 二十三种设计模式(八)-组合模式(Composite Pattern)

愚公搬代码

5月月更

C++最佳实践 | 1. 工具

俞凡

c++ 最佳实践

CCF201509-2 日期计算

爱好编程进阶

Java 程序员 后端开发

模块5 作业

KennyQ

6月GitHub上最牛逼的10个Java开源项目,号称“Star收割机

爱好编程进阶

Java 程序员 后端开发

Day168

爱好编程进阶

Java 程序员 后端开发

Docker容器重启慢?快来看看这些优雅终止方案

爱好编程进阶

Java 程序员 后端开发

ElasticSearch入门(三)Logstash实现MySQL数据同步至ElasticSearch

爱好编程进阶

Java 程序员 后端开发

python之pythonic

AIWeker

Python 人工智能 5月月更

全链路压测(十一):聊聊稳定性预案

老张

性能测试 全链路压测

前端食堂技术周刊第 36 期:pnpm v7.0.0、Node 对 ESM 的支持达到重要里程碑、四月份登陆浏览器的新功能、VS Code April 2022

童欧巴

JavaScript 前端 Node React 前端工程师

Bean的作用域与Bean的生命周期详解

爱好编程进阶

Java 程序员 后端开发

CGBTN2108-DAY07总结复习

爱好编程进阶

Java 程序员 后端开发

Day433

爱好编程进阶

Java 程序员 后端开发

2022年编程语言排名,官方数据来了,让人大开眼界

爱好编程进阶

Java 程序员 后端开发

ftp命令解决文件的上传和下载

爱好编程进阶

Java 程序员 后端开发

ansible2

爱好编程进阶

Java 程序员 后端开发

测试驱动的代码重用_Java_Amr Elssamadisy_InfoQ精选文章