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

  • Craig Wickesser
  • 宋玮

2008 年 9 月 30 日

话题:Java语言 & 开发文化 & 方法

在软件开发过程中实现“最佳事件”有的时候可能让人有些畏缩不前,而且时常导致开发者去抄近路,仅仅是“把它做完”。行为驱动开发(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

Java语言 & 开发文化 & 方法