写点什么

介绍行为驱动开发

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

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

关注

评论

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

2023-08-06:小青蛙住在一条河边, 它想到河对岸的学校去学习 小青蛙打算经过河里 的石头跳到对岸 河里的石头排成了一条直线, 小青蛙每次跳跃必须落在一块石头或者岸上 给定一个长度为n的数组ar

福大大架构师每日一题

福大大架构师每日一题 左神

情感语音识别为人工智能赋予情感洞察的能力

来自四九城儿

HDC2023:元服务助力梦里水乡发展智慧文旅,让服务触手可及

最新动态

聊聊测试开发工程师的职责定位问题

大卡尔

测试开发

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

大瞿科技

Bito AI: IDEA 代码提效插件

Monin

AI IDEA chrom AIGC 代码提效

技术分享 | app自动化测试(Android)--App 控件定位

霍格沃兹测试开发学社

深入理解 HDFS(二):Replica

冰心的小屋

hdfs replica 大数据存储

Screen Recorder by Omi for Mac(屏幕录制软件) v1.3.2中文版

mac

屏幕录制 苹果mac Screen Recorder by Omi

Zebec 创始人 Sam 对话社区,“Zebec 生态发展”主题 AMA 回顾总结

西柚子

技术分享 | Appium 用例录制

霍格沃兹测试开发学社

技术分享 | app自动化测试(Android)--元素定位方式与隐式等待

霍格沃兹测试开发学社

Go 语法

小万哥

Go 编程 程序员 云原生 后端

软件测试 | 客户端怎么访问内网数据库

测吧(北京)科技有限公司

测试

HDC.Together 2023高校人才生态论坛成功举办

最新动态

技术分享 | App常见bug解析

霍格沃兹测试开发学社

语音识别唤醒词:让智能设备主动“听”你的声音

来自四九城儿

用React仿钉钉审批流、工作流

悠闲的水

前端 工作流 流程审批系统

Monkey基本参数介绍

霍格沃兹测试开发学社

技术分享 | Appium环境安装与架构介绍

霍格沃兹测试开发学社

自然语言理解问答对话文本数据,赋予计算机智能交流的能力

来自四九城儿

亲临时代,成为历史

少油少糖八分饱

读书感悟 财富 时代发展 职业道路 阅读笔记

代码随想录Day38 - 动态规划(一)

jjn0703

软件测试 | Cluster的启动

测吧(北京)科技有限公司

测试

软件测试 | 忘记MySQL的root密码

测吧(北京)科技有限公司

测试

8. 字符串详解

茶桁

Python

多方聚力共育人才,华为携手产学研赋能HarmonyOS开发者

最新动态

代码随想录Day39 - 动态规划(二)

jjn0703

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