測試人員,今天再不懂BDD就晚了!
發表于:2019-12-11來源:Testfan Arthur作者:Testfan Arthur點擊數:
標簽: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的過程。
Feature、Scenario、Given、When、Then這些都是關鍵字。
特征文件,需要用英文,這個不要嘗試用漢字。
到這一步,行為驅動測試的第一部分的“B”,就寫完了。是不是很自然?上手很快?
剩下的工作,測試人員就要跟開發人員緊密配合了
。
有興趣的小伙伴,多看看Cucumber官網,很詳細的步驟和文檔。
Python小伙伴們,除了Cucumber框架,我們還有Lettuce框架,可以選擇。后者是一個純Python解決。
如同TDD,BDD也在中國大陸的軟件圈子里逐步熱鬧起來。
小伙伴們,趕快行動起來吧!
原文轉自:https://blog.csdn.net/Testfan_zhou/article/details/90898603