写点什么

行为驱动开发使用体验

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

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

关注

评论

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

如何用同一套账号接入整个研发过程?

阿里云云效

云计算 阿里云 运维 研发管理 研发

iview 如何实现文件上传并限制上传格式和大小

CRMEB

青岛研博基于EMQ物联网数据基础设施在智慧水务平台产品中的实践

EMQ映云科技

物联网 IoT 实践案例 emq 5月月更

企评家 | 从机器学习刻画企业成长性画像

企评家

Rainbond结合NeuVector实践容器安全管理

北京好雨科技有限公司

十、高可用之应急预案

穿过生命散发芬芳

5月月更 高可用设计

手慢无!Alibaba五份自研Java程序员进阶宝典限时开源(开发手册+面试指南+性能优化+机器学习+架构手册)

Java全栈架构师

Java 程序员 架构 面试 程序人生

制作网站的FAQ时,需要考虑哪些功能,要有哪些注意事项

小炮

FAQ

ansible 模块:systemd

ghostwritten

ansible systemd

GPU服务器:全球市值最大的半导体公司

Finovy Cloud

人工智能 云计算 GPU服务器

超低延迟传输网络架构在元宇宙场景的应用

网易云信

音视频 元宇宙 传输网络

ansible 模块:template

ghostwritten

ansible

C语言-strlen与sizeof区别

芒果酱

c++ 编程语言 C语言 5月月更

根因分析思路方法总结|保障IT系统及其稳定性

云智慧AIOps社区

算法 监控 根因分析 智能运维

面试以前上司,能力一般,但他卑微哀求,我该不该放水?

Java全栈架构师

架构 面试 程序人生 java程序员 java 编程

直播预告|企业智能化转型Meetup V1

星策开源社区

AI BI 智能化转型

企评家| 嘉凯城集团股份有限公司成长性评价报告摘要

企评家

揭露ROI提升5倍的秘密!火山引擎A/B测试白皮书重磅发布(内附下载链接)

字节跳动数据平台

字节跳动 数字营销 ab测试

ansible 模块:modprobe

ghostwritten

ansible

京东优惠价格策略助手

江苏京酷电子商务有限公司

查询优化 京东 优惠券 转链

String源码解析-String的使用注意

zarmnosaj

5月月更

企评家|四川美丰化工股份有限公司成长性报告简述

企评家

ansible 模块:pause

ghostwritten

ansible

spring中如何自己去实现一个starter

ZuccRoger

5月月更

Native Flink on Kubernetes 在小红书的实践

Apache Flink

大数据 flink 编程 流计算 实时计算

HarmonyOS 2版本更新!两个小技巧让你告别隐私泄露烦恼

科技汇

DDD实战(10):冲刺1战术之服务设计(下)及技术决策

深清秋

DDD 软件架构 软件设计 生鲜电商系统 5月月更

ansible 模块:lineinfile

ghostwritten

ansible

ansible 模块:include_tasks

ghostwritten

ansible

玩了一场剧本杀,同车队友“不是人”

白洞计划

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