Cucumber “a”和“a”之间有什么区别;特写“;及;“故事”;在行为驱动的开发中?

Cucumber “a”和“a”之间有什么区别;特写“;及;“故事”;在行为驱动的开发中?,cucumber,bdd,pivotaltracker,Cucumber,Bdd,Pivotaltracker,我正在开发一个产品,我正在使用Pivotal Tracker编写用户故事,但我对BDD和XP非常陌生,对Cucumber也比较新。所以我有点被术语弄糊涂了。故事和黄瓜片的区别是什么?两者都是由三部分组成的简单描述——参与者、行动和业务价值。对吗?所以,如果我已经在Pivotal Tracker中编写了一个故事,我是否应该直接将其复制到Cucumber功能中?一个故事可以有多个特点吗 你觉得怎么样 “故事”是一系列共同完成目标的开发任务。它是开发人员使用的设备 “特性”是企业股东希望在其应用程序中

我正在开发一个产品,我正在使用Pivotal Tracker编写用户故事,但我对BDD和XP非常陌生,对Cucumber也比较新。所以我有点被术语弄糊涂了。故事和黄瓜片的区别是什么?两者都是由三部分组成的简单描述——参与者、行动和业务价值。对吗?所以,如果我已经在Pivotal Tracker中编写了一个故事,我是否应该直接将其复制到Cucumber功能中?一个故事可以有多个特点吗

你觉得怎么样

“故事”是一系列共同完成目标的开发任务。它是开发人员使用的设备

“特性”是企业股东希望在其应用程序中看到的特性。要实现一个功能,您可能需要一个或多个故事,因为通常情况下,如果一个故事“太大”,它会分解为更易于管理的小故事

BDD是TDD(测试驱动开发)的一个变体。据我所知,BDD的语义不像TDD的语义那样面向实现,因为您使用诸如“系统应该加载用户”之类的短语,而不是“DAO加载后用户实例不应该为空”——它们描述系统行为(功能集)与实际实施的具体细节相反。但最终,如果操作正确,它们都会测试相同的东西


而且,在主题上,故事的概念与BDD是正交的;有些开发实践有故事,但没有BDD

功能是一项成熟的功能,随时可以投入使用。例如,功能可能是用户配置文件,包括注册页面、验证、图片等

在BDD术语中,故事是功能特性的一小部分,我们可以从中获得反馈。例如,我们可能在没有配置文件页面和验证的情况下生成注册。验证可能是另一回事。图片可以是另一种

考虑到架构、新技术、领域学习等因素,生成一些更复杂的功能可能需要几周的时间——因此,一个故事可以让我们更快地获得反馈

您可能有兴趣在分析空间中学习特性注入-BDD。对于故事和功能,我们经常使用模板:

In order to <achieve a goal>
As <the stakeholder who wants the goal>
I want <something>
以便
作为
我想要

我倾向于不太担心我所做的是一个功能还是一个故事,只要我能尽快得到反馈。

不幸的是,功能在这个领域是一个负担过重的词,黄瓜功能与完全成熟的功能完全不同

“Cucumber特性”和用户故事之间最有趣的区别在于,用户故事是一个历史文档,而特性描述应用程序的当前状态(假设该特性已经实现)

这种差异(IMO)比粒度或大小的差异更重要。您可以拥有一个Cucumber特性,该特性由许多用户故事驱动/启发,并且您可以拥有一个具有许多Cucumber特性的单个用户故事

一旦Cucumber特性可以运行,它就是代码。这意味着它更容易被重构和更改。每次运行它时,它都会提供有关应用程序当前状态的信息。用户故事告诉您应用程序应该做什么。或者更准确地说,故事的作者在写故事时认为应用程序应该做什么