測試人員,今天再不懂BDD就晚了!


      首先,測試人員應該參與軟件開發的全流程,這一點已經是軟件行業的共識了。

    其次,新技術、新框架、新思路不斷涌現的今天,測試人員除了傳統的功能測試,也要不斷與時俱進,主動承擔起自動化測試、性能測試等。除了更多參與軟件流程,測試人員更要以自己的技術能力證明自己的價值!

    再次,隨着敏捷開發模式的不斷迭代發展,敏捷開發的技術和管理模式,已經深入到傳統和新興的各個軟件公司。

    敏捷開發,除了快速迭代的項目管理模式,還帶來了一系列技術實踐層面的新思想、新概念。而且,新思路、新概念、新模式也在敏捷開發的一次一次迭代中不斷推陳出席!

    早期的TDD

(Test Driven Development),

測試驅動開發,就是敏捷開發帶來的軟件開發新實踐。TDD讓測試人員更深入地參與到了軟件開發生命周期中。

    TDD推出了幾年之后,新的敏捷開發迭代,還在持續着。

    新迭代的產物,是軟件開發更加貼近業務邏輯的“行為驅動開發”,縮寫為BDD。

 

BDD(Behavior Driven Development),行為驅動開發是一種敏捷軟件開發的技術,它鼓勵軟件項目中的開發者、QA和非技術人員或商業參與者之間的協作。

BDD的開發流程,像下面這樣:

BDD最初是由Dan North在2003年命名,2009年在倫敦發表的“敏捷規格,BDD和極限測試交流”中,Dan North對BDD給出了如下定義

BDD是第二代的、由外及內的、基於拉(pull)的、多方利益相關者的(stakeholder)、多種可擴展的、高自動化的敏捷方法。它描述了一個交互循環,可以具有帶有良好定義的輸出(即工作中交付的結果):已測試過的軟件。

 

Dan North創造了首個BDD框架:JBehave。之后是Ruby語言的基於故事的RBehave,后來被納入了RSpec項目。RSpec中第一個基於故事的框架,后來被主要由Aslak Hellesøy開發的Cucumber取代。

 

Cucumber框架可以說是BDD的代名詞了。官網:https://cucumber.io

Cucumber支持的語言也非常多,比如:

• Java Virtual Machine: Cucumber-JVM

• .NET (Microsoft.NET and Mono): IronRuby and .NET, IronRuby and Mono

• Adobe Flex: FunFX, Melomel

• Python

• Perl: Test::BDD::Cucumber

• Erlang: cucumberl kucumberl

• PHP: Behat (使用 Mink 進行瀏覽器測試

 

 

下面以JAVA為例,簡單描述一下Cucumber進行BDD的過程。

1. 安裝 cucumber-archetype Maven插件;

2. 在命令行建立一個項目

3. 進入目錄 src/test/resources/hellocucumber,創建行為特征文件,包含場景、動作和響應。

Feature、Scenario、Given、When、Then這些都是關鍵字。

特征文件,需要用英文,這個不要嘗試用漢字。

    到這一步,行為驅動測試的第一部分的“B”,就寫完了。是不是很自然?上手很快?

    剩下的工作,測試人員就要跟開發人員緊密配合了。

    有興趣的小伙伴,多看看Cucumber官網,很詳細的步驟和文檔。

    Python小伙伴們,除了Cucumber框架,我們還有Lettuce框架,可以選擇。后者是一個純Python解決。

    如同TDD,BDD也在中國大陸的軟件圈子里逐步熱鬧起來。

    小伙伴們,趕快行動起來吧!

作  者:Testfan Arthur
出  處:微信公眾號:自動化軟件測試平台
版權說明:歡迎轉載,但必須注明出處,並在文章頁面明顯位置給出文章鏈接

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM