目录

尽管是从完善测试驱动开发的过程中产生了BDD,但BDD业已成为成熟的软件开发方法。本章我们将探讨BDD的具体方法,以及RSpec和Cucumber如何实现BDD。

BDD中的应用行为描述

行为驱动开发是实现应用的行为入手,这些行为被项目干系人从使用者的角度从应用的外部行为描述。

BDD中的行为描述暗示了几件事请。

首先,它建议我们在做任何版本发布的时候,都要从项目关系人的视角去理解项目,这样才会产生有用的软件。我们需要进入他们的专业领域,理解他们的机会和挑战,使用他们的词汇去描述他们想要得到的系统。我们可以使用领域驱动设计技术来达到目的。

其次,它暗示了项目干系人不止一个。我们不得不考虑所有可能对系统感兴趣的人,包括管理员、操作员、付款人等等。

BDD开发的原则

当我们提到BDD时认为它能生产出有用的软件,我们的意思是软件对项目关系人有价值,功能既不会少也不会多,刚刚好能足够满足需要,并且我们可以将成果展示出来。

我们总结了如下三个原则:

  • 只做足够的(Enough is enough) 前期规划、分析、设计的所有环节都有个传递过程,我们的成果不应该比一开始的要求的更少,但也没必要做多余的工作,那可是白费事儿。这通常可以通过自动化过程来检验。当然,实施过程也要避免自动化过度。
  • 只做有价值的发布(Deliver stakeholder value) 如果你所做的工作既不是干系人的价值也不会提升发布的效率,那么赶紧停止,去做些更有意义的事情。
  • 一切都是行为(It's all behavior) 无论在编码层、应用层还是更高的层次,我们都是使用相同的语言来描述的,不论所描述的对象处在什么样的粒度上。

(待续)