50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

行为驱动开发使用体验

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

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

关注

评论

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

玩转云端| 解密!业内首款存储资源盘活系统如何炼成?

天翼云开发者社区

九科信息参加长三角智慧港口论坛,分享港口企业超级自动化实践

九科Ninetech

IP 地址是如何被创建和管理的?

海拥(haiyong.site)

三周年连更

面对“失业焦虑”我们可以做些什么| 社区征文

峥岳

三周年征文

CNBPA 新成员展示 | 启明信息技术股份有限公司

云原生技术社区

云原生 云原生技术实践联盟 CNBPA

Tapdata 的 ∞ 实践:中小企业如何轻量、高效地搭建起一个灵活易用的数字化平台

tapdata

数据库

PostgreSQL JDBC 开发指导

攻城狮

postgresql JDBC 驱动程序

统一门户为什么能让企业数字化高效办公?

BeeWorks

2023全栈开发人员职业路线图

码语者

全栈开发

数据库中的 Schema 变更实现

KaiwuDB

线上直播 KaiwuDB Schema 锁表

聚能量赢未来,OpenHarmony开发者大会开发工具分论坛圆满落幕

最新动态

什么是人工智能领域模型的 temperature 参数?

汪子熙

人工智能 机器学习 深度学习 三周年连更

Flink API的4个层次

阿泽🧸

flink 三周年连更

SQL 解析在 CloudQuery 中的应用

BinTools图尔兹

数据库 SQL解析

iOS MachineLearning 系列(11)—— 自然语言之词句相似性分析

珲少

大企业必读!五大纳税申报难题解析

用友BIP

John Schulman:强化学习与真实性,通往TruthGPT之路

OneFlow

如何计算真实的数据库成本

天翼云开发者社区

ChatGPT+私有数据=智能知识库+个性化AI

BeeWorks

IPP SWAP孵化器LP算力系统开发技术

薇電13242772558

区块链

加快推进数智化转型,引领盐行业高质量发展

用友BIP

Kubernetes Gateway API 深入解读和落地指南

北京好雨科技有限公司

Kubernetes 云原生 rainbond 企业号 5 月 PK 榜 Gateway API

顶象uni-app版设备指纹上线,满足企业多平台服务需求

极客天地

喜讯!天翼云斩获NLP国际顶会比赛两项荣誉

天翼云开发者社区

共创,共建,共赢,共荣!国云向新,翼起创未来!

天翼云开发者社区

数智化转型再加速,低代码开发助力企业转型

加入高科技仿生人

低代码 数智化 数字转型 数智转型

聊点技术 | 全新功能,让Bonree ONE变得更强

博睿数据

可观测性 智能运维 博睿数据 Bonree ONE ONE有引力

看华为云Serverless 4大特性如何让软件架构更丝滑

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

安全第一,私有化部署IM让组织沟通更放心

BeeWorks

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