AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

行为驱动开发使用体验

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

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

关注

评论

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

Fil火爆的原因是什么?fil未来价格会多少钱一枚?

分布式存储 IPFS fil fil价格 fil行情

基于一万小时定律去规划职业

非著名程序员

生涯规划 职场 职业规划 8月日更

地府鬼神图关系构建

6979阿强

图算法 图计算 GraphScope

网络攻防学习笔记 Day111

穿过生命散发芬芳

网络安全 8月日更

fil挖矿难度大不大?fil挖矿1T收益是多少?

fil挖矿难度大不大 fil挖矿1T收益是多少

【得物技术】浅谈Redis集群下mget的性能问题

得物技术

redis 性能优化 性能 redis集群 mget

前端自动化测试及 Karma 介绍

devpoint

单元测试 自动化测试 Karma 8月日更

CSS的设计模式(一)OOCSS

Augus

CSS 8月日更

【六顶思考帽】学习心得

LeifChen

8月日更 六顶思考帽 创新思维

图计算之开局女朋友跑了2

Zhuan

图计算 GraphScope 图分析

极光开发者周刊【No.0820】

极光JIGUANG

时序数据到底是什么,为什么我们需要时序数据库?

数据库 大数据 时序数据库 tsdb 数据智能

Go- 基本类型和运算符

HelloBug

Go 语言 布尔类型 基本类型和运算符 数字类型

【回帖赢大奖】AI+开发者=?

百度大脑

Flink生态提供的其它工具(十一)

Databri_AI

sql flink CEP

3天倒计时!百度机器学习训练营正式开播啦!(加QQ群941354305)

有只小耳朵

人工智能 深度学习 学习 AI AI Studio

秀到飞起!Alibaba全新出品JDK源码学习指南(终极版)限时开源

今晚早点睡

源码

金九银十旗开得胜!秋招字节正式批4面,顺利拿到offer

编程susu

Java 编程 程序员 面试 编程开发

大数据技术不能被平台滥用,必须维护消费者的合法权益

石头IT视角

如何利用 SEI 实现音画同步?

ZEGO即构

音视频 音画同步 数据流录制 flv

坚持“一城市一矿山” 拾起卖争当循环产业领跑者

InfoQ 天津

CRLF、CSRF、SSRF攻击与利用

网络安全学海

黑客 网络安全 信息安全 WEB安全 漏洞挖掘

10 个超棒的 JavaScript 简写技巧

前端依依

程序员 大前端 js 代码规范

开源应用中心 | 做项目,不敏捷?快来部署这款灵活的项目管理系统

netty系列之:netty中的懒人编码解码器

程序那些事

Java Netty nio 程序那些事

markdown不支持代码块和表格,离开这里了

DBKernel

上游思维:用小行动获取反馈

石云升

读书笔记 8月日更 上游思维

Springboot 结合 Netty 实战聊天系统

声网

音视频

fil挖矿必看!fil挖矿步骤有哪些?fil挖矿的效率如何?

分布式存储 IPFS fil fil挖矿

百度智能云最新成绩单亮相百度世界大会2021,“云智一体”再升级!

百度大脑

人工智能 百度

云计算成为趋势,北鲲云超算平台布局云计算市场?

北鲲云

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