写点什么

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

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

关注

评论

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

有趣、实用!专为小白设计的Python零基础入门到人工智能教程

我再BUG界嘎嘎乱杀

Python 人工智能 后端 入门 零基础

微信多开、消息防撤回工具 WechatTweak for Mac v3.8.8.18中文集成版

Mac相关知识分享

办公软件 Mac软件 mac软件下载 微信多开 微信软件

强大的音频处理软件Celemony Melodyne 5 Studio for mac(多功能音频编辑)v5.4.0.036版

Mac相关知识分享

Mac软件 音频处理 音频工具 音频软件

TDengine Cloud 正式入驻 Azure Marketplace,服务中国企业出海

TDengine

数据库 tdengine

软件测试学习笔记丨Python 内置库 科学计算

测试人

软件测试

制造业管理软件业务探讨和设计

执于业务

一文彻底理解机器学习 ROC-AUC 指标

EquatorCoco

人工智能 机器学习

云原生NPM与传统NPM的差异

乘云数字DataBuff

云原生 npm ebpf

UE4/UE5像素流送云推流|程序不稳定、弱网画面糊怎么办?

点量实时云渲染

UE5 像素流送 像素流 像素流送技术 UE4

必不可少的办公软件Microsoft Outlook 2021 LTSC for Macv16.86中文正式版

Mac相关知识分享

办公软件 Mac软件 mac软件下载

比特币不是解决货币伦理的「灵丹妙药」

TechubNews

区块链海外运营推广方案

区块链开发团队DappNetWork

三维建模软件Rhinoceros 8 for Mac(犀牛8 mac版)v8.8.24163.12482版

Mac相关知识分享

Mac软件 三维建模 mac软件下载

QLab Pro for Mac(音频剪辑软件)v5.4.0版

Mac相关知识分享

音频制作 Mac软件 音频软件 mac下载

以容器方式使用桌面系统

walker12138

事务中存在多线程,怎么处理?

江南一点雨

Java spring

架构实战营 - 模块七 - 作业

小畅

清华大学出版,最适合Python小白的零基础入门教程!

我再BUG界嘎嘎乱杀

Python 编程 软件开发 入门 零基础

DeFi(去中心化金融)是什么,DeFi应用有哪些?如何利用它赚钱?

区块链开发团队DappNetWork

DeFi流动性挖矿 NFT链游 区块链开发 交易所源码 dapp合约开发

Simplemind pro for Mac(mac上的思维导图软件)v2.4.0版

Mac相关知识分享

Mac 办公软件 Mac软件 思维导图软件 思维导图绘制软件

C++面向对象语言自制多级菜单

快乐非自愿限量之名

c++ 算法 服务器

AGI远不止ChatGPT!一文入门AGI通识及应用开发

神州数码

AI AIGC ChatGPT

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