写点什么

行为驱动开发使用体验

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

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

关注

评论

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

java培训学习机构怎么选择

小谷哥

细说js变量、作用域和垃圾回收

hellocoder2029

JavaScript

全网首次公开!设计模式+代码+JVM调优,不愧是阿里Java性能优化核心原理全解手册

Java全栈架构师

程序员 程序人生 性能优化 后端 java面试

什么是双机热备?实现方式有哪些?

行云管家

高可用 ha 热备 双机热备

转行数据分析?你可能需要这块敲门砖!

博文视点Broadview

vivo鲁京辉:从体验到生态,守正创新,vivo隐私安全再升级

极客天地

别再自己瞎写工具类了,Spring Boot 内置工具类应有尽有, 建议收藏!!

程序知音

Java spring springboot java面试 后端技术

web前端培训班学习前景怎么样

小谷哥

大数据培训的前途怎么样

小谷哥

声网首席科学家钟声:感知实时互联网

RTE开发者社区

人工智能 模型

JavaScript刷LeetCode拿offer-高频链表题

Geek_07a724

JavaScript LeetCode

【C语言】double 关键字

謓泽

11月月更

Node.js实现大文件断点续传

coder2028

node.js

说说Nodejs高并发的原理

coder2028

node.js

高频数采、实时流计算:EMQ储能可预测维护系统方案|智慧工厂系列专题06

EMQ映云科技

物联网 IoT emqx 11月月更 云边协同

赛况激烈!2022 OceanBase数据库大赛50强诞生

OceanBase 数据库

IM通讯协议专题学习(一):Protobuf从入门到精通,一篇就够!

JackJiang

网络编程 即时通讯 IM

AR空间音频能力,打造沉浸式声音体验

HarmonyOS SDK

华为 AR HMS Core

河北省等保测评机构新名单-行云管家

行云管家

网络安全 堡垒机 等级保护 等保测评 等级测评

前端leetcde算法面试套路之树

js2030code

JavaScript LeetCode

推荐一份关于JDK实现&源码解读的经典著作,强烈建议Java程序员都看看

程序员小毕

程序员 程序人生 Java并发 后端 jdk源码

JS知识点梳理之作用域、作用域链、柯里化、闭包

hellocoder2029

JavaScript

大数据培训和自学哪个好

小谷哥

🍃【Spring专题】「开发指南」手把手教你将@Schedule任务调度升级为分布式调度@DistributeSchedule

码界西柚

spring 分布式任务调度 任务调度 scheduler 11月月更

JavaScript刷LeetCode拿offer-位运算

Geek_07a724

JavaScript LeetCode

刷完这19道leetcode二分查找算法,不信进不了大厂

Geek_07a724

JavaScript LeetCode

【收藏】锂电材料工厂设备日常保养评分标准

PreMaint

设备管理 设备日常保养

HDC2022 HarmonyOS学生公开课第二届成功举办,年轻创新力量生生不息!

科技汇

说说Nodejs高并发的原理

coder2028

node.js

JS词法环境和执行上下文

hellocoder2029

JavaScript

自学前端没有找到工作,怎么做呢

小谷哥

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