阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

BDD 工具 Cucumber 并不是一种测试工具

  • 2015-04-02
  • 本文字数:1101 字

    阅读完需:约 4 分钟

如果你使用 Cucumber 的目的就是为了进行自动化测试,那么其实你还可以做得更好。你可以在 Cucumber 中编写用户场景,让它表现出业务规则而不仅仅是 UI 功能。这样你就能够让业务分析师加入这个过程,在编码工作开始前编写场景。程序员们就能够按照这个清晰的规范进行编码工作了。这种方式就是行为驱动开发(BDD)。 Aslak Hellesøy 表示,他总是看到使用者对Cucumber 的错误用法和错误理解。

Hellesøy 在 2008 年时创建了 Cucumber,在头三年之内下载量就达到了 5 百万。他始终强调,Cucumber 首先是一种协作工具,它旨在让团队中的所有成员之间达成共识。Cucumber 的特性编写应当早于具体用代码实现这些特性。当你使用 BDD 方式编写实例的时候,回归测试会自然地成为一种副带的结果,但测试本身并不是这个活动的目的。

随着 Cucumber for JavaScript 项目的出现, Julien Biezemans 看到了 BDD 在 web 开发中带来的好处,但他也同时表示,Hellesøy 所提到的那种误解,即将 Cucumber 作为一种纯粹的测试工具的想法在这个项目的应用中也是屡见不鲜。此外,对于 Biezemans 来说,BDD 也是一种鼓励所有参与者进行交流的方式,他们通过编写实例的方式让工作目标变得更清晰,并减少歧义,让每个人对于他们所创建的产品达成共识。将这些交流对话所产生的场景进行自动化,只是一种可选的步骤。

Hellesøy去年曾经表示:为了充分利用Cucumber,你必须遵循某种流程,并且让软件团队中的大多数人加入其中。这个流程就是BDD,而 Gojko Adzic 之后将这一方式重新命名为实例化需求(Specification by Example)。将这个流程稍微简化一下的话,那么它主要包括这两项活动:

  • 需求工作间,此时业务分析师要对需求负责,同时与程序员与测试人员一起讨论要开发的特性(这三种角色也通常称为三个好朋友),与此同时,他们共同编写软件应该如何表现的实例,把它作为 Cucumber 中的场景。
  • 由外而内的开发,程序员会增量式地进行代码编写,并且使用 Cucumber 运行场景,直到特性通过测试为止。程序员通常会从最接近用户的功能开始,然后逐步接近核心领域,这也是这一活动命名的由来。

Liz Keogh 则提示,定义BDD 是一件困难的事,因为这种方法学是从其它许多方法和哲学中派生出来的,因此她发现很难划分一个明确的边界,以确定哪些方法和哲学不属于它。Keogh 转而认为,BDD 其实是一种术语,它的核心是对话、协作与场景,以及通过自动化的方式实现它们。在这个核心之外是一系列其它实践,包括Hellesøy 所提到的内容以及各种工具,包括Cucumber、 JBehave SpecFlow 。Keogh 用以下这段话表示了她对 BDD 的定义:

在对话中使用实例,以表现某种行为

查看英文原文 BDD Tool Cucumber is Not a Testing Tool

2015-04-02 08:465539
用户头像

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

关注

评论

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

云栖大会“云计算加速开源创新论坛” 揭晓 2022 年度开源人物

云布道师

开源 云栖大会

BI分析助力企业数字营销与运营,瓴羊Quick BI让企业决策更精准

巷子

Webpack配置实战

Geek_02d948

webpack

Koordinator 1.0 正式发布:业界首个生产可用、面向规模场景的开源混部系统

云布道师

云原生 云栖大会

2022VDC游戏生态专场:打造更健康长久的游戏生态

Geek_2d6073

web3.0区块链挖矿游戏dapp系统开发合约定制(成熟技术)

开发微hkkf5566

SpringBoot 自动装配原理

Jeremy Lai

springboot 自动装配

fastposter v2.10.0 简单易用的海报生成器

物有本末

海报 小程序营销 海报生成 海报小程序

低代码实现探索(五十二)基于模板方式基组件

零道云-混合式低代码平台

谈谈 Angular 应用 Feature Module 的延迟加载话题

Jerry Wang

typescript angular web开发 SAP 11月月更

阿里巴巴云生态 9 大开源项目重磅发布

云布道师

云计算 开源 2022云栖大会

Vue实战必会的几个技巧

yyds2026

Vue

阿里云丁宇:交付管理一体化的云原生应用平台 KubeVela 再升级

云布道师

云原生 2022云栖大会

web3.0多链挖矿dapp系统开发技术详情

开发微hkkf5566

当大火的文图生成模型遇见知识图谱,AI画像趋近于真实世界

阿里云大数据AI技术

深度学习 PyTorch 知识图谱 企业号十月 PK 榜 图文生成

webpack实战,手写loader和plugin

Geek_02d948

webpack

新闻速递 | KaiwuDB 亮相世界互联网大会

KaiwuDB

数据库 大数据 互联网

基线提升至96.45%:2022 司法杯犯罪事实实体识别+数据蒸馏+主动学习

汀丶人工智能

知识蒸馏 命名实体识别 11月月更

阿里和蚂蚁集团共建并开源的国内第一款IDE框架——OpenSumi新版本发布

云布道师

#开源项目 2022云栖大会

Vue组件是怎样挂载的

yyds2026

Vue

高并发系统谨防被一行日志击垮

小小怪下士

Java 程序员 高并发

Webpack构建速度优化

Geek_02d948

webpack

你要的react+ts最佳实践指南

xiaofeng

React

一文读透react精髓

xiaofeng

React

redux原理是什么

xiaofeng

React

ModStartBlog v6.1.0 界面显示优化,富文本升级

ModStart

列存数据仓库怎样更高效

王磊

Jenkins 安全tips

SEAL安全

安全 jenkins

Vue模板是怎样编译的

yyds2026

Vue

李珣同款爱心特效代码,加DIY教程,快拿去送给你喜欢的那个ta吧。

bug菌

跳动的爱心 代码爱心 爱心代码

推动中小企业数字化转型,终于“有据可依”了

雨果

低代码 数字化转型

BDD工具Cucumber并不是一种测试工具_语言 & 开发_Jan Stenberg_InfoQ精选文章