• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 測試人員,今天再不懂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

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>