请输入您要查询的百科知识:

 

词条 行为驱动开发
释义

行为驱动开发(Behavior-Driven Development)(简写BDD)

BDD 作为一种设计方法,可以有效的改善设计,并在系统的演化过程中为团队指明前进方向。

行为驱动开发的根基是一种“通用语言”。这种通用语言同时被客户和开发者用来定义系统的行为。由于客户和开发者使用同一种“语言”来描述同一个系统,可以最大程度避免表达不一致带来的问题。表达不一致是软件开发中最常见的问题,由此造成的结果就是开发人员最终做出来的东西就不是客户期望的。使用通用语言,客户和开发者可以一起定义出系统的行为,从而做出符合客户需求的设计。但如果光有设计,而没有验证的手段,就无法检验我们的实现是丌是符合设计。所以 BDD 还是要和测试结合在一起,用系统行为的定义来验证实现代码。

行为驱动开发是测试驱动开发的进化,但关注的核心是设计。行为驱动开发中,定义系统的行为是主要工作,而对系统行为的描述则变成了测试标准。在行为驱动开发中,我们需要使用通用语言来定义系统行为。而通用语言,实际上是一个最小化的词汇表。我们使用这些词汇来书写故事。选入词汇表的词汇必须具有准确无误的表达能力和一致的含义。例如“系统”这个词就不符合要求,因为在不同的语境(又称为上下文 Context)中,“系统”一词具有不同的含义。而“自动提款机”则明确标识了一个没有歧义的事物。

书写格式:

Story: 标题 (描述故事的单行文字)

As a [角色]

I want [特征]

So that [利益]

(用一系列的场景来定义验证标准)

Scenario 1: 标题 (描述场景的单行文字)

Given [上下文]

And [更多的上下文]...

When [事件]

Then [结果]

And [其他结果]...

实例:

Story: 帐户持有人提取现金

As an [帐户持有人]

I want [从 ATM 提取现金]

So that [可以在银行关门后取到钱]

Scenario 1: 帐户有足够的资金

Given [帐户余额为 $100]

And [有效的银行卡]

And [提款机有足够现金]

When [帐户持有人要求取款 $20]

Then [提款机应该分发 $20]

And [帐户余额应该为 $80]

And [应该退还银行卡]

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 1:41:18