1. 程式人生 > >淺談自動化測試之持續整合

淺談自動化測試之持續整合

from:https://www.cnblogs.com/wysk/p/7517277.html

一、持續整合是什麼?

持續整合是一種軟體開發的實踐,即團隊開發成員經常整合他們的工作,通常每個成員每天至少整合一次,也就意味著每天可能會發生多次整合。每次整合都通過自動化的構建(包括編譯,釋出,自動化測試)來驗證,從而儘快地發現整合錯誤。許多團隊發現這個過程可以大大減少整合的問題,讓團隊能夠更快的開發內聚的軟體。

 

持續整合指的是,頻繁地(一天多次)將程式碼整合到主幹,通過持續整合流程的進行自動化方式的構建,編譯和測試,提供可以部署釋出的單元包

持續整合的目的,就是讓產品可以快速迭代,同時還能保持高質量。

它的核心措施是,程式碼整合到主幹之前,必須通過自動化測試。

只要有一個測試用例失敗,就不能整合。

Martin Fowler說過,"持續整合並不能消除Bug,而是讓它們非常容易發現和改正。與持續整合相關的,還有兩個概念,分別是持續交付和持續部署。

 二 持續整合的價值是什麼?

 1、降低風險,由於持續整合不斷去構建,編譯和測試,可以很早期發現問題,所以修復的代價就少;

 2、對系統健康持續檢查,減少釋出風險帶來的問題;

 3、減少重複性工作;

 4、持續部署,提供可部署單元包;

 5、持續交付可供使用的版本;

 6、增強團隊信心;

 

三、持續整合流程

  持續整合一般的做法: 通過svn或其他工具拉取程式碼->自動化構建->自動化編譯->自動化測試->自動化部署->自動化釋出->郵件傳送通知;

 

四、持續交付

  持續交付(Continuous delivery)指的是,頻繁地將軟體的新版本,交付給質量團隊或者使用者,以供評審。如果評審通過,程式碼就進入生產階段。

  持續交付可以看作持續整合的下一步。它強調的是,不管怎麼更新,軟體是隨時隨地可以交付的。

五、持續部署

  持續部署(continuous deployment)是持續交付的下一步,指的是程式碼通過評審以後,自動部署到生產環境。

  持續部署的目標是,程式碼在任何時刻都是可部署的,可以進入生產階段。

  持續部署的前提是能自動化完成測試、構建、部署等步驟。

 

測試是持續整合流程中重要的一環,也是區別去傳統的軟體開發流程中的一個重要的標誌。為什麼要有持續整合測試呢?

1、可以早點發現bug,這就是fix bug代價比較小

2、可以平滑產品,提高產品質量

3、可以讓團隊的每個人瞭解產品的質量狀態

4、每天都有持續整合測試的報告發布

5、開發者對自己提交的程式碼測試情況有比較清晰的瞭解

6、可以有效地解決在QA人手不足的情況

7、儘可能地把測試自動化,讓持續整合測試系統去執行這些自動化測試的case

 六、推薦書籍