最新发布《数智时代的AI人才粮仓模型解读白皮书(2024版)》,立即领取! 了解详情
写点什么

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

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

关注

评论

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

Wallys-Waterproof Enclosure Metal Outdoor

wallys-wifi6

IPQ4019 802.11ac

SWA实战:使用SWA进行微调,提高模型的泛化

AI浩

图像分类实战:mobilenetv2从训练到TensorRT部署(pytorch)

AI浩

ABAP Code Inspector 的一些高级功能分享

Jerry Wang

编程语言 代码扫描 SAP abap 5月月更

如何通过 Amazon Textract 改善新冠疫情期间的 PPP 贷款效率

亚马逊云科技 (Amazon Web Services)

效率 Amazon

Swin Transformer实战: timm使用、Mixup、Cutout和评分一网打尽,图像分类任务

AI浩

鸿蒙生态 | 从开发到运营,如何步步为“赢”?

最新动态

STM32F103系列开发_点亮LED灯

DS小龙哥

5月月更

开源集结令!参与开源之夏 EMQ 项目开发,赢最高 12000 元奖金

EMQ映云科技

开源 物联网 emq 开源之夏 5月月更

如何评估服务是否内存泄漏了?

BUG侦探

缓存 容器 内存泄漏

Wallys-QCN9074 /802.11ax/4x4 MU-MIMO /6GHz wifi6E

wallys-wifi6

深度探索通过数据共享(data sharing)优化 Amazon Redshift 工作负载分解

亚马逊云科技 (Amazon Web Services)

数据 负载

面试突击50:单例模式有几种写法?

王磊

Java java面试

亚马逊云科技 2022 年 3 月新服务新功能强势来袭

亚马逊云科技 (Amazon Web Services)

服务 亚马逊

聊武侠、讲段子,为了帮小白入门Spring Boot,这书有多拼!

博文视点Broadview

Kafka 万亿级消息实践之资源组流量掉零故障排查分析

vivo互联网技术

大数据 kafka 监控

MobileVIT实战:使用MobileVIT实现图像分类

AI浩

中国信通院发布“可信开源”全景观察 成立三大开源产业组织

中国IDC圈

开源 开源治理

OpenHarmony 3.1 Release版本特性解析——OpenHarmony硬件资源池化架构介绍

OpenHarmony开发者

OpenHarmony 多设备协同

ResNet实战:单机多卡DDP方式、混合精度训练

AI浩

BladeDISC 0.2.0更新发布

阿里云大数据AI技术

深度学习 存储 并行计算 异构计算 算法框架/工具

你想学Python爬虫?看看这篇关于开发者工具神器的博客吧

梦想橡皮擦

5月月更

VIT实战总结:非常简单的VIT入门教程,一定不要错过

AI浩

数字孪生智慧物流之 Web GIS 地图应用

一只数据鲸鱼

GIS 数据可视化 智慧物流 数字孪生 三维仿真

一文看懂博睿数据AIOps场景、算法和能力

博睿数据

AIOPS 智能运维 博睿数据

如何写好产品手册?

小炮

HashMap 源码分析-新增

zarmnosaj

5月月更

还在为模型加速推理发愁吗?不如看看这篇吧。手把手教你把pytorch模型转化为TensorRT,加速推理

AI浩

数字化转型背景下,企业如何做好知识管理?

小炮

企业知识管理

如何为服务网格做端到端测试

Flomesh

测试 Service Mesh 服务网格

EfficientNet实战:tensorflow2.X版本,EfficientNetB0图像分类任务(小数据集)

AI浩

图像分类

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