行为驱动开发:通过协作传递价值

软件项目的目的是向利益干系人交付价值,而行为驱动开发(BDD)正是为此而生。在阐述对于BDD的看法时,Viktor Farcic表示:BDD能够确保在整个项目过程中,项目聚焦于为利益干系人提供的价值。

作为一位从事从瀑布模型向敏捷过程转型方面工作的软件开发者,Viktor继续补充道:BDD的一条准则是必须用每个人都能理解的方式来撰写需求。作为对比,在传统的瀑布式项目中,许多情况下人们都不知道或是忘记了要向利益干系人交付价值。参与此类项目的大部分人关心的是“完成各自部分的工作”,然后将工作“抛给墙那边”负责下一阶段任务的人。

在BDD中描述需求的关键是故事,Viktor将故事的形式概括为两部分组成元素:介绍描述(Narrative)以及随后出现的一个或多个情形(Scenario)。介绍描述是从提出新功能要求的某个人或某个角色的角度,对功能所做的一段简短的叙述。它恰到好处地为所有涉及到的人(业务分析师、开发者、测试者等待)提供了沟通的基础,并且是以对话而不是编写描述为中心。其目的在于回答这样三个问题:价值是什么?对谁来说它是有价值的?实际特性是什么?回答这些问题后,团队就可以开始与利益干系人协作,定义最佳解决方案。

介绍描述将通过情形来进一步定义——这些情形提供了对完成的定义以及接收的标准,用来确认针对介绍描述进行的开发,其输出的成果能够满足预期。

对Viktor来说,尽管介绍描述拥有某些传统需求的特性,但他相信依旧存在一些非常重要的不同。其中之一在于以下二者之间的区别:重视口语化和持续沟通,与使用可能非常不精确的语言。另外一点不同则是重视使用特性来描述功能,而不是使用大量如下形式的文字陈述:“该系统应该……”——后者往往会妨碍读者理解项目的整体视图和真正的目标。

最后,Viktor介绍了让BDD向着自动化方向前进的内容——可以通过许多不同框架来执行BDD中的情形,例如JBehaveCucumberSpecFlowJasmine。他的建议是分三步走来实现BDD自动化:

  • 创建标准化步骤的库,以帮助将情形从实际代码中分离,从而简化非开发人员编写故事的工作。
  • 在更高的业务层面将这些步骤整合,以便分析师和其他类似角色更好地理解。
  • 使用实例表(example table),以便同一个情形可以被执行若干次,并在每次执行中配备不同的参数集。

Victor的建议是,从第一阶段入手,直到采取足够的措施以支持创建第一个情形后,再继续落实后面两阶段的内容。

Dan North在2006年开发了BDD,并撰写了一份入门简介,以及在BDD中如何编写故事

实例化需求(specification by example)是一种与BDD密切相关的需求定义方法。

原文地址:http://www.infoq.com/cn/news/2014/01/bdd-value-collaboration

查看英文原文:Behaviour-Driven Development: Value through Collaboration

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值