写点什么

测试驱动的代码重用

  • 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:531187
用户头像

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

关注

评论

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

一张图,理清微服务架构路线(收藏)

C++后台开发

微服务 微服务架构 Linux服务器开发 C/C++后台开发 C/C++开发

离线数仓建设,企业大数据的业务驱动与技术实现丨03期直播回顾

袋鼠云数栈

2022年了,你还不会手撕轮播图?

知心宝贝

JavaScript 算法 前端 可视化 签约计划第三季

基于SpringBoot的OnlineMusicPlayer项目

bug郭

签约计划第三季 8月月更

PHP 项目对接视频号原来如此简单,小白也能轻松完成【带附件】

CRMEB

你的数据是如何泄露的?企业和个人应该这样做……

火绒安全

安全漏洞 数据泄露 黑客攻击

元宇宙|高阶音频处理能力,让声音「声临其境」

融云 RongCloud

音视频技术

招生报名小程序开发笔记一:开发背景和技术方案的选型确定

CC同学

Apache APISIX 在微软云 ARM 和 x86 服务器上的性能测试对比

API7.ai 技术团队

API网关 APISIX 微软云

一步一图带你深入剖析 JDK NIO ByteBuffer 在不同字节序下的设计与实现

bin的技术小屋

网络编程 Netty nio Java Concurrency java nio

武汉链(基于ETH)BSN官方DDC链上数据解析

BSN研习社

区块链

金融信创爆发年!袋鼠云数栈DTinsight全线产品通过信通院信创专项测试

袋鼠云数栈

【接入指南 之 云云接入】快速接入HONOR Connect平台(上)

荣耀开发者服务平台

IoT 新手指南 万物互联 荣耀 honor

云图说丨初识云速建站服务

华为云开发者联盟

云计算 网站 华为云 搭建网站

IDC:阿里云位居2021年中国关系型数据库市场第一

Lily

编译器优化:何为SLP矢量化

华为云开发者联盟

开发 编译器 SLP

袋鼠云数栈基于CBO在Spark SQL优化上的探索

袋鼠云数栈

DTMO直播预告|Taier的Web前端架构解析

袋鼠云数栈

实时开发平台建设实践,深入释放实时数据价值丨04期直播回顾

袋鼠云数栈

2022-08微软漏洞通告

火绒安全

microsoft 终端安全 安全漏洞

黄东旭,TiDB的灵魂骑手,和他的叛逆“问答”

B Impact

直播预告 | Authing 如何打造云原生 SaaS 产品架构?

Authing

实时云渲染——让元宇宙从科幻走入现实

Finovy Cloud

云渲染 GPU渲染

如何读取redis的手机号验证码数据,实现自动化登录测试

Liam

程序员 测试 自动化测试 测试开发 测试自动化

招生报名小程序开发笔记二:功能需求设计

CC同学

在小程序中SVG的打开方式

Geek_99967b

小程序 SVG

当科学家决定搞点“花里胡哨”的东西

图灵教育

开源一夏 | jQuery scroll() 滚动加载列表 获取腾讯云图片像素信息

六月的雨在InfoQ

开源 COS ​jQuery 8月月更

招生报名小程序开发笔记三:数据库设计

CC同学

阿里内部流出的绝密文档JDK源码学习笔记(2022版)限时分享

Java工程师

Java 源码 jdk

走好数据中台最后一公里,为什么说数据服务API是数据中台的标配?

袋鼠云数栈

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