写点什么

介绍行为驱动开发

  • 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:534610
用户头像

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

关注

评论

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

干货丨小程序开发秘籍,华为云这款服务器才是真香系列

YG科技

跨境选品工具推荐|这些选品神器,跨境卖家都在用!

Geek_ccdd7f

如何在淘宝的item_search_seller API中获取店铺列表?

技术冰糖葫芦

API 文档

埃森哲使用 Amazon CodeWhisperer 助力开发人员提高工作效率

亚马逊云科技 (Amazon Web Services)

Java Python 人工智能 S3 Amazon CodeWhisperer

人工成本高企?华为云耀云服务器L实例打通企业网站开发最后堵着

YG科技

一个工具让你明白“万丈高楼平地起”,拒绝重复造轮子!

伤感汤姆布利柏

编程 程序员 前端 低代码

小程序开发“巨坑”多,华为云这款轻量应用服务器轻松避坑

YG科技

IT打工人避雷针!华为云这款轻量应用服务器是网站开发“神器”

YG科技

火山引擎ByteHouse:如何优化ClickHouse物化视图能力?

字节跳动数据平台

数据库 大数据 云原生

如何获取item_search_guang API中与“爱逛街”相关的API接口?

技术冰糖葫芦

API 文档

JD-GUI 反编译jar包

javaNice

Java

HashMap HashTable ConcurrentMap 中key value是否可以为null

javaNice

Java

悦数图数据库 v3.6.0 发布:支持 Zone 管理,提升业务安全性和连续性

悦数图数据库

图数据库 悦数 杭州悦数

阿里云崩溃损失大?华为云耀云服务器L实例为企业保驾护航

YG科技

多个云平台,撑着零售消费企业们向上爬坡中

ToB行业头条

低代码:数字化转型趋势下的快速开发方式

互联网工科生

低代码 数字化

低代码PaaS开发平台

树上有只程序猿

低代码 PaaS 私有化部署

杭州悦数出席 2023 云栖大会计算巢专场,分享云上最佳实践

悦数图数据库

数据库 图数据库 悦数 杭州悦数

和鲸携手暨大经管,为复合型、应用型数据人才培养工作提供最佳实践

ModelWhale

人工智能 数据分析 经管 交叉学科 暨南大学

为中小企业发展按下“提速键”,华为云这款轻量应用服务器成双11爆款

YG科技

剧情继续:马斯克曝出OpenAI前员工举报信,董事会与奥特曼谈判回归

Openlab_cosmoplat

idea如何新建一个多模块的springCloud项目

javaNice

Java SpringCloud

软件测试/测试开发丨人工智能时代软件测试的变化

测试人

人工智能 软件测试

HarmonyOS NEXT如何解决不同多媒体技术开发难题

极客天地

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