• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    關于持續集成

    發布: 2009-11-27 14:23 | 作者: webmaster | 來源: 本站原創 | 查看: 43次 | 進入軟件測試論壇討論

    領測軟件測試網

    關于持續集成   軟件測試

     

    一、什么是持續集成

    這個名詞已經在軟件開發領域持續了N年,一個比較簡單的定義如下:
      持續集成(CI)是一種實踐,可以讓團隊在持續的基礎 上收到反饋并進行改進,不必等到開發周期后期才尋找和修復缺陷。通俗一點兒說,就是指對于開發人員的每一次代碼提交,都自動地把Repository中所有代碼Check out到一個空目錄,并且自動運行所有Test Case。如果成功則接受這次提交,否則告訴所有人,這是一個失敗的Revision。更具體的解釋可以參考Martin fowler的Continuous Integration  。

     

    二、持續集成服務器的選擇

    在進行持續集成實踐前,應當正確的選擇并配置持續集成服務器。比較成熟的持續集成服務器包括:CruiseControl, Anthill, Bamboo, TeamCity, Continuum 等。CruiseControl作為開源產品,以其對于各種SCM以及構建工具的廣泛支持而被許多開發團隊所接受。而開發自動化專家 Duvall 采用一致的評估標準和很多說明性示例,介紹了一些開源 CI 服務器,包括 Continuum、CruiseControl 和 Luntbuild。并指出“要根據 自己的 具體技術和政策需求對工具進行分析”。并用以下五個指標來評估CI工具,它們分別是:(1)  特性;(2)  可靠性;(3)  壽命;(4) 目標環境;(5) 易用性。

          

    而CruiseControl是我唯一真正用過的持續集成工具,它現在靈活而又強大功能也讓我瞠目,而且配置與管理也較兩年前容易得多啦。為什么說它強大呢?因為你只要想得到的問題,它也都會有所考慮。朋友的Blog上有些CruiseControl的最佳實踐足以證明這一點,只要你肯去實踐。

     

     

    三、持續集成的價值與成本

     

    有句時髦的話,叫做“存在即為合理”。既然持續集成已經存在了這么長的時間,而且沒有消失的跡象,那就是有價值的東西。那么它的價值何在?有人概括如下:(1) 減小風險;(2) 減少手動過程;(3) 生成構建結果;(4) 安全感。
      而持續集成的成本在于對持續集成代碼的維護成本和集成的時間成本。因為隨著項目進行,軟硬件環境會越來越復雜,成品代碼也會不斷膨脹。此時,需要團隊而修改或增加原有的測試代碼,以適應這些變化,同時,每次集成所需時間也會變長,這就是持續集成的成本。某個blog中提道:“這種集成是如此的頻繁,多少次的代碼Commit就有多少次持續集成。前提是集成的成本很低,或者說是完全自動化的!

     

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>