2010-11-25 61 views
2

我正在研究產品,我正在使用Pivotal Tracker來編寫用戶故事,但我對BDD和XP以及黃瓜更新。所以我被這個術語弄糊塗了一點。一個故事和一個黃瓜特徵有什麼區別?兩者都是簡單的描述,由三部分組成 - 演員,行動和商業價值。對?因此,如果我已經有了一個用Pivotal Tracker編寫的故事,我應該直接將它複製到Cucumber功能中嗎?一個故事可以有多個特徵?行爲驅動開發中的「功能」和「故事」之間有什麼區別?

您認爲如何?

回答

4

功能是一個功能齊全的功能,可以上線了。例如,一個功能可能是一個用戶配置文件,包含註冊頁面,驗證,圖片等。

在BDD術語中,故事是通過功能的一個小功能,並且我們可以通過它反饋。例如,我們可能會在沒有配置文件頁面的情況下生成註冊,並且無需驗證。驗證可能是另一回事。圖片可以是另一個。

考慮到體系結構,新技術,領域學習等,生成一些更復雜的功能可能需要幾周時間,因此故事可以讓我們獲得比這更快的反饋。

您可能有興趣瞭解分析領域中的特徵注入 - BDD。我們使用模板相當多的兩個故事和特點:

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

我傾向於不要太擔心我在做什麼是一個功能或一個故事,只要我得到的反饋儘可能迅速。

2

「故事」是一系列共同完成目標的開發任務。它是開發人員使用的設備。

「功能」是企業利益相關者希望在其應用程序中看到的功能。要實現一個功能,您可能需要一個或多個故事,因爲通常情況下,如果一個故事「太大」,它將被分解爲更易於管理的小故事。

BDD是TDD(測試驅動開發)的變體。據我所知,BDD的語義比TDD的語義更少實現,因爲你使用諸如'系統應該加載用戶'之類的短語而不是「用戶實例在被DAO加載之後不應該爲空「 - 它們描述系統行爲(功能集),而不是實際實施的具體細節。但最終,如果正確完成,它們都會測試相同的東西。

而且,就主題而言,故事的概念與BDD真正正交;有開發實踐有故事而沒有BDD。

0

不幸的是,功能在這個空間中是一個負載過重的詞,而黃瓜功能與完全成熟的功能是完全不同的。

'黃瓜特徵'和用戶故事之間最有趣的區別是用戶故事是一個歷史文檔,而一個特徵描述了應用程序的當前狀態(假設該特徵已被實現)。

這種差異是(IMO)比粒度或大小差異更重要。您可以擁有許多用戶故事驅動/啓發的Cucumber功能,並且您可以擁有一個具有許多Cucumber功能的單個用戶故事。

一旦黃瓜功能可以運行,它是代碼。這意味着它更容易被重構和改變。每次運行它時,都會提供有關應用程序當前狀態的信息。用戶故事告訴你應用程序應該做什麼。或者更準確地說,故事的作者認爲應用程序在編寫故事時應該做的事情是什麼。

相關問題