提供给每个人的行为驱动开发

作者 Craig Wickesser译者 宋玮 发布于 2008年9月30日 上午9时51分

社区
Java
主题
协作,
敏捷技术
标签
BDD,
Java SE,
Groovy
在软件开发过程中实现“最佳事件”有的时候可能让人有些畏缩不前,而且时常导致开发者去抄近路,仅仅是“把它做完”。行为驱动开发(BBFD)是另一种可以极大地提升开发者、测试者、管理者和业务参与者(比如客户)之间协作的技术。作为一种在软件开发项目上值得尝试的实践,它正逐步得到采用和认可。

在BDD领域有好几个框架使得开发者可以采用这种思路。这些框架包括了 RSpecJBehaveJSSpecNSpec、以及其它框架。然而有一个框架是为使BDD尽可能容易使用而设计的。那就是easyb
一个针对Java平台的行为驱动开发框架。通过使用基于领域特定语言(DSL)的规范,easyb的目标是使文档可被执行而且容易阅读。
最近,Rod Coffin写了一篇题为“Behavior-driven development with easyb”的文章。Rod很好地介绍了BDD并专门介绍了easyb框架。Rod总结了easyb所能提供的东西以及一开始怎么做,
使用easyb,你可以编写用户故事、系统组件的开发规范、描述UI交互以及更多东西……easyb规范被描述成Groovy脚本。因为Gvoovy语言的天性,以及对Groovy脚本超越类特性的宽容,easyb规范是相对自由的程序员特定语法,相反,它把焦点放在了通信行为上。
Rod通篇都提供了使用easyb定义行为的例子,而且他的文章很值得仔细研究以获得更多知识。InfoQ并不想重复他文章中已经涵盖的东西,而是采访了easyb的开发团队以打探其下一步工作及项目走向。

InfoQ: easyb的路线图是怎样的?
easyb-dev:Easyb期待着在不久的将来发布1.0版本。它将包括大量报表增强,包括所有报表的一个html版。Intellij插件有大量已升级特性,使得在我们喜爱的IDE中使用easyb成为一种享受。与Junit集成也即见到曙光。无论其目标是使用easyb来连接已有测试类库还是仅仅为找到一种把easyb引入对新概念宿有敌意的环境中的简便方法,我们都希望能减少些障碍。

一些新的组件都会在1.0版中初次亮相。Easiness,一个用于构建故事并实现它们的Web应用,将有助于把行为测试带给我们中间的任何一人,即使他是非技术人员。为什么不把最简单的Web框架(Grails)与最简单的BDD工具(easyb)结合在一起呢。这正是新的Grails插件将要干的事,而且在1.0版本发布前后,这个插件至少可以推出beta版。在路线图上(1.0之后),Eclipse插件是一件大事。Intellij插件这么好用,我们不想让使用其它IDE的用户遭到冷落。

InfoQ: 在easyb Web站点上有与Maven和Spring集成(或其它框架)的更多信息吗?
easyb-dev: 请密切留意easyb.org的页面,因为cookbook将会露面。这些内容会广泛覆盖easyb的常用方法,而且带有例子。肯定包含在内的热点话题包括Spring、JUnit和mocking。

InfoQ: easyb有使用其它语言(即: ActionScript、Python、Ruby)的想法吗?
easyb-dev: Ruby社区已经有一个与easyb非常类似的很好的产品,叫做rspec。开发团队中的许多人对于你所提到的几种语言都有特别大的兴趣,但是他们现在没有计划把easyb带给jvm之外的任何语言。在团队中这是一致意见,我们不能分配足够的时间和精力把同样伟大的产品带给这些平台。可是,我们鼓励有兴趣把easyb扩大到其它语言的任何人成为我们easyb团队的一员。

总之,行为驱动开发是一种提升软件开发项目上技术(开发者、测试者等等)和典型的非技术(管理者、客户等等)参与者协作的一种技术。easyb的目标是提供一个对所有参与者来说都易于操作的框架,而且正处于积极地开发当中。

你正在你的软件项目上使用BDD吗?如果是,对于它如何改善项目成功方面你怎么想?如果没有使用,为什么不试一下呢?如果你已经尝试过,为什么它没有“坚持”下去呢?

查看英文原文:Behavior-Driven Development for Everyone