一種用于進(jìn)行持續(xù)集成的方法和設(shè)備的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及軟件開發(fā)及測試技術(shù)領(lǐng)域,尤其涉及一種用于進(jìn)行持續(xù)集成的技術(shù)。
【背景技術(shù)】
[0002] 持續(xù)集成(Cl, Continuous Integration)是敏捷開發(fā)(Agile development)的 一個(gè)重要組成部分,其對于具有高質(zhì)量的有效產(chǎn)品開發(fā)是至關(guān)重要的。然而,現(xiàn)有的Cl系 統(tǒng)主要提供關(guān)于測試的通用框架(framework),如提供關(guān)于持續(xù)集成的通用指導(dǎo)(如敏捷開 發(fā)方法的創(chuàng)始人之一 Martin Fowler在線出版的《持續(xù)集成》,http://martinfowler. com/ articles/continuouslntegration. html)或框架(如基于Java開發(fā)的一種持續(xù)集成工具 Hudson)。在這些CI系統(tǒng)中,僅專注于測試基礎(chǔ)結(jié)構(gòu)或平臺。單元測試(unit test)、特征 集成(feature integration)與系統(tǒng)集成(system integration)是分離設(shè)計(jì)、人工選擇、構(gòu) 成與觸發(fā)的,很少有在一個(gè)系統(tǒng)中提供集成了自動軟件開發(fā)、測試用例設(shè)計(jì)與選擇、多分辨 率(multi-resolution)集成及質(zhì)量增強(qiáng)過程的總體解決方案,因此,如何實(shí)現(xiàn)整體軟件開 發(fā)與集成過程的高度自動化,且有效提高軟件質(zhì)量是亟待解決的問題。
【發(fā)明內(nèi)容】
[0003] 本發(fā)明的目的是提供一種用于進(jìn)行持續(xù)集成的方法與設(shè)備。
[0004] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種用于進(jìn)行持續(xù)集成的方法,其中,該方法包 括:
[0005] a根據(jù)持續(xù)集成請求,對所述持續(xù)集成請求所對應(yīng)的一個(gè)或多個(gè)目標(biāo)代碼執(zhí)行對 應(yīng)的第一級目標(biāo)測試用例,其中,所述第一級目標(biāo)測試用例與所述持續(xù)集成請求所對應(yīng)的 第一級測試的測試精度相對應(yīng);
[0006] b當(dāng)所述第一級目標(biāo)測試用例被執(zhí)行通過時(shí),將所述一個(gè)或多個(gè)目標(biāo)代碼合并到 對應(yīng)的第一目標(biāo)合并代碼;
[0007] C根據(jù)所述持續(xù)集成請求,對所述第一目標(biāo)合并代碼執(zhí)行對應(yīng)的第二級目標(biāo)測試 用例,其中,所述第二級目標(biāo)測試用例與所述持續(xù)集成請求所對應(yīng)的第二級測試的測試精 度相對應(yīng)。
[0008] 根據(jù)本發(fā)明的另一方面,還提供了一種用于進(jìn)行持續(xù)集成的集成設(shè)備,其中,該集 成設(shè)備包括:
[0009] 第一級測試裝置,用于根據(jù)持續(xù)集成請求,對所述持續(xù)集成請求所對應(yīng)的一個(gè)或 多個(gè)目標(biāo)代碼執(zhí)行對應(yīng)的第一級目標(biāo)測試用例,其中,所述第一級目標(biāo)測試用例與所述持 續(xù)集成請求所對應(yīng)的第一級測試的測試精度相對應(yīng);
[0010] 第一合并裝置,用于當(dāng)所述第一級目標(biāo)測試用例被執(zhí)行通過時(shí),將所述一個(gè)或多 個(gè)目標(biāo)代碼合并到對應(yīng)的第一目標(biāo)合并代碼;
[0011] 第二級測試裝置,用于根據(jù)所述持續(xù)集成請求,對所述第一目標(biāo)合并代碼執(zhí)行對 應(yīng)的第二級目標(biāo)測試用例,其中,所述第二級目標(biāo)測試用例與所述持續(xù)集成請求所對應(yīng)的 第二級測試的測試精度相對應(yīng)。
[0012] 根據(jù)本發(fā)明的再一個(gè)方面,還提供了一種用于軟件開發(fā)的持續(xù)集成設(shè)備,其中,該 持續(xù)集成設(shè)備包括如前述根據(jù)本發(fā)明另一個(gè)方面的用于進(jìn)行持續(xù)集成的集成設(shè)備。
[0013] 與現(xiàn)有技術(shù)相比,本發(fā)明提供了集自動軟件開發(fā)、測試用例設(shè)計(jì)與選擇、多分辨率 (multi-resolution)集成及質(zhì)量增強(qiáng)過程為一體的總體解決方案。首先,本發(fā)明對持續(xù) 集成請求所對應(yīng)的目標(biāo)代碼執(zhí)行對應(yīng)的第一級目標(biāo)測試用例,其中,所述第一級目標(biāo)測試 用例與所述持續(xù)集成請求所對應(yīng)的第一級測試的測試精度相對應(yīng),當(dāng)所述第一級目標(biāo)測試 用例被執(zhí)行通過時(shí),將目標(biāo)代碼合并到對應(yīng)的第一目標(biāo)合并代碼,以對第一目標(biāo)合并代碼 執(zhí)行對應(yīng)的第二級目標(biāo)測試用例,其中,所述第二級目標(biāo)測試用例與所述持續(xù)集成請求所 對應(yīng)的第二級測試的測試精度相對應(yīng),通過基于多測試精度的測試用例架構(gòu),進(jìn)行測試用 例的自動選擇、調(diào)整與執(zhí)行,使得整體軟件開發(fā)及持續(xù)集成過程自動化,提高了持續(xù)集成效 率;而且,本發(fā)明在對目標(biāo)代碼執(zhí)行所述第一級目標(biāo)測試用例之前,還可檢測是否滿足根據(jù) 所述第一級目標(biāo)測試用例進(jìn)行測試的測試可用性觸發(fā)條件,實(shí)現(xiàn)測試過程中自動地進(jìn)行待 測產(chǎn)品(軟件和硬件等)的過程檢查,以保證較高的開發(fā)質(zhì)量。
[0014] 此外,本發(fā)明還可提供靈活的用戶界面以允許在不同測試精度或不同測試類型基 于用戶需求進(jìn)行持續(xù)集成,提高了持續(xù)集成效率及用戶持續(xù)集成操作體驗(yàn)。
【附圖說明】
[0015] 通過閱讀參照以下附圖所作的對非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它 特征、目的和優(yōu)點(diǎn)將會變得更明顯:
[0016] 圖1示出根據(jù)本發(fā)明一個(gè)方面的用于進(jìn)行持續(xù)集成的設(shè)備示意圖;
[0017] 圖2示出本發(fā)明的持續(xù)集成系統(tǒng)的圖形用戶界面示意圖;
[0018] 圖3示出本發(fā)明的持續(xù)集成系統(tǒng)示意圖;
[0019] 圖4示出本發(fā)明的測試用例架構(gòu)示意圖;
[0020] 圖5示出具有兩個(gè)目標(biāo)及一個(gè)測試集的邏輯測試環(huán)境示意圖;
[0021] 圖6示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的用于進(jìn)行持續(xù)集成的設(shè)備示意圖;
[0022] 圖7示出根據(jù)本發(fā)明另一個(gè)方面的用于進(jìn)行持續(xù)集成的方法流程圖;
[0023] 圖8示出根據(jù)本發(fā)明一個(gè)優(yōu)選實(shí)施例的用于進(jìn)行持續(xù)集成的方法流程圖。
[0024] 附圖中相同或相似的附圖標(biāo)記代表相同或相似的部件。
【具體實(shí)施方式】
[0025] 下面結(jié)合附圖對本發(fā)明作進(jìn)一步詳細(xì)描述。
[0026] 圖1示出根據(jù)本發(fā)明一個(gè)方面的用于進(jìn)行持續(xù)集成的集成設(shè)備1,其中,集成設(shè)備 1包括第一級測試裝置11、第一合并裝置12和第二級測試裝置13。具體地,第一級測試裝置 11根據(jù)持續(xù)集成請求,對所述持續(xù)集成請求所對應(yīng)的一個(gè)或多個(gè)目標(biāo)代碼執(zhí)行對應(yīng)的第一 級目標(biāo)測試用例,其中,所述第一級目標(biāo)測試用例與所述持續(xù)集成請求所對應(yīng)的第一級測 試的測試精度相對應(yīng);當(dāng)所述第一級目標(biāo)測試用例被執(zhí)行通過時(shí),第一合并裝置12將所述 一個(gè)或多個(gè)目標(biāo)代碼合并到對應(yīng)的第一目標(biāo)合并代碼;第二級測試裝置13根據(jù)所述持續(xù) 集成請求,對所述第一目標(biāo)合并代碼執(zhí)行對應(yīng)的第二級目標(biāo)測試用例,其中,所述第二級目 標(biāo)測試用例與所述持續(xù)集成請求所對應(yīng)的第二級測試的測試精度相對應(yīng)。在此,集成設(shè)備I 包括用于軟件開發(fā)實(shí)踐中供團(tuán)隊(duì)開發(fā)成員測試、集成源代碼以幫助項(xiàng)目組成員盡早發(fā)現(xiàn)項(xiàng) 目風(fēng)險(xiǎn)和質(zhì)量問題的持續(xù)集成系統(tǒng)或平臺,其可由網(wǎng)絡(luò)設(shè)備、用戶設(shè)備或網(wǎng)絡(luò)設(shè)備與用戶 設(shè)備通過網(wǎng)絡(luò)相集成所構(gòu)成的設(shè)備實(shí)現(xiàn)。在此,所述網(wǎng)絡(luò)設(shè)備包括但不限于如網(wǎng)絡(luò)主機(jī)、單 個(gè)網(wǎng)絡(luò)服務(wù)器、多個(gè)網(wǎng)絡(luò)服務(wù)器集或基于云計(jì)算的計(jì)算機(jī)集合等實(shí)現(xiàn)。在此,云由基于云計(jì) 算(Cloud Computing)的大量主機(jī)或網(wǎng)絡(luò)服務(wù)器構(gòu)成,其中,云計(jì)算是分布式計(jì)算的一種, 是由一群松散耦合的計(jì)算機(jī)集組成的一個(gè)超級虛擬計(jì)算機(jī)。在此,所述用戶設(shè)備可以是任 何一種可與用戶通過鍵盤、觸摸板、觸摸屏等方式進(jìn)行人機(jī)交互的電子產(chǎn)品,例如臺式計(jì)算 機(jī)、PC、MAC、PDA等。所述網(wǎng)絡(luò)包括但不限于互聯(lián)網(wǎng)、廣域網(wǎng)、城域網(wǎng)、局域網(wǎng)、VPN網(wǎng)絡(luò)、無 線自組織網(wǎng)絡(luò)(Ad Hoc網(wǎng)絡(luò))等。本領(lǐng)域技術(shù)人員應(yīng)能理解上述集成設(shè)備1僅為舉例,其他 現(xiàn)有的或今后可能出現(xiàn)的網(wǎng)絡(luò)設(shè)備或用戶設(shè)備如可適用于本發(fā)明,也應(yīng)包含在本發(fā)明保護(hù) 范圍以內(nèi),并在此以引用方式包含于此。在此,網(wǎng)絡(luò)設(shè)備及用戶設(shè)備均包括一種能夠按照事 先設(shè)定或存儲的指令,自動進(jìn)行數(shù)值計(jì)算和信息處理的電子設(shè)備,其硬件包括但不限于微 處理器、專用集成電路(ASIC)、可編程門陣列(FPGA)、數(shù)字處理器(DSP)、嵌入式設(shè)備等。
[0027] 具體地,第一級測試裝置11首先通過諸如持續(xù)集成設(shè)備所提供的應(yīng)用程序接口 (API),獲取持續(xù)集成請求;或者,通過持續(xù)集成設(shè)備所提供的用戶界面(如命令行用戶界 面、圖形用戶界面等)對應(yīng)的應(yīng)用程序接口(API),獲取用戶在用戶界面中執(zhí)行的啟動持續(xù) 集成操作,以獲取所述持續(xù)集成請求;或者,通過http、https等約定的通信方式,獲取所述 持續(xù)集成請求;然后,再根據(jù)持續(xù)集成請求,確定對應(yīng)于所述持續(xù)集成請求所對應(yīng)的一個(gè)或 多個(gè)目標(biāo)代碼的第一級目標(biāo)測試用例,如從預(yù)先創(chuàng)建于所述目標(biāo)代碼所對應(yīng)的文件目錄下 的測試用例中篩選出第一級目標(biāo)測試用例,或者,根據(jù)所述目標(biāo)代碼與所述第一級目標(biāo)測 試用例之間的映射關(guān)系,從測試用例庫匹配查詢得到所述第一級目標(biāo)測試用例,其中,所述 第一級目標(biāo)測試用例與所述持續(xù)集成請求所對應(yīng)的第一級測試的測試精度相對應(yīng);接著, 再對該一個(gè)或多個(gè)目標(biāo)