在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成_第1頁
在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成_第2頁
在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成_第3頁
在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成_第4頁
在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第第頁在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成在軟件測試中有關(guān)日構(gòu)建和持續(xù)集成

發(fā)表于:2023-06-26來源::點擊數(shù):標簽:軟件測試構(gòu)建

為什么需要日構(gòu)建日構(gòu)建和持續(xù)集成是類似的,對開放源碼熟悉的人應(yīng)該都知道NightlyBuild。而持續(xù)集成這個詞來自XP方法,它的頻率可以比日構(gòu)建更高,可以做到幾分鐘就進行一次集成,故而由此得名。在本文中,我們只討論日構(gòu)建,而要將日構(gòu)建轉(zhuǎn)換為持續(xù)集成

為什么需要日構(gòu)建

日構(gòu)建和持續(xù)集成是類似的,對開放源碼熟悉的人應(yīng)該都知道NightlyBuild。而持續(xù)集成這個詞來自XP方法,它的頻率可以比日構(gòu)建更高,可以做到幾分鐘就進行一次集成,故而由此得名。在本文中,我們只討論日構(gòu)建,而要將日構(gòu)建轉(zhuǎn)換為持續(xù)集成是非常容易的。事實上,并沒有規(guī)定持續(xù)集成必須是以分鐘為單位進行的,如果你愿意,以一周為單位進行持續(xù)集成也是可行的。這樣區(qū)分的目的是為了更好的使用日構(gòu)建或是持續(xù)集成技術(shù):至少以天為單位,頻率越高,效果則越好。

那么,什么是日構(gòu)建呢?我們傳統(tǒng)開發(fā)軟件的流程一般是這樣,理解領(lǐng)域問題,然后分配任務(wù),由不同的人負責不同的軟件部件,在開發(fā)完成之后,再把各人的部件整合起來,形成完整的軟件。這個思路看起來并沒有什么問題,但是在實踐中卻問題多多。

首先,這種方式適合開發(fā)人員之間工作彼此沒有交集的情況,以前這種現(xiàn)象很常見,但是現(xiàn)在,隨著軟件規(guī)模的擴大、分工合作的加深,開發(fā)人員間的相互依賴程度越來越高,這種清晰的職責劃分已經(jīng)變得越來越難了。

其次,在軟件集成時,往往會出現(xiàn)各種各樣的問題,可是卻很難發(fā)現(xiàn)到底問題在哪里?公說公有理,婆說婆有理。每個人的代碼都沒有問題,結(jié)合到一起就出現(xiàn)大量的問題。

所以日構(gòu)建就將平時難得一見的集成工作轉(zhuǎn)換成頻繁進行的一件工作,從而使得原先如同噩夢般的集成變成了一件簡單的工作。這也是很容易理解的,如果集成工作幾個月才進行一次,誰能夠記起幾個月前的細節(jié)呢?但是如果集成以天,甚至以分鐘為單位進行,排除bug就變成一件很容易的事情了。

日構(gòu)建范例

現(xiàn)在的時間是下午的17:00,馬上就到日構(gòu)建的時間了。團隊里四名程序員中的三位已經(jīng)將自己的源代碼和測試代碼提交到了一臺名為宙斯的機器上,這臺機器將負責對代碼進行日構(gòu)建。在他們提交代碼之前,已經(jīng)通過了本機上的構(gòu)建,并完成了測試。剩下的一位程序員似乎碰到了麻煩,他的代碼出現(xiàn)了一些問題,他現(xiàn)在需要編寫更多的測試來完善測試網(wǎng)??磥頃r間來不及了,他只能夠在明天再做提交了。由于他的代碼沒有和其他人產(chǎn)生依賴,所以遲些提交也沒有關(guān)系,不過他在下個工作日的時候必須仔細的將最新的源代碼檢出到本地,在版本控制工具的幫助下,這項工作是很簡單的。

17:10,宙斯終于開始了構(gòu)建的過程。他從代碼源中檢出最新代碼,然后開始編譯,構(gòu)建,并執(zhí)行了所有的測試,從控制臺界面上,日構(gòu)建的負責人(其中的一位程序員)似乎看到了有部分的測試沒有通過,他對剩下的人說,似乎有麻煩了。測試完成之后,將會從代碼中生成所有的API文檔,并進行代碼分析和測試覆蓋率分析,最新測試報告和各種其它的報告都將會發(fā)布到Web上。

最后。完成構(gòu)建的軟件和相關(guān)的資料已經(jīng)成功的發(fā)布了,時鐘指向17:18。\"現(xiàn)在只是項目的早期,到了中后期,至少還需要20分鐘的時間\",老鳥程序員告訴沒有經(jīng)驗的程序員,并讓大家去看看測試結(jié)果。一個程序員邊嘟囔,邊看log日志,\"我在本機都已經(jīng)測試過了呀,怎么會有錯呢。\"檢查結(jié)果發(fā)現(xiàn)是環(huán)境問題,配置文件被人改動了。看來,集成過程中仍然少不了沖突的問題,只不過,這些問題可以被很快的發(fā)現(xiàn),并很快的得以解決。

以上是一個典型的日構(gòu)建過程,日構(gòu)建的過程是完全自動化的,通過預(yù)先定義好的指令,機器將按照指令順序執(zhí)行完所有的構(gòu)建步驟。日構(gòu)建中涉及的步驟是可選的。

日構(gòu)建的價值

可能有些人認為日構(gòu)建過于浪費時間,但是實際上,比起最后除錯的成本來說,日構(gòu)建成本是微不足道的。當然,在企業(yè)中建立日構(gòu)建制度確實需要花費不少的時間,但從長遠來看,這絕對是值得的。

從表面上看,日構(gòu)建能夠減少最終的排錯成本,但這僅僅是日構(gòu)建最基本的價值。實際上,日構(gòu)建更為關(guān)鍵的作用是能夠引入日構(gòu)建的制度。這是什么意思呢?日構(gòu)建的思路將會為軟件企業(yè)的開發(fā)流程帶來變化:開發(fā)人員將會在日構(gòu)建的制度下更加頻繁的協(xié)作,開發(fā)進度一目了然,軟件的質(zhì)量也會更加的穩(wěn)定。

軟件開發(fā)本身就是一項強調(diào)溝通和協(xié)作的活動。但是在日常的活動中,常常出現(xiàn)阻礙溝通的情況,例如需要溝通的雙方不在同一個地理位置、噪聲、溝通雙方的意愿等等。因此在軟件管理中需要提供一種方法,來鼓勵人們進行溝通。日構(gòu)建就是其中的一種方法(但它并不是唯一的方法)。每一次的構(gòu)建將會涉及到團隊中的所有成員,因此溝通是少不了的,在日構(gòu)建實踐的驅(qū)動下,每位開發(fā)人員都朝著最終的目的-\"成功的構(gòu)建\"努力。

在AlistairCockburn的敏捷軟件開發(fā)的第三章中,詳細的闡述了團隊溝通和協(xié)作中的相關(guān)問題。例如溝通的實質(zhì),影響溝通的各種因素,以及如何克服他們。最后,他還論述了如何促進團隊的溝通,來打造一支成功的團隊。

在日構(gòu)建的驅(qū)動下,項目的進度將會變得非常的明顯。每一天的構(gòu)建結(jié)果將會通過某個渠道發(fā)布出來,團隊和團隊的老板可以看到軟件

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論