2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

六种方式改进行为驱动开发

  • 2015-08-06
  • 本文字数:1000 字

    阅读完需:约 3 分钟

行为驱动开发(BDD)的做法经常与常用的推荐做法相矛盾。在分享自己的经验以及同BDD 思想领袖进行讨论的过程中, Joe Colantonio 阐述了他注意到的六个常见问题以及如何进行改进。

保持BDD 实现独立。包含实现细节,如GUI 中的按钮,会使维护更加困难。应该重点关注用户做什么,而不是怎么做。一种实现方式是,在编写场景时,保持一种声明式风格而不是一种命令式风格。Colantonio 认为,团队在BDD 实现中包含实现细节的一个原因是,他们试图将BDD 当作一个自动化测试框架使用,而不是按照它的初衷当作协作工具。

自动化是额外收益,而不是BDD 的初衷。Colantonio 提到了 Seb Rose ,后者曾表示,同业务或客户那边的人协作失败就是一个将 BDD 工具当作自动化测试工具使用的反模式。2008 年, Aslak Hellesøy 创建了 BDD 工具 Cucumber 。他强调,Cucumber 首先是一个协作工具,旨在使所有的团队成员有一个共同的认识。Cucumber 特性应该在编码实现该特性之前编写。当使用BDD 编写示例时,回归测试是一个副产品,测试并不是活动本身。

一切均关乎对话。在Colantonio 看来,BDD 的优点在于,提供了一个避免错误假设和误解的机会,使人能够在编写代码之前发现潜在的Bug。虽然他认为,对于某些团队而言,专注于对话而不是写下需求可能会成为一个新的现实,但他同时指出,转而采用BDD 和敏捷的团队应该注意,不要将场景当作需求。

一个场景不是一项需求。它们有关系,但是,一个场景集合对应一项需求。Colantonio 发现,将一个场景视为一项需求会导致各种各样的问题,他倾向于在同产品经理讨论的过程中创建小型示例,比如, Gojko Adzic Specification by Example 上所描述的技术。

不要把什么都当作 UI 测试。场景是以用户的视角编写的,但 Colantonio 指出,这并不是说功能一定要通过 UI 进行测试,应用程序 UI 的内部测试组件又快又稳定。今年早些时候,Konstantin Kudryashov阐述了如何将BDD 同领域驱动设计(DDD)一起使用,减少面向UI 的场景的数量。首先检查工作域,只增加对UI 而言非常关键的场景。

实施Scrum 并不等于说实施敏捷。通过实施Scrum,团队常常会认为,他们自然而然地也在实施敏捷,但Colantonio 认为,这常常是不对的。在代码编写完成后编写单元测试,或者事后编写某种验收或集成测试,可能由一个单独的团队编写,在他看来,这些都表明团队没有采用一种敏捷方法。

查看英文原文: Six Ways of Improving Behaviour-Driven Development

2015-08-06 08:002682
用户头像

发布了 1008 篇内容, 共 441.8 次阅读, 收获喜欢 346 次。

关注

评论

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

Golang 真的好用吗?

极客时间

编程语言 Go 语言

我不是怕表错态,而是怕我会不自觉地捍卫它

池建强

个人成长

回"疫"录(4):见证历史

小天同学

疫情 回忆录 现实纪录 纪实

OpenCV 在 Android 上的应用

fengzhizi715

android OpenCV 计算机视觉

判断链表是否有环

Kenn

算法 链表 双指针 Brent

“IPO上市扒层皮”,以阿里巴巴为例看看公开了什么 | 如何读IPO招股书(3-a)

赵新龙

阿里巴巴 IPO 招股说明书

批注MYSQL开发规范,助你了解其背后的“道”

三石

数据库规范 规范背后的原理 白话规范

祝这些不要脸的王八蛋同行家里着火

二爷

哪儿有真实靠谱的数据,说谎话必须负责的那种?| IPO招股说明书(1)

赵新龙

阿里巴巴 IPO 旷视科技 数据

程序员陪娃漫画系列——吃饭

孙苏勇

程序员 生活 陪伴 漫画

二叉树的先序中序后序递归实现

Kenn

算法 递归

曾国藩的人生“六戒”

霍太稳@极客邦科技

身心健康 个人成长 心理学

二叉树先序中序后序的非递归实现

Kenn

算法

浅谈行业软件

孙苏勇

软件 思考 转型

如何读IPO招股说明书(2)到哪儿下载招股书?

赵新龙

IPO 上市 招股说明书

演讲的秘诀

伯薇

个人成长 演讲 追求极致 完美主义

“消灭你,与你无关”——阿里巴巴的风险 | 旧文重发

赵新龙

阿里巴巴 风险 蒋凡 IPO

Nginx学习

陈雷雷

nginx

“IPO上市扒层皮”,以阿里巴巴为例看看公开了什么 | 如何读IPO招股书(3-b)

赵新龙

阿里巴巴 IPO 招股说明书

像产品设计一样思考、像程序运行一样执行

水色

ZGC都出来了,你还不懂G1?

大白给小白讲故事

G1 JVM

不知不觉,写了10000字了

小天同学

写作 个人感想 思辨

我们是时候降低对完全自动驾驶的期望了

赵钰莹

自动驾驶 AI

迷茫时,想想能为这个世界做些什么就好了

霍太稳@极客邦科技

身心健康 个人成长 团队协作

Harbor和Dragonfly双剑合璧 打造容器镜像运维新模式

亨利笔记

容器 k8s Harbor dragonfly 镜像

运维 Harbor 镜像仓库的法宝:Operator

亨利笔记

Kubernetes 容器 k8s Harbor operator

死磕Java并发编程(4):happens-before是什么?JMM最最核心的概念,看完你就懂了

Seven七哥

Java Java并发 happens-before JMM

vSphere 7融合Kubernetes,构建现代化应用的平台

亨利笔记

Kubernetes 容器 云原生 k8s vSphere

“WHY-HOW-WHAT”这个被誉为伟大的领袖如何激励行动的黄金圈法则,非常值得大家学一学!

数列科技杨德华

思维方式

如何避免把中台变成外包团队

松花皮蛋me

数据中台

JCJC错别字检测JS接口新增CORS跨域支持

田春峰-JCJC错别字检测

六种方式改进行为驱动开发_研发效能_Jan Stenberg_InfoQ精选文章