2

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

你怎么看?

4

3 回答 3

6

功能是一个成熟的功能,准备上线。例如,一个特征可能是一个用户配置文件,包括注册页面、验证、图片等。

在 BDD 术语中,故事是功能的一小部分,我们可以获得反馈。例如,我们可能会生成没有个人资料页面且没有验证的注册。验证可能是另一回事。图片可以是另一个。

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

您可能有兴趣了解分析空间中的特征注入 - BDD。对于故事和功能,我们经常使用该模板:

In order to <achieve a goal>
As <the stakeholder who wants the goal>
I want <something>

只要我能尽快得到反馈,我往往不会太担心我正在做的是一个功能还是一个故事。

于 2010-11-25T07:47:56.110 回答
2

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

“功能”是业务利益相关者希望在他们的应用程序中看到的功能。要实现一项功能,您可能需要一个或多个故事,因为通常如果一个故事“太大”,它会分解成更易于管理的小故事。

BDD 是 TDD(测试驱动开发)的变体。据我了解,BDD 的语义不如 TDD 的语义面向实现,因为您使用诸如“系统应该加载用户”之类的短语而不是“用户实例在被 DAO 加载后不应该为空” "——它们描述了系统行为(功能集),而不是实际实现的具体细节。最后,如果做得正确,他们都会测试同样的事情。

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

于 2010-11-25T01:10:13.380 回答
0

不幸的是,功能在这个领域是一个严重超载的词,而 Cucumber 功能与完全成熟的功能完全不同。

“Cucumber Feature”和 User Story 之间最有趣的区别是 User Story 是历史文档,而 Feature 描述了应用程序的当前状态(假设该功能已经实现)。

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

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

于 2014-12-13T05:23:40.567 回答