国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

PHP測試篇:測試驅動開發和行為驅動開發

瀏覽:4日期:2022-09-16 10:49:16

為PHP代碼編寫自動化測試被認為是一個最佳實踐,可以幫助你構建出高質量的應用。自動化測試可以幫助你確認沒有因為重構或添加 新功能而破壞原有功能,所以應該重視自動化測試。

PHP有多種類型的測試工具和框架可以使用,具體方法各有區別——但是它們的目標都是避免手工測試,滿足大型QA組織的需求,保證最新的 更改沒有破壞已有功能。

測試驅動開發

Wikipedia的定義:

測試驅動開發(TDD)是以非常短的開發周期,不斷進行迭代的軟件開發流程:首先開發者針對改進或新功能編寫失敗的自動化測試用例,然后編寫代碼使測試用例通過, 最后重構代碼,讓代碼滿足可接受的標準。Kent Beck,該技術的創建者或者說重新發現者,在2003年聲明TDD鼓勵簡單的設計和提振信心。

目前對應用有多種類型的測試:

單元測試

單元測試是從編寫開始,貫穿于整個開發周期的一種用于保證函數、類和方法的行為與預期一致的編程方法。通過檢查各個函數和方法的輸入和輸出值,你可以保證它們 內部邏輯已經正確執行;通過依賴注入、編寫mock類和stubs,你可以驗證依賴是否已經正確處理,提高測試覆蓋率。

在編寫一個類或函數的時候,應該為它的每一個行為創建一個單元測試,至少你要保證它收到錯誤參數時能夠觸發錯誤,而參數正確時能正常工作。這可以幫你在后面 修改類或函數的時候,確認已有功能仍然正常工作。PHP中var_dump()的功能與此類似,但是它是無法用于創建應用的。

單元測試的另外一個用武之地是在給開源項目貢獻代碼時,如果你編寫一個測試,證明代碼存在bug,然后修復代碼,讓測試通過,這樣該補丁被接受的概率要高很多。 如果你的項目接受人家的補丁,你應該把單元測試作為項目的一項要求。

PHPUnit是PHP應用的單元測試框架的業界標準,其他幾個可選框架是:

SimpleTestEnhance PHPPUnitatoum集成測試

Wikipedia的定義:

集成測試(也稱集成與測試,縮寫為I&T)是把各個獨立模塊集成在一起,作為一個整體進行測試的軟件測試階段,它處于單元測試和驗收測試之間。集成測試把已經 做過單元測試的模塊集成在一塊,然后運行集成測試用例,最終輸出一個可以進行系統測試的系統。

很多單元測試工具同時也可以用于集成測試,并且原理也是相通的。

功能測試

有時也稱為驗收測試,使用工具創建自動化的測試用例,然后在真實的系統上運行,這一點與單元測試驗證單個模塊的正確性和集成測試驗證模塊間交互的正確性是有 區別的,這些工具通常使用真實的數據集來模擬真實用戶的使用行為來驗證系統的正確性。

功能測試工具SeleniumMinkCodeception?is a full-stack testing framework that includes acceptance testing tools行為驅動開發

行為驅動開發(BDD)有兩種方式:SpecBDD和StoryBDD。SpecBDD關注技術行為或代碼,而StoryBDD關注業務、特性和交互,這兩種方式都有對應的PHP框架。

采用StoryBDD,開發者編寫人類可讀的故事來描述應用的行為,然后這些故事可以作為應用的測試用例。PHP中用于StoryBDD編程的框架是Behat,從Ruby 的Cucumber項目演化而來,實現了Gherkin DSL來描述特性行為。

采用SpecBDD,開發者編寫規格說明來描述實際代碼的行為,與測試一個函數或方法不同,規格描述了一個函數或方法應該具有的行為。PHP中的PHPSpec框 架提供該編程方式的支持,它也是從Ruby的RSpec project演化而來。

BDD鏈接Behat, the StoryBDD framework for PHP, inspired by Ruby’s?Cucumber?project;PHPSpec, the SpecBDD framework for PHP, inspired by Ruby’s?RSpec?project;Codeception?is a full-stack testing framework that uses BDD principles.測試輔助工具

除了測試驅動和行為驅動開發框架,還有大量的通用框架和函數庫,可以在各種開發方法下使用。

工具鏈接Selenium?is a browser automation tool which can be?integrated with PHPUnitMockery?is a Mock Object Framework which can be integrated with?PHPUnit?or?PHPSpec
標簽: PHP
相關文章:
主站蜘蛛池模板: 在线观看免费视频网站色 | 欧美又粗又硬又大久久久 | 亚洲性无码av在线 | 亚洲欧美自拍偷拍 | 午夜不卡视频 | 久久99久久精品免费思思6 | 九九在线免费视频 | 日韩亚洲欧美综合一区二区三区 | cao草棚视频网址成人 | 欧美日韩视频一区二区 | 精品国产免费久久久久久 | 午夜久久久久久久 | 亚洲精品综合一区二区三区在线 | 综合久久久 | 99爱视频免费高清在线观看 | 日韩午夜在线观看 | 精品久| 一区二区三区国产美女在线播放 | 国产精品欧美亚洲日本综合 | 久久久影院亚洲精品 | 国产高清一区二区三区四区 | 玖玖香蕉视频 | 黄色美女网站在线观看 | 久久精品精品 | 亚洲欧洲一区二区 | 精品玖玖玖视频在线观看 | 男女乱淫真视频免费一级毛片 | 日韩三级中文 | 免费看毛片网 | 久久国产精品免费网站 | 91精品欧美综合在线观看 | 国产一区曰韩二区欧美三区 | 久久99精品九九九久久婷婷 | 大陆精品自在线拍国语 | 中文 日本 免费 高清 | 欧美特黄一级aa毛片 | a毛片免费在线观看 | 中文字幕无线码中文字幕网站 | 99在线热视频只有精品免费 | 欧美一级毛片aaaaa | 日本一级毛片高清免费观看视频 |