写点什么

BDD 就是做得比较好的 ATDD 吗?

  • 2011-02-22
  • 本文字数:1095 字

    阅读完需:约 4 分钟

在行为驱动开发社区,一个老问题又以一种新的形式被提了出来:行为驱动开发(BDD)是不是就是做得比较好的验收测试驱动开发(ATDD)?尽管社区成员列举出了一些不同点,但 Dan North 呼吁大家不要去关注这种叫做“神奇”测试驱动开发的观点。

当 Dan率先介绍行为驱动开发时,他改变了在TDD 中广泛使用的语言,转而使用行为性词汇来代替测试词汇。敏捷社区中有些成员认为BDD就是“做得比较好的TDD”。目前,像 Cucumber JBehave SpecFlow 之类的工具已经比较成熟,可以在 BDD 场景中,以用户的视角描述整个系统或应用的行为,为验收测试驱动开发注入了“Given,When,Then”这样的语言。BDD 的边界还不是很清晰,社区正在再次讨论这个老问题,并问道“是什么让 BDD 变得与众不同?”。

在他的发言“如何向企业推销 BDD ”中,Dan 提出了这个问题,然后解开了 BDD 的定义,展示了如何在软件开发的不同阶段和范围内应用 BDD:

“BDD 是第二代由外至内的、基于拉动的、多利益相关者的、多尺度的、高度自动化的敏捷方法。”

Dan 也承诺在日后会对BDD 做更清晰的定义 GivWenZen 框架的作者 Wes Williams回复到

“我认为这个定义漏掉了一个关键部分,我们一直在关注协作和学习。大概是 2005 年的时候,我做过一个项目,使用了‘ATDD’,我们有类似 BDD 的目标,但没有使用 Given When Then 这样的语言。”

在 Dan 最初的 BDD 介绍中,他说正是由于测试中使用语言的水平比较低,从而促使他使用“应该”来代替“测试”。 Neel Lakeshminarayan 就这点说道

“BDD 更多的是提倡使用‘恰当的词汇’——一个重要的区别。这很微妙,但非常强大……你开始思考各种差异很大的问题。你可能会听到‘预期的行为是什么?’,而不是‘我应该测什么?’。这会让你以不同的方式去思考,因此,你会编写出截然不同的代码。”

因此不同点是什么呢?除了使用不同的语言,Dan 从更广泛的哲学角度强调了 BDD 的自我学习方面,他称之为“蓄意发现”,“而不是偶然发现”。他把蓄意忽略我们的技术、人员和过程作为目标;尽管我们尽心尽力,但我们总是忽略了这一点。然而,他让社区缩小 BDD 和 TDD,或者做得比较好的 ATDD 之间的差异,他请求道

“我想避免‘因为……,BDD 要优于 TDD’,或者更有甚者‘BDD 不同于 TDD(就如原先设想的那样),因为……’。TDD 是令人惊叹的,它最初的概念就是用于解决我一直想用 BDD 解决的问题的……它并不是做出优秀设计的唯一方法,BDD 也不是。BDD 是有关了解客户需求,并让这种对需求的逐渐理解来驱动软件开发……总是试图去获取更深入的理解。但我敢打赌,如果你问 Kent Beck 什么是 TDD,他的回答会是相同的。”

查看英文原文: BDD: ATDD done well?

2011-02-22 01:404722
用户头像

发布了 38 篇内容, 共 84366 次阅读, 收获喜欢 1 次。

关注

评论

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

uniapp 在微信小程序中图片宽度显示问题

ModStart

非正式全面解析 NebulaGraph 中 Session 管理

NebulaGraph

图数据库 会话管理 session管理

上云节省 35%计算资源,420 个运维人天:运满满实时计算实践和思考

Apache Flink

大数据 flink 实时计算

MASA MAUI Plugin (七)应用通知角标(小红点)Android+iOS

MASA技术团队

blazor MASA MAUI MASA Blazor

一家可靠的HDI板厂,需要具备哪些基本条件?

华秋PCB

生产 工艺 PCB PCB电路板

信息安全等级测评师证书有效期是多久?谁能告诉一下?

行云管家

等保

智能低代码平台,驱动企业数字化转型

元年技术洞察

低代码 数字化转型

龙蜥开发者说:众人拾柴火焰高!聊一聊我在社区的所思所想 | 第 14期

OpenAnolis小助手

开发者 开源社区 龙蜥开发者说 LoongArch 架构 红旗软件

哪些java培训中心比较靠谱?

小谷哥

华为云助推武水集团项目成功入选住建部“智慧水务”典型案例!

华为云开发者联盟

云计算 后端 华为云 12 月 PK 榜

掌握这5大功能,解锁鲲鹏开发新发现

华为云开发者联盟

开发 华为云 12 月 PK 榜

火山引擎DataTester:如何做A/B实验的假设检验

字节跳动数据平台

大数据 AB testing实战 12 月 PK 榜

和鲸科技入选 2022 中国数据智能领域最具商业潜力的科技 Cool Vender丨甲子20 榜单

ModelWhale

数字化转型 数据智能 科技企业 榜单

使用 ClusterResourceSet 为 Cluster API 集群自动安装 CNI 插件

Se7en

百家号奇妙未来季创作大赛落幕!AIGC开启内容创作新征程

科技热闻

诚迈科技董事长王继平赴国创中心交流车用操作系统合作事宜

科技热闻

前端程序员培训学习有哪些攻略

小谷哥

java编程培训怎么学习?

小谷哥

Python图像处理丨详解图像去雾处理方法

华为云开发者联盟

Python 人工智能 华为云 12 月 PK 榜

大数据程序员培训机构怎么选

小谷哥

Triple 协议支持 Java 异常回传的设计与实现

Apache Dubbo

Java 开源 微服务 gRPC dubbo

PHP 中类自动加载相关文件分析

ModStart

如何通过Java应用程序将Word转为Excel

在下毛毛雨

Java Excel word 文档 转换

BitSail“拍了拍”你,并给你一份快速入门指南

字节跳动数据平台

开源 数据引擎 12 月 PK 榜

前端程序员培训学习后的就业前景怎么样

小谷哥

2022年京东读书年度之书,获评读者最喜爱互联网+的就是……

博文视点Broadview

容器安全的三大挑战

SEAL安全

容器安全 12 月 PK 榜

多模态交互在数智化营销服中的技术实践

中关村科金

人工智能 算法 全栈 数字化转型 多模态

2023年内蒙古等保测评公司有哪些?五家还是6家?

行云管家

等保 等保测评 内蒙古

活动预约报名系统怎么做?快来借鉴「苍山徒步之家」的经验做法

天天预约

微信小程序 SaaS 数据统计 预约工具 活动报名

数字化时代,校园生活还可以这样过

华为云开发者联盟

数据库 后端 华为云 12 月 PK 榜

BDD就是做得比较好的ATDD吗?_研发效能_Elizabeth Keogh_InfoQ精选文章