日韩av片子_国产自在自线午夜精品视频在_使劲快高潮了国语对白在线_久久免费毛片大全_激情丁香综合_欧美成人精品欧美一级乱黄码

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 軟件研發(fā) > 【中培課堂】詳解開發(fā)過程中的持續(xù)集成

【中培課堂】詳解開發(fā)過程中的持續(xù)集成

2016-07-06 16:04:47 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

持續(xù)集成作為軟件開發(fā)過程中必不可少的經(jīng)常性環(huán)節(jié)。對(duì)于持續(xù)集成,中培偉業(yè)《軟件自動(dòng)化測(cè)試與持續(xù)集成實(shí)踐》培訓(xùn)專家劉老師進(jìn)行了詳細(xì)介紹。

一、概念

互聯(lián)網(wǎng)軟件的開發(fā)和發(fā)布,已經(jīng)形成了一套標(biāo)準(zhǔn)流程,最重要的組成部分就是持續(xù)集成(Continuous integration,簡(jiǎn)稱CI)。持續(xù)集成指的是,頻繁地(一天多次)將代碼集成到主干。它的好處主要有兩個(gè)。

(1)快速發(fā)現(xiàn)錯(cuò)誤。每完成一點(diǎn)更新,就集成到主干,可以快速發(fā)現(xiàn)錯(cuò)誤,定位錯(cuò)誤也比較容易。

(2)防止分支大幅偏離主干。如果不是經(jīng)常集成,主干又在不斷更新,會(huì)導(dǎo)致以后集成的難度變大,甚至難以集成。

持續(xù)集成的目的,就是讓產(chǎn)品可以快速迭代,同時(shí)還能保持高質(zhì)量。它的核心措施是,代碼集成到主干之前,必須通過自動(dòng)化測(cè)試。只要有一個(gè)測(cè)試用例失敗,就不能集成。

Martin Fowler說過,"持續(xù)集成并不能消除Bug,而是讓它們非常容易發(fā)現(xiàn)和改正。"

與持續(xù)集成相關(guān)的,還有兩個(gè)概念,分別是持續(xù)交付和持續(xù)部署。

二、持續(xù)交付

持續(xù)交付(Continuous delivery)指的是,頻繁地將軟件的新版本,交付給質(zhì)量團(tuán)隊(duì)或者用戶,以供評(píng)審。如果評(píng)審?fù)ㄟ^,代碼就進(jìn)入生產(chǎn)階段。

持續(xù)交付可以看作持續(xù)集成的下一步。它強(qiáng)調(diào)的是,不管怎么更新,軟件是隨時(shí)隨地可以交付的。

三、持續(xù)部署

持續(xù)部署(continuous deployment)是持續(xù)交付的下一步,指的是代碼通過評(píng)審以后,自動(dòng)部署到生產(chǎn)環(huán)境。

持續(xù)部署的目標(biāo)是,代碼在任何時(shí)刻都是可部署的,可以進(jìn)入生產(chǎn)階段。持續(xù)部署的前提是能自動(dòng)化完成測(cè)試、構(gòu)建、部署等步驟。它與持續(xù)交付應(yīng)該予以區(qū)別。

四、流程

根據(jù)持續(xù)集成的設(shè)計(jì),代碼從提交到生產(chǎn),整個(gè)過程有以下幾步。

4.1 提交

流程的第一步,是開發(fā)者向代碼倉(cāng)庫(kù)提交代碼。所有后面的步驟都始于本地代碼的一次提交(commit)。

4.2 測(cè)試(第一輪)

代碼倉(cāng)庫(kù)對(duì)commit操作配置了鉤子(hook),只要提交代碼或者合并進(jìn)主干,就會(huì)跑自動(dòng)化測(cè)試。

測(cè)試有好幾種。

單元測(cè)試:針對(duì)函數(shù)或模塊的測(cè)試

集成測(cè)試:針對(duì)整體產(chǎn)品的某個(gè)功能的測(cè)試,又稱功能測(cè)試

端對(duì)端測(cè)試:從用戶界面直達(dá)數(shù)據(jù)庫(kù)的全鏈路測(cè)試

第一輪至少要跑單元測(cè)試。

