行為驅動開發 - 簡介



行為驅動開發 (BDD) 是一種軟體開發流程,最初起源於測試驅動開發 (TDD)。

根據 BDD 演進的負責人 Dan North 的說法,“BDD 是在多個層面上使用示例來建立共享理解並揭示不確定性,以交付有意義的軟體。”

BDD 使用示例來說明系統的行為,這些示例以每個人都能夠理解和閱讀的語言編寫,參與開發的每個人都包括在內。這些示例包括 -

  • 轉換為可執行的規範。

  • 用作驗收測試。

BDD – 主要特徵

行為驅動開發側重於 -

  • 提供共享的流程和共享的工具,促進軟體開發人員、業務分析師和利益相關者之間的溝通,以協作開發軟體,目標是交付具有業務價值的產品。

  • 系統應該做什麼,而不是應該如何實現。

  • 提供更好的可讀性和可見性。

  • 不僅驗證軟體的工作原理,還驗證它是否滿足客戶的期望。

BDD 的起源

如果缺陷沒有在正確的時間被檢測到並及時修復,修復缺陷的成本將成倍增加。請考慮以下示例。

Origin of BDD

這表明,除非正確獲取需求,否則在後期階段由於誤解需求而導致的缺陷將代價高昂。此外,最終產品可能無法滿足客戶的期望。

當務之急是一種開發方法,該方法 -

  • 基於需求。

  • 在整個開發過程中關注需求。

  • 確保滿足需求。

BDD 是一種可以滿足上述需求的開發方法。因此,行為驅動開發 -

  • 推匯出系統不同預期行為的示例。

  • 能夠使用業務領域術語以一種語言編寫示例,以確保參與開發的每個人(包括客戶)都能輕鬆理解。

  • 透過對話不時地與客戶一起確認示例。

  • 在整個開發過程中關注客戶需求(示例)。

  • 使用示例作為驗收測試。

BDD 實踐

BDD 的兩種主要實踐是 -

  • 基於示例的規範 (SbE)

  • 測試驅動開發 (TDD)

基於示例的規範

基於示例的規範 (SbE) 在對話中使用示例來說明業務規則以及要構建的軟體的行為。

基於示例的規範使產品負責人、業務分析師、測試人員和開發人員能夠消除對業務需求的常見誤解。

測試驅動開發

在 BDD 的上下文中,測試驅動開發將示例轉換為人類可讀的可執行規範。

開發人員使用這些規範作為指南來實現新功能的增量。這將導致精簡的程式碼庫和一套自動迴歸測試,從而在軟體的整個生命週期內保持較低的維護成本。

敏捷 BDD

在敏捷軟體開發中,BDD 方法用於就待定的規範達成共識。

在敏捷 BDD 中執行以下步驟 -

  • 開發人員和產品負責人協作在純文字編輯器中編寫待定的規範。

  • 產品負責人指定他們期望系統具有的行為。

  • 開發人員

    • 用這些行為細節填充規範。

    • 根據他們對系統的理解提出問題。

  • 考慮當前的系統行為,以檢視新功能是否會破壞任何現有功能。

敏捷宣言和 BDD

敏捷宣言宣告如下 -

我們正在透過實踐和幫助他人實踐來發現更好的開發軟體的方法。透過這項工作,我們已經認識到以下價值 -

  • 個體和互動 − 超過流程和工具

  • 工作的軟體 − 超過面面俱到的文件

  • 客戶合作 − 超過合同談判

  • 響應變化 − 超過遵循計劃

也就是說,雖然右側的專案也具有一定價值,但我們更重視左側的專案。

BDD 與敏捷宣言的對應關係如下 -

敏捷宣言 BDD 對應關係
個體和互動勝過流程和工具。 BDD 是關於進行對話的。
工作的軟體勝過全面文件。 BDD 專注於簡化建立具有業務價值的軟體。
客戶合作勝過合同談判。 BDD 專注於基於想法的場景,並隨著開發的進行與客戶持續溝通。它不基於任何承諾。
響應變化勝過遵循計劃。 BDD 專注於持續溝通和協作,這有助於吸收變化。
廣告

© . All rights reserved.