AI实践哪家强?来 AICon, 解锁技术前沿,探寻产业新机! 了解详情
写点什么

介绍行为驱动开发

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

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

关注

评论

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

【深入了解系统性能优化】「实战技术专题」全方面带你透彻探索服务优化技术方案(方案篇)

码界西柚

性能优化 JVM 软件开发 4月日更 编程体系

Java运算符、标识符以及进制

timerring

Java

百度工程师的软件质量与测试随笔

百度Geek说

测试 软件质量 测试技术 智能测试 企业号 4 月 PK 榜

如何把Ai绘画工具放到我们的App中

Onegun

AI AIGC

从GitHub火到了头条!共计1658页的《java岗面试核心》,拿走不谢

Java java面试 Java八股文 Java面试题 Java面试八股文

如何调整和优化Go程序的内存管理方式?

Jack

实用技术宝典:MAC地址格式转换多种实现方式

小毛驴的烂笔头

linux命令 linux运维

🔥笔耕不辍,筑梦前行,三周年连更活动来啦!

InfoQ写作社区官方

热门活动 三周年连更

MySQL索引数据结构入门

江南一点雨

Java MySQL

OceanBase 4.1 发版 | 一个面向开发者的里程碑版本

OceanBase 数据库

数据库 oceanbase

Spring源码探索-核心原理下(AOP、MVC)

Java你猿哥

spring aop Spring MVC

4月22日,云数据库技术沙龙【杭州站】

NineData

MySQL 数据库 开发者 Clickhouse 沙龙预告

解密HTTP协议:探索其组成部分与工作原理

Java 计算机网络 网络协议 HTTP

未来已来,OpenHarmony 3.2 Release发布,迈入发展新阶段

OpenHarmony开发者

OpenHarmony

分享:作业帮在多云环境下的高可用双活架构优化实践

OceanBase 数据库

数据库 oceanbase

【实践篇】基于CAS的单点登录实践之路

京东科技开发者

CAS SSO 单点登录 企业号 4 月 PK 榜

CUDA编程基础与Triton模型部署实践

阿里技术

cuda 模型部署

Hybrid App 选用什么前端框架更好

Onegun

flutter React Native Hybrid

Github发布6天,Star55K+,这套笔记足够你拿下90%的Java面试

Java java面试 Java八股文 Java面试题 Java面试八股文

Java 源码重读系列之 HashMap

U2647

源码 hash map #java

一文解读基于PaddleSeg的钢筋长度超限监控方案

飞桨PaddlePaddle

人工智能 图像识别 飞桨

AI日课@20230411:Prompt的三个层次和三个“万万没想到!”

无人之路

ChatGPT

Kubernetes 本地持久化存储方案 OpenEBS LocalPV 落地实践下——原理篇

江湖十年

后端 #Kubernetes# Go 语言

Redis分布式锁一定注意两个坑

Java redis 分布式锁

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