写点什么

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

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

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

关注

评论

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

2023年度产品评选!人人都是产品经理携手boardmix博思白板联合呈现!

彭宏豪95

产品 产品经理 SaaS 在线白板 效率软件

数据库与低代码:加速开发,提升效率的完美结合

不在线第一只蜗牛

MySQL 数据库 sql 低代码

实时云渲染赋能2023湾区文采会元宇宙虚拟展厅

3DCAT实时渲染

云VR 元宇宙虚拟展厅 线上展厅

1 月 21 日,三件事儿,线上不见不散丨社区活动

声网

软件测试/测试开发全日制|Pyest结合json实现数据驱动测试

霍格沃兹测试开发学社

Project软件的六大核心作用详解

PingCode

项目管理 Project软件

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

EOSdreamer111

软件测试/测试开发/全日制/测试管理丨Vue 页面布局组件-Semantic

测试人

软件测试

深度调光降压型 LED 恒流驱动器

智趣匠

API设计:从基础到优秀实践

高端章鱼哥

API

软件测试/测试开发全日制|Pytest结合CSV实现测试的数据驱动

霍格沃兹测试开发学社

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

加密眼界

倒计时6天|PolarDB开发者大会,我们讲什么?看什么?玩什么?

阿里云瑶池数据库

数据库 阿里云 云原生 开发者大会

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

大瞿科技

体育直播系统源码提供哪些安全购买保障策略

软件开发-梦幻运营部

探索AI技术的奥秘:揭秘人工智能的核心原理

快乐非自愿限量之名

人工智能 机器学习 AI技术

货拉拉智能监控实践:如何解决多云架构下的故障应急问题?

TakinTalks稳定性社区

化作乾坤万里春:openGauss跨越生态拐点之后,改变了什么?

脑极体

数据库 自主化

谈谈文章标题的「模式」

Luke

铭文 LaunchPad 平台 Solmash 推出早鸟激励计划

股市老人

软件测试/测试开发/全日制/测试管理丨Vue 页面布局组件-Vuetify

测试人

软件测试

涛思数据获评北京市“专精特新”中小企业

TDengine

涛思数据 tdengine 时序数据库

期待!《数字化运维路线图》震撼发布(第一部分)

博睿数据

AWS EC2 必知必会小技巧 | 机型特点解析和选型技巧分享

Greptime 格睿科技

数据库 AWS 时序数据库

软件测试/测试开发全日制|Pytest测试框架fixture作为参数使用

霍格沃兹测试开发学社

C 语言结构体和枚举完全指南:成员访问、字符串操作、枚举基础

小万哥

程序人生 编程语言 软件工程 C/C++ 后端开发

ZKFair 结束空投领取,未领取的1.3亿ZKF Token全部销毁

股市老人

文心一言 VS 讯飞星火 VS chatgpt (176)-- 算法导论13.3 5题

福大大架构师每日一题

福大大架构师每日一题

TDengine 签约积成电子

TDengine

tdengine 时序数据库

pdd商品详情数据接口

tbapi

拼多多API接口 拼多多商品详情数据接口 pdd详情数据接口 拼多多商品数据采集

需求跟踪矩阵的作用

PingCode

需求管理 嵌入式系统 需求跟踪

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