50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

介绍行为驱动开发

  • 2015-02-16
  • 本文字数:950 字

    阅读完需:约 3 分钟

当定义了新项目的期望结果后,行为驱动开发 (BDD)有助于克服开发人员对构建产品需求的理解与业务人员对需求引起的技术困难理解之间的差距。其原因是两组之间的沟通得到了改善,Alistair Stead 和 Konstantin Kudryashov 两人都在Inviqa 工作,在他们的 BDD 入门指南中针对业务和技术人员做了解释。

Stead 和 Kudryashov 把 BDD 分成了两个主要的实践:用通用语言写用例来描述行为,以及用这些用例作为自动化测试的基础。结合这两个实践就可以为用户验证其功能性,以及在整个项目周期中系统的行为与所定义的一致。

Stead 和 Kudryashov 指出的 BDD 的关键元素包括:

  • 创建目标,最好在项目开始的时候从业务的角度定义具体的,以及可衡量的目标。
  • 影响地图( Impact Mapping),是找到一种可以达到设定目标的、对业务最重要的那些功能的方法。影响地图可视化了为什么这些功能是需要的,以及为达到目标需要改变的那些行为。
  • 复杂度分析,找到一种最适合开发与合作方法的方式,例如 Cynefin
  • 用用例做计划,通过用例来描述业务规则,以及提供上下文来避免误解。这些用例接下来还应该转化成开发阶段所使用的测试用例。
  • 通用语言( Ubiquitous language,这是来自于领域驱动设计(Domain-Driven Design(DDD)) 方法的术语,指的是开发人员和业务人员为某个领域中的术语达到共同的理解,而使用的一种共享语言。
  • 通过用例开发。通过一种形式语言和类似于 Cucumber 的自动化工具实现,用例可以转化成可执行的规范,从而验证实现的功能。
  • BDD**** 循环。能够提供对系统大变更的支持。使用可执行的规范,并将单元测试作为系统的各个部分应该如何表现的对象规范,就能够获得可以处理任意大小规模变更的能力。

在一次对 Dan North (他在 2006 年左右开发了 BDD)的采访中,他强调 BDD 不是关于测试的,它是在应用程序存在之前,写出用例与期望,从而描述应用程序的行为,并且促使在项目中的人们彼此互相沟通。North 说明了保持人们互相亲近的重要性,分离式结构或跨地域团队是成功实施 BDD 一大障碍。

查看英文原文: Introducing Behaviour-Driven Development


感谢邵思华对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2015-02-16 09:534599
用户头像

发布了 55 篇内容, 共 16.0 次阅读, 收获喜欢 8 次。

关注

评论

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

「架构师训练营」第 4 周 学习总结

guoguo 👻

极客大学架构师训练营

Python多重继承问题之MRO和C3算法

wangkx

Python MRO C3算法 多继承

游戏夜读 | 不受欢迎的那个人

game1night

架构师训练营 第4周作业

Lingjun

极客大学架构师训练营

企业级业务架构设计读书总结

烟雨濛濛

【架构师训练营 - 周总结 -4】互联网系统架构演进

小动物

总结 极客大学架构师训练营 第四周

架构师训练营第四周总结

suke

极客大学架构师训练营

ARTS - Week Six

shepherd

Java algorithm

命题作业和总结—第四周

于江水

极客大学架构师训练营

一份还热乎的蚂蚁金服面经(已拿Offer)!附答案!!

猿灯塔

Java

万文长字JVM总结,面试必备

root

Java CMS JVM 垃圾回收

Week4-Homework

Kafka面试题——20道Kafka知识点

奈学教育

Kafka知识点

一个典型的大型互联网应用系统使用了哪些技术方案和手段,主要解决什么问题?请列举描述。

老姜

架构师训练营 -- 第四周作业

花花大脸猫

极客大学架构师训练营

架构师训练营 第四周 学习总结

一雄

学习 极客大学架构师训练营 第四周

系统架构的一些思考

jason

第四周作业

田振宇

二胖参数校验的坎坷之路

root

Java springboot 参数校验 级联校验 Hibernate-Validator

架构师训练营第四周作业

Linuxer

极客大学架构师训练营

架构师训练营 第 4 周总结

Lingjun

极客大学架构师训练营

架构师训练营 Week04 学习心得

极客大学架构师训练营

架构师训练营 -- 第四周学习总结

花花大脸猫

极客大学架构师训练营

Kafka面试题——20道Kafka知识点

古月木易

Kafka知识点

从业务代码到Openjdk源码的debug之路

飞影

Java debug 深入理解JVM Openjdk TLAB

架构师训练营 第四周 作业

一雄

极客大学架构师训练营 作业 第四周

【架构师训练营 - 作业 -4】互联网应用面对的问题

小动物

极客大学架构师训练营 作业 第四周

Elasticsearch从入门到放弃:分词器初印象

Jackey

elasticsearch

以懂行助力加速:华为中国生态之行2020蕴藏的时代钥匙

脑极体

管理学概念 - 特纳论断

石云升

核心竞争力 特纳论断

架构师第四课总结

老姜

介绍行为驱动开发_语言 & 开发_Jan Stenberg_InfoQ精选文章