敏捷測試 - 方法論



敏捷是一種迭代開發方法,整個專案團隊參與所有活動。透過客戶和自組織團隊之間的協作,需求在迭代過程中不斷演變。由於編碼和測試在開發過程中互動式且增量地進行,因此最終產品將具有高質量並確保滿足客戶需求。

每次迭代都會產生一個整合的可工作產品增量,並交付進行使用者驗收測試。由此獲得的客戶反饋將作為下一個/後續迭代的輸入。

Project Team

持續整合,持續質量

持續整合是敏捷開發成功的關鍵。頻繁整合,至少每天整合一次,以便在需要時隨時準備釋出。敏捷中的測試成為所有開發階段的重要組成部分,確保產品的持續質量。來自參與專案的所有人的持續反饋提高了產品的質量。

在敏捷中,溝通至關重要,並根據需要接收客戶請求。這使客戶滿意,因為所有輸入都被考慮在內,並且在整個開發過程中都提供高質量的產品。

敏捷方法

有幾種敏捷方法支援敏捷開發。敏捷方法包括:

Scrum

Scrum 是一種敏捷開發方法,強調以團隊為中心的方法。它提倡整個團隊參與所有專案開發活動。

XP

極限程式設計以客戶為中心,專注於不斷變化的需求。透過頻繁釋出和客戶反饋,最終產品將具有高質量,滿足在過程中變得更清晰的客戶需求。

Crystal

Crystal 基於制定章程、迴圈交付和收尾。

  • 制定章程包括組建開發團隊、進行初步可行性分析、制定初始計劃和開發方法。

  • 具有兩個或多個交付週期的迴圈交付專注於開發階段和最終整合產品的交付。

  • 在收尾階段,執行部署到使用者環境、部署後審查和反思。

FDD

特徵驅動開發 (FDD) 涉及設計和構建特徵。FDD 與其他敏捷開發方法的區別在於,特徵是分別在特定且短的階段中開發的。

DSDM

動態軟體開發方法 (DSDM) 基於快速應用開發 (RAD) 並與敏捷框架保持一致。DSDM 專注於頻繁交付產品,積極參與使用者並授權團隊快速做出決策。

精益軟體開發

在精益軟體開發中,重點在於消除浪費併為客戶創造價值。這導致快速開發和有價值的產品。

浪費包括部分完成的工作、不相關的工作、客戶不使用的功能、缺陷等,這些都會導致交付延遲。

精益原則是:

  • 消除浪費
  • 放大學習
  • 延遲承諾
  • 授權團隊
  • 快速交付
  • 構建內在完整性
  • 看到全域性

Kanban

Kanban 專注於管理工作,強調準時 (JIT) 交付,同時不給團隊成員造成過載。任務會顯示給所有參與者檢視,團隊成員可以從佇列中提取工作。

Kanban 基於:

  • 看板(在整個開發過程中視覺化且持久)
  • 在製品 (WIP) 限制
  • 交付週期

敏捷測試方法

對於每個專案,無論是否敏捷,測試實踐都定義明確,以交付高質量的產品。傳統測試原則經常用於敏捷測試。其中之一是早期測試,其重點在於:

  • 編寫測試用例以表達系統的行為。

  • 儘早預防、檢測和消除缺陷。

  • 確保在正確的時間以及作為正確測試級別的一部分執行正確的測試型別。

在我們討論的所有敏捷方法中,敏捷測試本身就是一種方法。在所有方法中,測試用例都在編碼之前編寫。

在本教程中,我們將重點關注 Scrum 作為敏捷測試方法。

其他常用的敏捷測試方法包括:

  • 測試驅動開發 (TDD) - 測試驅動開發 (TDD) 基於由測試引導的編碼。

  • 驗收測試驅動開發 (ATDD) - 驗收測試驅動開發 (ATDD) 基於客戶、開發人員和測試人員之間的溝通,並由預定義的驗收標準和驗收測試用例驅動。

  • 行為驅動開發 (BDD) - 在行為驅動開發 (BDD) 中,測試基於正在開發的軟體的預期行為。

敏捷測試生命週期

在 Scrum 中,測試活動包括:

  • 根據系統預期行為(以測試用例的形式描述)為使用者故事做出貢獻

  • 基於測試工作量和缺陷的釋出計劃

  • 基於使用者故事和缺陷的衝刺計劃

  • 持續測試的衝刺執行

  • 衝刺完成後進行迴歸測試

  • 報告測試結果

  • 自動化測試

測試是迭代的,並且基於衝刺,如下圖所示:

Lifecycle
廣告

© . All rights reserved.