行為驅動開發? 任何人都能創建自動化測試用例 (Behavior Driven Development Approach)

Tommy
IT+Digital@互聯網
5 min readSep 29, 2019

--

談到敏捷軟件開發(Agile software development) ,一定不少得測試(Test) 這個環節。在敏捷開發的框架下,項目會被分成不同的小元件,經過需求分析、設計、開發、測試,最後才能發佈。

上文提到控制Window Application 的方法,其實正正是行為驅動開發的基礎技術。測試人員可以透過預先設定的測試的場景,驅動程式進行特定的動作,並得出結果。下文將承接上文,簡單介紹行為驅動開發的概念和應用例子。

行為驅動開發

行為驅動開發周期 (Image Source: BDD in Action + 筆者所繪)

行為驅動開發跟大部份開發框架一樣都是由需求分析 (Requirement Analysis)開始。首先業務分析師 (Business Analyst ,下文簡稱BA) 會跟業務的負責人員分析和確認需求。在需求都收集和初步確認後,BA就會跟開發者(Developer)和測試人員(Test)談論如何實踐需求,當然也包括實踐需求所需的資源和時間。

在各方都確認需求後,BA 就會以特定的結構紀錄需求,常見的格式包括Given When Then (假設用家是一名Medium 的用家,當他按 Applaud 按鈕,文章Applaud 的數目就會增加1)。開發者就根據這一份文件繼而開發,在項目開發完成後,測試者就會利用自動化測試軟件,檢查開發好的項目是否符合BA寫的需求。亦由於BA 利用特定的結構紀錄需求,這些結構能容易被自動化測試軟件理解。當自動化測試完成後,測試文件將會生成,並提供給開發者調試和用家確認。

例子

以一間電器公司為例,假設要建立一個購物系統,BA 就會跟銷售業務負責人分析需求。當然,購物系統需求林林總總,銷售業務負責人可能會提出購物系統需要包括商品搜尋、分類的功能,並能支援會員系統並自動生成銷售報告。但在有限的資源和時間下,BA 會再跟業務負責人分析出項目的重要性,排列項目的優先次序,並在敏捷軟件開發的框架下,先後開發和推出。

如BA 和業務負責人都決定要先推出一個項目(例如退款系統),BA 就會根據需求跟開發者和測試人員談論如何實踐需求,並確定和紀錄需求項目。假設需求是退款微波爐,BA 將會以以下格式表達:

# Comment
@tag

Feature: Return Microwave
Scenario: Fred gets his money back
Given Fred has bought a microwave
And the microwave cost £100
When we refund the microwave
Then Fred shouuld be refunded £100

開發者就根據這一份文件繼而開發。由於這個需求是根據自動化測試軟件的格式去編寫,開發者在需求開發完成後,就能使用自動化軟件測試,並生成以下結果:

自動化測試

之後,BA 再整合不同的測試報告,跟業務負責人確認後,就能將開發推出市場。

--

--