写点什么

行为驱动开发使用体验

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

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

关注

评论

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

专业实用的CAD软件:CorelCAD 2021中文直装版

Rose

一文读懂Ethervista:以太坊的新代币启动器DEX

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

在stable diffussion中控制生成图片的光线

程序那些事

程序那些事 Stable Diffusion

测试工程师的质量体系构建指南

霍格沃兹测试开发学社

一个故事理解消息队列-下

老张

kafka 中间件 消息队列 基础架构

淘宝Taobao API接口调用指南

联讯数据

腾讯云发布AI infra品牌“腾讯云智算”

ToB行业头条

非凸科技2025届秋季校园招聘正式启动

非凸科技

校园招聘 秋招

京东商品详情数据接口的应用场景与技术实现

tbapi

京东商品详情数据接口 京东商品数据接口 京东API 京东数据采集接口 京东商品数据采集接口

Metadata Converter for Mac(照片元数据编辑查看器)v1.6免激活版

Rose

流式细胞分析:flowjo10破解版软件安装方法

Rose

强大的FTP(文件传输协议)客户端:Transmit 5 for Mac

Rose

Mac专业项目管理软件:Project Office X Pro v1.1.11

Rose

易于使用的专业屏幕测量工具:PixelStick for mac已激活版

Rose

附送试听地址!OpenAI ChatGPT被曝将新增8种语音!英特尔酷睿Ultra 200V正式发布|AI日报

可信AI进展

业务复杂度治理方法论--十年系统设计经验总结

京东科技开发者

观测云产品更新 | 日志、场景、异常追踪、监控、Pipeline等

观测云

监控 日志

天猫商品评论API返回值中的虚假评价与识别

技术冰糖葫芦

api 网关 API Explorer API 策略 pinduoduo API

【Tomcat源码分析 】"深入探索:Tomcat 类加载机制揭秘"

派大星

tomcat源码解读

Bettertouchtool for Mac 功能强大的触摸板辅助工具

Rose

苹果电脑效率工具:Magnet pro for mac窗口分屏管理工具

Rose

火山引擎VeDI赋能小城酒店业,助力“流量”向“留量”转化

字节跳动数据平台

大数据 数据分析 云服务 火山引擎 增长营销

EMQX Enterprise 5.8.0 发布:实现跨区域、全球分布的集群连接

EMQ映云科技

emqx

GitHub 上 Stars 数量最多的 8 个开源 CRUD 项目

NocoBase

GitHub 开源 低代码 crud 无代码

易于使用的图形化 PostgreSQL 数据库开发工具:Navicat for PostgreSQL

Rose

索尼的Web3蓝图:从技术创新到现实应用的全方位布局

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

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