写点什么

介绍行为驱动开发

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

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

关注

评论

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

YashanDB支持的存储压缩技术及效果评估

数据库砖家

把Nano Banana设计图送进工厂车间,造好物用了三步

脑极体

AI

flywa报错Migration checksum mismatch for migration version 1.1 -> Applied to database : 1332862643 ->

刘大猫

人工智能 算法 智慧城市 智慧交通 大模型

YashanDB在公共部门的潜力与应用

数据库砖家

YashanDB支持的多种存储引擎及应用场景解析

数据库砖家

YashanDB支持的数据库加密技术详解

数据库砖家

YashanDB支持的高级SQL特性实践

数据库砖家

YashanDB支持的数据库监控工具及实现方法

数据库砖家

YashanDB支持的数据库事务类型及应用分析

数据库砖家

YashanDB支持的数据模型类型及应用场景

数据库砖家

YashanDB支持的SQL优化技巧,打造极速查询体验

数据库砖家

YashanDB支持的插件扩展机制详解

数据库砖家

YashanDB支持的大数据技术:适合未来数据处理的方法

数据库砖家

YashanDB支持的多种数据类型及其应用价值

数据库砖家

YashanDB在云计算环境中的部署和优化技巧

数据库砖家

YashanDB支持的存储引擎及其性能比较

数据库砖家

YashanDB支持的多种认证方式及配置方法

数据库砖家

YashanDB支持的存储引擎架构特点详细介绍

数据库砖家

YashanDB支持的多语言开发环境及使用技巧

数据库砖家

YashanDB支持的接口与API使用方法详解

数据库砖家

YashanDB支持的数据加密传输技术剖析

数据库砖家

YashanDB在金融行业中的应用:如何保障数据安全?

数据库砖家

YashanDB在医疗行业中的应用:如何管理患者数据?

数据库砖家

YashanDB在云计算环境中的部署与管理实践

数据库砖家

YashanDB支持的存储引擎及其应用场景

数据库砖家

YashanDB智能分片技术介绍与应用指南

数据库砖家

工业数字化 信息化经验总结(8)

万里无云万里天

数字化转型 信息化 工业 工厂运维

YashanDB与主流开发框架的集成方法介绍

数据库砖家

YashanDB云原生部署策略及效果分析

数据库砖家

YashanDB支持的用户权限管理与安全策略

数据库砖家

YashanDB支持的多语言接口及开发指南

数据库砖家

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