写点什么

行为驱动开发使用体验

  • 2016-09-13
  • 本文字数:945 字

    阅读完需:约 3 分钟

行为驱动开发(BDD)认为软件开发是现如今企业运营的根本,有助于改善企业利益相关者和软件开发者之间的沟通。 Kevin Smith 在其一篇最近的博文中介绍了他使用 BDD 的工作经验

在进行了多年的敏捷项目后,Dootrix 公司的技术总监和联合创始人 Smith 注意到了敏捷开发的一些共同缺点:

  • 由于用户故事越来越多关注于用户以及他的软件需求,这样很容易让开发者忘记商业需求。
  • 用户故事生命周期较短,因此很容易忘记一个应用程序的整体规范。
  • 由于用户故事生命周期较短,基于用户故事的验收标准往往质量较低。
  • 缺乏可以发现并解决业务问题的敏捷工具。
  • 测试驱动开发(TDD)是目前常用的一种手段,但是往往这些测试仅仅验证了细节,而没有验证功能是否正确的实现了。

根据 Smith 过往的经验,BDD 可以帮助解决这些问题,尤其是在引入实例化需求(Specification by example)以及影响地图(Impact mapping)等概念的时候。

Smith 曾经实现了一个简单的改变,他将用户故事转换为一个更加偏向于 BDD 风格的形式,他认为通过这样可以让人们将关注点转移到商务价值上,并更多讨论它:

为了 < 实现利益 >,作为一个 < 角色 >,我需要 < 功能 >。

BDD 强调要使用具体的用例来减少歧义。这些用例有助于建立共同的认识,并找到丢失的功能。当编写验收标准时,可以用正式的语言 Gherkin 来写这些用例,并可以基于这些用例进行自动化测试。

构建软件的一个常见的挑战是如何创建正确合适的文档。由于 BDD 关注于用用例来解释行为,因此可以用于自动化生成文档。这个文档与实际实现的功能同步,我们通常称其为活文档

虽然 Smith 认为 BDD 给我们带来了很多方便,但它还是存在一些潜在的缺点值得我们的注意:

  • BDD 没有涉及到用户界面,所以我们还需要使用原型和其他的工具来保证界面完好设计。
  • 有很多现成的工具可以测试编写的用例,但缺少可以管理运行哪个测试、何时运行的工具。
  • 它很难开发一个很好的自动化测试套件,在短期内它较为昂贵。

Smith 最后指出 BDD 还是一个新兴的想法,因此缺乏如同敏捷方法一般的生态环境。不过他相信这是帮助人们在搭建软件的时候更好沟通的一个好方法。为了再一次激起人们对 BDD 的关注,他引用了 BDD 的作者 Dan North 的一句话:

BDD 是促进合作并通过实例探索的一大选择。

查看英文原文 Experiences with Behaviour-Driven Development

2016-09-13 19:002122
用户头像

发布了 218 篇内容, 共 72.3 次阅读, 收获喜欢 76 次。

关注

评论

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

CodeWhisperer 的使用心得

亚马逊云科技 (Amazon Web Services)

第二届OpenHarmony技术大会隆重揭幕年度课题,为OpenHarmony技术发展指明方向

科技热闻

【强推】苹果Mac电脑后期处理软件,打造极致的

Rose

Mac破解软件 后期特效软件有哪些 Mac特效制作工具 视频剪辑Mac版

「支持M1/M2」Topaz Video AI for mac 4.0.3

加油,小妞!

Topaz Video AI 视频增强修复工具

EndNote 21 for Mac(文献管理软件)

展初云

Mac 文献管理 endnote

Golang微服务框架居然可以开发单体应用?—— Kratos单体架构实践

golang 微服务架构 单体架构 Kratos #微服务

mac文件夹数据同步工具推荐 Sync Folders Pro中文最新版

胖墩儿不胖y

Mac软件 文件同步工具 文件备份同步

支持M1、Capture One Pro 23 Mac 「raw图像处理工具」

繁星

图像处理工具 Capture One Pro 23

【随意换装】基于 Svelte 与 Tailwind 的组件库 STDF 支持多主题配置

DUFU

JavaScript 前端 Svelte 组件库 Tailwind

终极秘诀:打破无代码状态的小方法

沉浸式趣谈

小方法 敲代码

专业高效的视频编辑软件Premiere Pro 2023补丁激活版

胖墩儿不胖y

Mac软件 视频处理工具 视频编辑软件

Python 异常处理:try、except、else 和 finally 的使用指南

小万哥

Python 程序员 软件 后端 开发

OpenHarmony技术俱乐部亮相第二届OpenHarmony技术大会, 揭榜课题科研共建OpenHarmony

科技热闻

技术筑生态智联赢未来,第二届OpenHarmony技术大会圆满举行

科技热闻

苹果mac电脑GoLand 2023 注册码最新 GoLand 2023 中文下载「支持m1 m2」

Rose

Go 语言 GoLand 2023破解版 GoLand 2023注册码

音频修复增强工具:iZotope RX 10 for mac 支持M1

加油,小妞!

音频修复 iZotope RX 10

Amadine for Mac 矢量图设计工具 完美兼容M1

彩云

矢量图设计 Amadine下载

【最新破解秘钥】Vectorworks 2023 Mac必备3D建筑设计软件

Rose

3D建筑设计软件 Mac破解软件 Vectorworks 2023下载 Vectorworks 2023密钥

支持m1、IntelliJ IDEA 2023.2.4 Mac中文版 附 注册码

彩云

IntelliJ IDEA 2023最新 IntelliJ IDEA 2023

Maya 2024 for Mac(3D图形软件)

展初云

maya Mac软件 玛雅 3D图形

什么是Vim,Vim安装

芯动大师

mac音频传输工具Loopback激活版 完美兼容macOS14系统和M芯片

Rose

mac音频编辑器 Loopback下载 Loopback激活版 Loopback Mac版

创享蜀都 创力澎湃|2023鲲鹏开发者创享日·成都站成功举办

科技热闻

OmniGraffle Pro 图表绘制工具 附 注册机 支持M1

繁星

OmniGraffle Pro 图表绘制

免费算力部署stable-diffusion

打工人!

Stable Diffustion

VM虚拟机安装Win11系统图文教程(附VMware13永久密钥)

Rose

Win11镜像下载 VM虚拟机破解版 VMware13永久密钥

Vector Magic for mac(矢量图片转换工具)

展初云

Mac 矢量图 Mac软件

行为驱动开发使用体验_语言 & 开发_Jan Stenberg_InfoQ精选文章