需求規格實例化

需求規格實例化(Specification by example)也稱為實例化規格,簡稱SBE,是一種協作方法,利用擷取實際範例和說明,來定義軟體產品的需求和以業務為導向的功能測試,和其他方法用抽象的說明定義需求的做好不同。需求規格實例化常用在敏捷软件开发上,特別是行为驱动开发(behavior-driven development,BDD)。此作法特別適合用來管理重大領域以及有組織複雜度的大型專案中的需求以及功能測試。

需求規格實例化也稱為實例驅動開發(example-driven development)、可執行需求(executable requirements)、(ATDD或A-TDD)、敏捷允收測試(Agile Acceptance Testing)、測試驅動需求(Test-Driven Requirements、TDR)。
優點
高度抽象概念或是全新的概念在沒有具體實例時,很難讓人理解。需求規格實例化的目的是要建構準確的理解,大幅減少軟體開發過程的回饋迴路、減少重工、提高產品品質、針對軟體變更有較快的交付時間、在軟體開發團隊不同角色(例如測試者、分析師和開發者)的活動可以比較一致。

適用性
一般會將需求規格實例化應用在有相當組織複雜度和領域複雜度,從業務領域觀點瞭解需求或溝通會造成問題的專案。需求規格實例化不適用在純技術問題,或是其困難度不是在瞭解知識或溝通知識上的專案。有使用需求規格實例化的領域包括有銀行投資、金融交易、保險、機票預訂、線上遊戲或是比價)確保所建構的是對的產品。這類測試無法取代以純技術觀點看待軟體系統的測試(這類測試會評估軟體是否以正確的方式建構,這類測試包括單元測試、模組或是技術整合測試),或是一些在產品完成後進行的測試(例如滲透測試)。

歷史
最早有紀錄的,用實例作為單一事實來源、需求和自動化測試的軟體專案是WyCash+專案,用沃德·坎宁安在1996年的論文《A Pattern Language of Competitive Development》。Specification by Example的名稱是由马丁·福勒在2004年所提出。

需求規格實例化是源自极限编程在1997年提出的Customer Test實務,和領域驅動設計在2004年提出的Ubiquitous Language,其中使用了Weinberg和Gause在1989年提出,以黑箱測試為需求的概念。

自動化
要成功的將需求規格實例化用在大型專案,需要頻繁的用大量的實例來測試軟體功能。實際上,這需要可以自動化進行以實例為基礎的測試。常見的作法是將測試自動化,但讓實例維持成團隊非技術成員或技術成員可讀取、可取得的形式,讓實例是單一事實來源。有許多測試自動化的工具可以支援此過程,其作法會將測試分為兩部份:規格和自動化層。測試的規格常會以文字、HTML格式出現,包括實例和輔助說明。自動化層連接待測的軟體系統。這些工具有
*
*
*
*
*
*Robot Framework
*.NET的 Reqnroll和SpecFlow
*

參考資料
外部連結
*[http://groups.google.com/group/specificationbyexample Google discussion group]
*[http://specificationbyexample.com/resources.html Books, videos, tools and presentations from Specificationbyexample.com]
*[http://martinfowler.com/bliki/SpecificationByExample.html Definition on Martin Fowler's bliki]

评论 (0)

  • 还没有评论,来抢沙发吧。