4.3 構(gòu)建

通過第一輪測(cè)試,代碼就可以合并進(jìn)主干,就算可以交付了。

交付后,就先進(jìn)行構(gòu)建(build),再進(jìn)入第二輪測(cè)試。所謂構(gòu)建,指的是將源碼轉(zhuǎn)換為可以運(yùn)行的實(shí)際代碼,比如安裝依賴,配置各種資源(樣式表、JS腳本、圖片)等等。

常用的構(gòu)建工具主要有Jenkins、Travis、Codeship、Strider四種。其中Jenkins和Strider是開源軟件,Travis和Codeship對(duì)于開源項(xiàng)目可以免費(fèi)使用。它們都會(huì)將構(gòu)建和測(cè)試,在一次運(yùn)行中執(zhí)行完成。

4.4 測(cè)試(第二輪)

構(gòu)建完成,就要進(jìn)行第二輪測(cè)試。如果第一輪已經(jīng)涵蓋了所有測(cè)試內(nèi)容,第二輪可以省略,當(dāng)然,這時(shí)構(gòu)建步驟也要移到第一輪測(cè)試前面。

第二輪是全面測(cè)試,單元測(cè)試和集成測(cè)試都會(huì)跑,有條件的話,也要做端對(duì)端測(cè)試。所有測(cè)試以自動(dòng)化為主,少數(shù)無法自動(dòng)化的測(cè)試用例,就要人工跑。

需要強(qiáng)調(diào)的是,新版本的每一個(gè)更新點(diǎn)都必須測(cè)試到。如果測(cè)試的覆蓋率不高,進(jìn)入后面的部署階段后,很可能會(huì)出現(xiàn)嚴(yán)重的問題。

4.5 部署

通過了第二輪測(cè)試,當(dāng)前代碼就是一個(gè)可以直接部署的版本(artifact)。將這個(gè)版本的所有文件打包( tar filename.tar * )存檔,發(fā)到生產(chǎn)服務(wù)器。

生產(chǎn)服務(wù)器將打包文件,解包成本地的一個(gè)目錄,再將運(yùn)行路徑的符號(hào)鏈接(symlink)指向這個(gè)目錄,然后重新啟動(dòng)應(yīng)用。這方面的部署工具有Ansible,Chef,Puppet等。

4.6 回滾

一旦當(dāng)前版本發(fā)生問題,就要回滾到上一個(gè)版本的構(gòu)建結(jié)果。最簡(jiǎn)單的做法就是修改一下符號(hào)鏈接,指向上一個(gè)版本的目錄。

標(biāo)簽: 軟件開發(fā)
主站蜘蛛池模板: 国产不卡一区在线观看 | 色欧美片视频在线观看 | 亚洲a∨日韩av高清在线观看 | 红桃视频国产精品 | 欧美成人激情 | 日本高清一道本 | 夜鲁鲁鲁夜夜综合视频欧美 | 亚洲欧洲中文日韩 | av制服丝袜诱惑天堂 | 国产大片网站 | 风流老太婆大BBWBBWHD视频 | 欧美v国产在线一区二区三区 | av女优天堂在线观看 | 中文字幕一本到无线 | 国产对白老熟女正在播放 | 在线看成人片 | 国产在线精品一区 | 在线观看亚洲专区 | 宅男噜噜66国产精品免费 | 国产精品久久久久人妻无码 | 91视频亚洲 | 黄色综合网站 | 国产精品久久久久久久久久妞妞 | 大香伊蕉AV在人线国产 | 秀婷程仪公欲息肉婷在线观看 | 日本中文字幕一区 | 巨爆乳中文字幕巨爆区巨爆乳无码 | 日本在线不卡免费视频 | 波多野结衣中文AV无码专区 | 国产精品一级毛片在线 | 日韩成人综合网 | 无码国产精品免费看 | 久久人体大尺寸大胆高清 | 国产一区二区不卡 | 久久久国产一区二区三区四区小说 | 黄色片在线播放 | 青青草网站在线观看 | 国产91精品一区二区绿帽 | 亚洲性夜色噜噜噜在线观看不卡 | 国产在线看片免费视频在线观看 | 中文字幕无码家庭乱欲 |