1. 程式人生 > >【測試入門序列】持續整合與Jenkins

【測試入門序列】持續整合與Jenkins

什麼是Jenkins

Jenkins 是一套持續整合軟體,前身是 Hudson,Sun 被 Oracle 收購後為了開源分支的名字就從 Hudson 改成了 Jenkins 並繼續發展。 Jenkins 的 Logo 是個小老頭,比較好玩:
Jenkins小老頭

什麼是持續整合 ?

持續整合,聽上去高大上,實際實踐很簡單:無非就是搞一個獨立的應用,負責定時拉原始碼,然後執行一些重複性工作,如編譯打包、執行測試指令碼等。執行結果會郵件給相關人員,並且提供了 WEB 介面檢視執行日誌,歷史執行結果一目瞭然。當然了,持續整合背後還有很多理念,就不一一追究了。

Jenkins 就是這麼一個工具,幫助開發測試人員做一些重複性勞動。其核心能力就是能夠執行一段 Shell 指令碼,指令碼可由工程人員定製。

以上是我的理解。下面是專業解釋:

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

為什麼要做持續整合?

為什麼要做持續整合呢? 重複的活兒沒人喜歡做,但很重要。重複的過程中我們能及時發現問題並整改。總是靠人來做重複性勞動,總會疲憊,最後流產。所以,持續整合工具,是持續整合中的重要一環。

但是,理解了持續整合的本質,就算沒有工具,也是可以人肉做持續整合的,特別是初始階段做不到面面俱到的時候。例如,每天晚上跑一次測試指令碼,每週做一次備份,都是一種持續整合。只是“持續”間隔,觸發時機差一點罷了。

做好持續整合的前提

可自動化執行的測試集。

有了測試集,才能知道整合是否成功,是否出現新問題。只是看編譯是否成功,太 easy,不是持續整合要解決的核心問題。

持續整合對我未來工作的啟發

  1. 程式碼必須有測試集
  2. 作為程式碼和釋出之間的橋樑,確保錯誤程式碼不會對外發布