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

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

关注

评论

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

Orca LLM:模拟 ChatGPT 的推理过程

3D建模设计

ChatGPT

你应该知道的几个国产化平台-行云管家

行云管家

信创 国产化 国产化平台

搭建无损网络的关键要素与技术

百度开发者中心

AIGC ChatGPT 千帆大模型平台

字节跳动基础架构编排调度团队论文入选云计算领域顶会 SoCC 2023

字节跳动云原生计算

大数据 云原生 编排调度

【案例教学】华为云API对话机器人的魅力—体验AI垃圾分类机器人

云计算 软件开发 华为云

如何实现一个数据库的 UDF?图数据库 NebulaGraph UDF 功能背后的设计与思考

NebulaGraph

数据库 UDF

WavJourney:进入音频故事情节生成世界的旅程

3D建模设计

LLM 大语言模型

一次性全讲透GaussDB(DWS)锁的问题

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号9月PK榜

分布式锁的三种实现方式!

树上有只程序猿

乐观锁 悲观锁 分布式锁

推动长期成功:NFT 推广机构如何制定可持续战略

区块链软件开发推广运营

数字藏品开发 dapp开发 区块链开发 链游开发 NFT开发

大模型驱动全面重构,百度联盟的增长飞轮转起来了

极客天地

如何编写优质Prompt的秘诀

百度开发者中心

#人工智能 ChatGPT 文心一言

8个免费的AI和LLM游乐场

3D建模设计

人工智能 AI LLM

苹果再发“黑科技”,合合信息扫描全能王新功能支持“360度立体式建模”

合合技术团队

苹果 科技 合合信息 #人工智能 扫描全能王

凝创新技术,汇数字力量 欧特克数字赋能『智』造汽车高峰论坛在沪开幕

E科讯

融云聊天室再放大招,服务更完整、集成更便捷

融云 RongCloud

产品 通信 服务 融云 属性

如何选择美国多IP站群服务器?学习如何统筹管理多个站点

一只扑棱蛾子

站群服务器

41 个下载免费 3D 模型的最佳网站

3D建模设计

模型 3D

百度肖阳:语义检索技术和大语言模型深度结合,重构百度搜索

极客天地

自然语言处理的卓越未来

百度开发者中心

#人工智能 ChatGPT 文心一言 千帆大模型平台

科兴未来 | 2023年河北国际先进技术创新挑战赛

科兴未来News

马斯克回应盖茨;谷歌反垄断案开庭;苹果发布 3nm 芯片的 iPhone 15丨RTE开发者日报 Vol.48

声网

TuGraph Analytics 流图计算之行为路径归因

TuGraphAnalytics

实时计算 图计算 归因分析 行为分析

更多场景、更多选择,Milvus 新消息队列 NATS 了解一下

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

glTF和GLB有什么区别?

3D建模设计

GLTF glb

矩视云平台SDK可以支持本地检测吗

矩视智能

机器视觉 深度学习、

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