持續集成
用手机看条目
出自 MBA智库百科(https://wiki.mbalib.com/)
(重定向自Continuous Integration)
持續集成(Continuous Integration)
目錄 |
[編輯]
持續集成是指開發階段,對項目進行持續性自動化編譯、測試,以達到控制代碼質量的手段。持續集成是一種軟體開發實踐。
[編輯]
在軟體工程中,持續集成是指軟體開發流程中一系列的最佳實踐,近幾年已被廣發應用到實際項目開發中。極限編程中一項建議實踐便是持續集成,它提供了及時發現問題、追蹤問題、修複問題的機制,替代了傳統的在所有代碼編寫完畢後才提交QA部門進行測試的方法。持續集成對單元測試較為依賴,測試覆蓋率越高,單元測試越準確,越能體現持續集成的效果。持續集成主要在以下方面提供好處:
1、持續自動化測試(持續集成可通過時間間隔觸發,或其他方式觸發)
2、跟蹤工程健康狀況
3、強制性單元測試用例,驗收測試用例等
4、靜態代碼檢測,生成測試報告
[編輯]
理想的持續集成的實現方法:
- 同一個軟體產品要有集中的同一臺開發伺服器,即所有人的最新的、各自編譯通過的源代碼都在配置管理工具如VSS中。
- 有一臺運行主創建的機器,有計劃的運行日構建, 日構建中有一個創建進程,該創建進程是在一個隨時保持運行的Java類中進行的,如果沒有創建任務,創建進程就一直迴圈等待。
- 守護進程將全部代碼(包括原程式和配置文件,資料庫腳本等)提取到創建機器的一個目錄中。提取完成之後,守護進程就會在這個目錄里調用Ant腳本。
- Ant會接管整個創建過程,對所有源代碼做一次完整的創建。Ant腳本會負責整個編譯過程,並把得到的class文件放進六個jar包里,發佈到EJB伺服器上。
- 當Ant完成了編譯和發佈的工作之後,創建守護進程就會在EJB伺服器上開始運行新的jar,同時開始運行BVT測試套件:即利用Junit進行單元測試。單元測試完成後,日構建會把單元測試報告發給有錯誤的開發人員。
- 為了利用自動化工具(WINRUNNER)進行功能測試,必須對JSP編譯,利用jspc命令進行包裝一層,就可以自動的對所有的jsp文件進行編譯,但由於編譯jsp的時間非常長(越比編譯java代碼時間長),所以一般利用單獨的編譯伺服器進行編譯。發佈編譯好的jsp文件進行自動化測試的成功率高(因為第一次運行jsp文件非常慢,而自動化測試最忌諱運行時和錄製時等待得時間不一樣)。而功能性自動化測試也需要按計劃有順序的執行,這需要TestDirector測試管理系統來調度Winrunner進行測試。