开工福利|免费学 2200+ 精品线上课,企业成员人人可得! 了解详情
写点什么

介绍行为驱动开发

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

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

关注

评论

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

chatGPT是割韭菜的镰刀还是创业的新风口? | 社区征文

迷彩

AIGC 生成式人工智能 三周年征文 三周年连更

叹服!阿里自述SpringCloud微服务:入门+实战+案例

做梦都在改BUG

Java 架构 微服务 Spring Cloud

从0到100:小区物业报修小程序开发笔记

CC同学

病假单|病假条|体检报告|诊断证明书|病历证明|医院化验单|ct报告|b超单|怀孕检查

病假条病假单

Github高赞!Alibaba最新亿级并发系统架构(2023 版全彩小册)

Java你猿哥

Java 架构 分布式 高并发 架构设计

从0开始:活动打卡小程序开发笔记

CC同学

太强了!阿里人用138个案例讲明白了Spring全家桶+Docker+MQ

做梦都在改BUG

Java spring 微服务 Spring Cloud Spring Boot

分享:集群吞吐量以1抵5,车企MySQL八大痛点的解决方案

OceanBase 数据库

数据库 oceanbase

即时通讯技术文集(第14期):WebSocket精华文章合集 [共15篇]

JackJiang

网络编程 即时通讯 IM

刘强:作业帮给OceanBase提了九条意见

OceanBase 数据库

数据库 oceanbase

广立微大数据平台全线升级 为芯片全生命周期保驾护航

科技热闻

GPIO实验-主芯片GPIO输出实验

鸿蒙之旅

OpenHarmony 三周年连更

硬核!阿里自爆虐心万字面试手册,Github上获赞89.7K

做梦都在改BUG

Java 程序员

OceanBase 4.0(小鱼)入选2023数字中国建设峰会“十大硬核科技”!

OceanBase 数据库

数据库 oceanbase

多种文件清理:Disk Cleanup Pro 激活版

真大的脸盆

Mac Mac 软件 磁盘清理 清理工具

Spring Security 中的基本认证过滤器链

Java架构历程

Java spring security 三周年连更

面试被Spring Cloud拿捏?莫慌,阿里人用五个模块讲明白了SpringCloud微服务架构

做梦都在改BUG

Java 架构 微服务 Spring Cloud

Wallys AP controllers devices/PQ4019 and IPQ4029 chipsets support 20 km remote transmission

Cindy-wallys

IPQ4019 ipq4029

一条SQL如何被MySQL架构中的各个组件操作执行的

华为云开发者联盟

sql 开发 华为云 华为云开发者联盟 企业号 5 月 PK 榜

数说热点 | 跟着《长月烬明》起飞,今年各地文旅主打的就是一个听劝

MobTech袤博科技

SAPUI5 本地工程中的键值对 sapux - true 的作用

汪子熙

前端开发 SAP Fiori SAP UI5 三周年连更

SpringBoot自动配置原理详解

做梦都在改BUG

Java Spring Boot

第四范式开源强化学习研究通用框架,支持单智能体、多智能体训练,还可训练自然语言任务!训练速度提升17%

Geek_32eb82

SpringBoot 项目解决跨域的几种方案

做梦都在改BUG

Java Spring Boot

小红书如何应对万亿级社交网络关系挑战?图存储系统 REDtao 来了!

小红书技术REDtech

云原生 存储 图数据库 跨云多活

Zero-ETL、大模型和数据工程的未来

Baihai IDP

人工智能 大模型 数据工程 企业号 5 月 PK 榜 LLMs

面试官:如何保证 RabbitMQ 的消息可靠性

做梦都在改BUG

Java 面试 RabbitMQ 消息队列 消息中间件

全球首个开发者村“开村”!数字之光在何处点亮?

白洞计划

膜拜!阿里人用10W字面经把Java面试官拿下了

做梦都在改BUG

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

八股MQ001——为什么需要使用MQ?

Codyida

后端

实战解读:隐钥科技数据库加密解决方案及场景化解析

Lily

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