軟體測試持續整合的方法實踐

玄學醬發表於2017-07-10

配置管理

  配置管理在軟體開發專案中極其重要,它記錄了軟體開發流程的演進過程。它能夠實現軟體增量式開發,並隨時可以追溯或檢視任意時間的軟體版本。持續整合一書中對配置管理是這樣定義的:

  配置管理是指一個過程,通過該過程,所有與專案相關的產物,以及它們之間的關係都被唯一的定義、修改、儲存和檢索。

  那麼我們怎麼做配置管理?

  (一)版本控制

  (1)首先我們需要一個版本控制系統,Subversion、Mercurial或者Git,對於一個分散式的團隊最好優先選擇Mercurial或者Git。

  (2)把軟體開發有關的所有內容進行版本控制。包括原始碼、資料庫指令碼、構建指令碼、部署指令碼、文件、第三方依賴、MindMap等等。保證新加入的成員能夠很容易地從零開始工作,保證在新的測試或者生產中能輕鬆部署應用。

  (3)頻繁提交程式碼到主幹。為了驗證修改的正確性,快速的得到反饋,以及能夠輕鬆地回滾到某個無錯誤的版本,提倡頻繁提交。

  (4)提交註釋清晰明瞭。構建失敗時,為了能夠通過版本控制器查詢是誰破壞了構建,以及他做了哪些修改,提交程式碼的時候必須使用意義明顯的提交註釋。建議第一段是簡短的總結,第二段是描述更多的修改細節。

  (二)依賴管理

  第三方庫檔案是最常見的依賴,我們可以在本地建一個外部依賴庫的副本來統一管理所有依賴,如果你使用Maven,你就可以這樣做。

  (三)環境配置

  軟體最終的執行環境可能不止一個,而且每個軟體都會依賴的硬體、軟體、基礎設施或者外部系統才能工作。我們必須把環境配置自動且可靠化,可以藉助Puppet或者CfEngine之類的工具軟體。

  持續整合

  敏捷宣言首要原則就是儘快的交付可工作的軟體到客戶手中,為了實現這一原則,控制成本並及早的驗證修改的正確性和快速得到反饋,提倡使用持續整合方法。

  準備工作:

  (1)版本控制

  (2)自動化構建

  (3)持續整合系統(Jenkins,Go,TeamCity等等)

  (4)七步程式碼提交法則。如下圖:

  為了實現持續整合需要做一下準備:

  (1)頻繁提交

  (2)建立全面的自動化測試套件(單元測試、功能測試等)

  (3)保持較短的構建和測試過程

  (4)視覺化構建狀態(可使用紅綠熔岩燈)

  必不可少的實踐

  (1)構建失敗後不要提交程式碼

  (2)提交前在本地執行所有的提交測試(單元測試、功能測試等)

  (3)等提交測試通過後再繼續工作

  (4)下班之前,構建必須處於成功狀態

  (5)若測試執行慢,就讓構建失敗

  (6)若有編譯錯誤或者程式碼風格問題,就讓構建失敗

  持續整合改變了以往的軟體開發模式,使應用程式任何時候都處於可執行狀態,建立了一個快速的反饋環,使你能夠儘早的發現問題,而發現問題越早,修復成本越低。

  測試策略

  測試策略的設計主要是識別和評估專案風險的優先順序,以及決定採用哪些行為來緩解風險的一個過程。

  測試有很多種,Brian Marick提出瞭如下圖 所示的測試象限。

  好的測試策略會帶來很多的積極作用。測試會建立我們的信心,使我們相信軟體可按預期正常執行。

相關連結:

軟體開發為何採用持續整合








====================================分割線================================



最新內容請見作者的GitHub頁:http://qaseven.github.io/


相關文章