代碼文件的編譯發(fā)布方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開一種代碼文件的編譯發(fā)布方法及系統(tǒng),該方法包括:偵測(cè)用于對(duì)代碼文件發(fā)起編譯的編譯指令;偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息;根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件;比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表;輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件以供測(cè)試。本發(fā)明通過將編譯與測(cè)試發(fā)布進(jìn)行結(jié)合,使得測(cè)試發(fā)布過程中可以根據(jù)當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的差異對(duì)當(dāng)前編譯文件進(jìn)行針對(duì)性的測(cè)試,提高編輯發(fā)布的效率。
【專利說明】代碼文件的編譯發(fā)布方法及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,尤其涉及一種代碼文件的編譯發(fā)布方法及系統(tǒng)。
【背景技術(shù)】
[0002]通用網(wǎng)關(guān)接口(Common Gateway Interface,CGI)在物理上是一段程序,運(yùn)行在服務(wù)器上,客戶端可以訪問它并獲取數(shù)據(jù)。
[0003]目前的CGI的發(fā)布方式一般為:開發(fā)人員編寫好代碼后,將提交代碼至版本管理(Subvers1n, SVN)服務(wù)器上,并在開發(fā)機(jī)上對(duì)源代碼進(jìn)行編譯,以編譯生成目標(biāo)CGI后,對(duì)其進(jìn)行自測(cè)或提請(qǐng)測(cè)試人員對(duì)其測(cè)試。由于代碼是由開發(fā)人員編寫并提交,而對(duì)代碼的功能測(cè)試、系統(tǒng)測(cè)試等驗(yàn)證工作則通過測(cè)試人員處理,因此當(dāng)不同版本的代碼之間存在差異時(shí),測(cè)試人員在測(cè)試過程中發(fā)現(xiàn)BUG時(shí),卻因不知道目標(biāo)CGI的變更情況而對(duì)BUG進(jìn)行精確地定位,而只能交由開發(fā)人員處理,從而降低了工作效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例技術(shù)方案的主要目的是提供一種代碼文件的編譯發(fā)布方法,旨在提高軟件開發(fā)中,代碼文件的編譯發(fā)布的效率,從而降低測(cè)試成本。
[0005]為實(shí)現(xiàn)上述目的,本發(fā)明實(shí)施例技術(shù)方案提供了一種代碼文件的編譯發(fā)布方法,包括以下步驟:
[0006]偵測(cè)用于對(duì)代碼文件發(fā)起編譯的編譯指令;
[0007]偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息;
[0008]根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件;
[0009]比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表;
[0010]輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件以供測(cè)試。
[0011]本發(fā)明實(shí)施例技術(shù)方案還提供了一種代碼文件的編譯發(fā)布系統(tǒng),包括:
[0012]偵測(cè)模塊,用于偵測(cè)用于代碼文件發(fā)起編譯的編譯指令;
[0013]編譯模塊,用于偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息;
[0014]編譯文件獲取模塊,用于根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件;
[0015]比較模塊,用于比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表;
[0016]輸出模塊,用于輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件以供測(cè)試。
[0017]本發(fā)明實(shí)施例技術(shù)方案通過將編譯與測(cè)試發(fā)布進(jìn)行結(jié)合,在偵測(cè)到編譯指令時(shí),則對(duì)其進(jìn)行編譯以生成編譯文件,同時(shí)獲取當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的變更文件列表,并將其與編譯文件一起作為測(cè)試文件供測(cè)試發(fā)布,從而使得測(cè)試發(fā)布過程中可以根據(jù)當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的差異對(duì)當(dāng)前編譯文件進(jìn)行針對(duì)性的測(cè)試,并且通過查看變更文件列表中變更的代碼,從而可以對(duì)測(cè)試過程中的BUG進(jìn)行更好地定位,以提高代碼文件的編譯發(fā)布的效率,從而降低測(cè)試成本。
【專利附圖】
【附圖說明】
[0018]圖1是本發(fā)明代碼文件的編譯發(fā)布方法較佳實(shí)施例的流程示意圖;
[0019]圖2是本發(fā)明代碼文件的編譯發(fā)布方法中獲取的變更文件列表的結(jié)果示意圖;
[0020]圖3是本發(fā)明代碼文件的編譯發(fā)布方法中變更代碼的文件的全文代碼的示意圖;
[0021]圖4是本發(fā)明代碼文件的編譯發(fā)布系統(tǒng)較佳實(shí)施例的結(jié)構(gòu)示意圖。
[0022]本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
【具體實(shí)施方式】
[0023]以下結(jié)合說明書附圖及具體實(shí)施例進(jìn)一步說明本發(fā)明的技術(shù)方案。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0024]參照?qǐng)D1,提出本發(fā)明代碼文件的編譯發(fā)布方法一實(shí)施例的流程示意圖。該實(shí)施例的代碼文件的編譯發(fā)布方法包括以下步驟:
[0025]步驟S101、偵測(cè)用于對(duì)代碼文件發(fā)起編譯的編譯指令;
[0026]步驟S102、偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息;
[0027]步驟S103、根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件;
[0028]步驟S104、比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表;
[0029]步驟S105、輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件以供測(cè)試。
[0030]現(xiàn)有技術(shù)中,開發(fā)人員在開發(fā)完代碼后,可以通過編譯發(fā)布系統(tǒng)進(jìn)行手動(dòng)編譯或自動(dòng)編譯以生成目標(biāo)CGI,然后交由測(cè)試發(fā)布系統(tǒng)供測(cè)試人員進(jìn)行測(cè)試,待測(cè)試人員測(cè)試成功后再將目標(biāo)CGI發(fā)布。由于編譯與測(cè)試發(fā)布是相互獨(dú)立的兩個(gè)過程,因而測(cè)試人員在測(cè)試過程中發(fā)現(xiàn)BUG時(shí),因無法查看源代碼而造成BUG定位不準(zhǔn)確。因此,本發(fā)明實(shí)施例提供了一編譯與測(cè)試發(fā)布相結(jié)合的系統(tǒng),實(shí)時(shí)是否發(fā)生編譯指令。該編譯指令可以包括定時(shí)觸發(fā)產(chǎn)生的編譯指令、開發(fā)人員提交代碼至SVN服務(wù)器后手動(dòng)或自動(dòng)觸發(fā)產(chǎn)生。監(jiān)測(cè)到編譯指令后,則獲取相應(yīng)的待編譯的代碼文件,并對(duì)其進(jìn)行編譯以生成編譯文件,例如CGI文件。而且生成編譯文件后,還將建立當(dāng)前編譯文件與代碼文件的映射,同時(shí)記錄當(dāng)前編譯文件的版本信息。該映射包括生成的當(dāng)前編譯文件的項(xiàng)目名稱及修訂號(hào),該修訂號(hào)與當(dāng)前編譯文件所對(duì)應(yīng)的代碼文件的版本號(hào)對(duì)應(yīng)。該當(dāng)前編譯文件的版本信息用于標(biāo)識(shí)編譯文件的版本,可包括項(xiàng)目標(biāo)識(shí)及修訂號(hào),其中項(xiàng)目標(biāo)識(shí)用于標(biāo)識(shí)同一項(xiàng)目的編譯文件,即同一項(xiàng)目下的編譯文件對(duì)應(yīng)的項(xiàng)目標(biāo)識(shí)均相同;修訂號(hào)用于標(biāo)識(shí)同一項(xiàng)目的不同編譯文件,即同一項(xiàng)目下的不同編譯文對(duì)應(yīng)修訂不同。本發(fā)明實(shí)施例中,該編譯與發(fā)布相結(jié)合的系統(tǒng)也可以直接接收開發(fā)人員上傳的代碼文件,而對(duì)其進(jìn)行編譯。
[0031]生成編譯文件后,則根據(jù)當(dāng)前編譯文件的項(xiàng)目標(biāo)識(shí),查找與所述項(xiàng)目標(biāo)識(shí)相同、且已測(cè)試通過的所有編譯文件,然后根據(jù)所述修訂號(hào),獲取查找到的所有編譯文件中所述修訂號(hào)前一個(gè)修訂號(hào)對(duì)應(yīng)的編譯文件。再比較所述當(dāng)前編譯文件與獲取的當(dāng)前編譯文件版本的前一版本且已測(cè)試通過的編譯文件,以判斷兩者之間是否存在差異。本發(fā)明實(shí)施例中根據(jù)當(dāng)前編譯文件的修訂號(hào),獲取該修訂號(hào)的前一個(gè)修訂號(hào)對(duì)應(yīng)的編譯文件,然后分別計(jì)算當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件的MD5值,當(dāng)兩者的MD5值相同,則表示當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件一致;當(dāng)兩者的MD5值不同,則表示當(dāng)前編譯文件與已測(cè)試通過的編譯文件存在差異。在判斷當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件存在差異時(shí),則獲取當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件之間的變更文件列表。具體地,本實(shí)施例中項(xiàng)目標(biāo)識(shí)可包括項(xiàng)目名稱及編譯文件對(duì)應(yīng)的項(xiàng)目路徑,獲取當(dāng)前編譯文件及與前一版本且已測(cè)試通過的編譯文件對(duì)應(yīng)的項(xiàng)目路徑及修訂號(hào)后,調(diào)用SVN比對(duì)的命令即可計(jì)算出兩者之間的變更文件列表,相應(yīng)執(zhí)行代碼如下:
[0032]svn diff
[0033]old=http://svn.com/test—rep/test—proj/trunk@19435
[0034]new=http://svn.com/test—rep/test—proj/trunk@19445
[0035]username testuser
[0036]password testpwd
[0037]no-auth-cache
[0038]non-1nteractive
[0039]summarize
[0040]如圖2所示,所計(jì)算出的變更文件列表可包括當(dāng)前編譯文件與前一版本已測(cè)試通過的編譯文件的比較結(jié)果及存在差異的編譯文件之間發(fā)生變更的代碼文件,其中變更的代碼文件中記載前后比對(duì)后發(fā)生變更的代碼,其中變更的代碼行通過不同顏色進(jìn)行標(biāo)識(shí),如圖3所示。比較結(jié)果可顯示當(dāng)前編譯文件與已測(cè)試通過的編譯文件的差異,例如該項(xiàng)目下的編譯文件對(duì)應(yīng)有3個(gè),且根據(jù)所計(jì)算的MD5值可知第一個(gè)編譯文件存在差異,其他兩個(gè)編譯文件均一致。而存在差異的第一編譯文件所對(duì)應(yīng)的發(fā)生變更的代碼文件包括兩個(gè)文件,每個(gè)文件的變更類型為修改,而且可以通過鏈接獲取到全文的代碼變更情況。
[0041]在獲取相應(yīng)的變更文件列表后,則將所述變更的文件列表與編譯文件一起作為測(cè)試文件進(jìn)行存儲(chǔ),以供測(cè)試人員進(jìn)行調(diào)用。例如,當(dāng)接收到編譯文件的測(cè)試指令時(shí),則獲取該編譯文件指令對(duì)應(yīng)的測(cè)試文件,并對(duì)測(cè)試文件中的編譯文件進(jìn)行測(cè)試,同時(shí)提示存在相應(yīng)的變更文件列表,當(dāng)測(cè)試人員在對(duì)編譯文件進(jìn)行測(cè)試的過程中發(fā)現(xiàn)BUG時(shí),可以通過變更文件列表查看對(duì)應(yīng)的源代碼,并對(duì)發(fā)生變更的源代碼進(jìn)行針對(duì)性的測(cè)試,從而方便BUG的準(zhǔn)確定位。本發(fā)明實(shí)施例中,也可以通過獲取編譯與發(fā)布相結(jié)合的系統(tǒng)中測(cè)試人員的登錄信息,將所述測(cè)試文件中的編譯文件通過郵件或其他工具提示測(cè)試人員存在相應(yīng)的變更文件列表。
[0042]本發(fā)明實(shí)施例通過將編譯與測(cè)試發(fā)布進(jìn)行結(jié)合,在偵測(cè)到有代碼文件提交時(shí),則對(duì)其進(jìn)行編譯以生成編譯文件,同時(shí)獲取當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的變更文件列表,并將其與編譯文件一起作為測(cè)試文件供測(cè)試發(fā)布,從而使得測(cè)試發(fā)布過程中可以根據(jù)當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的差異對(duì)當(dāng)前編譯文件進(jìn)行針對(duì)性的測(cè)試,并且通過查看變更文件列表中變更的代碼,從而可以對(duì)測(cè)試過程中的BUG進(jìn)行更好地定位,以提高代碼文件的編譯發(fā)布的效率,從而降低測(cè)試成本。
[0043]另外,本發(fā)明實(shí)施例通過每次編譯發(fā)布后所存儲(chǔ)的當(dāng)前編譯文件與上一版本且已通過測(cè)試的編譯文件之間的變更文件列表,形成較完整的編譯視圖,從而為后續(xù)的MAKEFILE分析等進(jìn)一步工作提供基礎(chǔ)。
[0044]上述實(shí)施例代碼文件的編譯發(fā)布方法還包括:
[0045]步驟S106、偵測(cè)編譯文件比對(duì)請(qǐng)求;
[0046]步驟S107、在偵測(cè)到編譯文件比對(duì)請(qǐng)求時(shí),根據(jù)所述編譯文件比對(duì)請(qǐng)求,獲取需比對(duì)的編譯文件;
[0047]步驟S108、將所獲取的需比對(duì)的編譯文件與當(dāng)前編譯文件進(jìn)行比較,獲取兩者之間的所有變更文件列表;
[0048]步驟S109、將所有變更文件列表合并后作為測(cè)試文件輸出。
[0049]本發(fā)明實(shí)施例的編譯與測(cè)試發(fā)布相結(jié)合的系統(tǒng)還支持當(dāng)前編譯文件與歷史記錄的已測(cè)試通過的編譯文件之間的比對(duì),具體地,如圖3所示,通過選擇相應(yīng)的歷史記錄的已測(cè)試通過的編譯文件的修訂號(hào)及篩選文件類型后,則發(fā)起編譯文件比對(duì)請(qǐng)求,則根據(jù)所述編譯文件比對(duì)請(qǐng)求,獲得該需比對(duì)的編譯文件的修訂號(hào),并查找存儲(chǔ)器中所記錄的當(dāng)前編譯文件與需比對(duì)的編譯文件的修訂號(hào)之間的所有變更文件列表,并將所有變更文件列表進(jìn)行合并后作為測(cè)試文件輸出。
[0050]本發(fā)明實(shí)施例通過每次編譯發(fā)布后所存儲(chǔ)的當(dāng)前編譯文件與上一版本已通過測(cè)試的編譯文件之間的變更文件列表,進(jìn)而獲得當(dāng)前編譯文件與歷史的已通過測(cè)試的編譯文件之間的變更文件列表,從而為測(cè)試人員的測(cè)試提供了詳盡的信息,提高了測(cè)試人員的測(cè)試效率。
[0051]參照?qǐng)D4,提出本發(fā)明代碼文件的編譯發(fā)布系統(tǒng)一實(shí)施例。該實(shí)施例的代碼文件的編譯發(fā)布系統(tǒng)包括:
[0052]偵測(cè)模塊101,用于偵測(cè)對(duì)代碼文件發(fā)起編譯的編譯指令;
[0053]編譯模塊102,用于偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息;
[0054]編譯文件獲取模塊103,用于根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一版本且已測(cè)試通過的編譯文件;
[0055]比較模塊104,用于比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表;
[0056]輸出模塊105,用于輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件以供測(cè)試;
[0057]存儲(chǔ)模塊106,用于存儲(chǔ)所述當(dāng)前編譯文件的版本信息、編譯文件及相應(yīng)的變更文件列表。
[0058]所述偵測(cè)模塊101實(shí)時(shí)監(jiān)測(cè)是否有編譯指令發(fā)起。該編譯指令可以包括定時(shí)觸發(fā)產(chǎn)生的編譯指令、開發(fā)人員提交代碼至SVN服務(wù)器后手動(dòng)或自動(dòng)觸發(fā)產(chǎn)生。監(jiān)測(cè)到編譯指令后,則獲取相應(yīng)的待編譯的代碼文件,并對(duì)其進(jìn)行編譯以生成編譯文件,例如CGI文件。而且生成編譯文件后,還將建立當(dāng)前編譯文件與代碼文件的映射。該映射包括生成的當(dāng)前編譯文件的項(xiàng)目名稱及修訂號(hào),該修訂號(hào)與當(dāng)前編譯文件所對(duì)應(yīng)的代碼文件的版本號(hào)對(duì)應(yīng)。在生成編譯文件后,編譯文件獲取模塊103則根據(jù)所述當(dāng)前編譯文件的項(xiàng)目標(biāo)識(shí)及修訂號(hào),獲取當(dāng)前編譯文件版本的前一版本已測(cè)試通過的編譯文件。比較模塊104則比較所述當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件,以判斷兩者之間是否存在差異。本發(fā)明實(shí)施例中根據(jù)當(dāng)前編譯文件的修訂號(hào),獲取該修訂號(hào)的前一個(gè)修訂號(hào)且已測(cè)試通過的編譯文件,然后分別計(jì)算當(dāng)前編譯文件與已測(cè)試通過的編譯文件的MD5值,當(dāng)兩者的MD5值相同,則表示當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件一致;當(dāng)兩者的MD5值不同,則表示當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件存在差異。在判斷當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件存在差異時(shí),則獲取當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件之間的變更文件列表。具體地,本實(shí)施例中項(xiàng)目標(biāo)識(shí)可包括項(xiàng)目名稱及編譯文件對(duì)應(yīng)的項(xiàng)目路徑,獲取當(dāng)前編譯文件及與前一版本且已測(cè)試通過的編譯文件對(duì)應(yīng)的項(xiàng)目路徑及修訂號(hào)后,調(diào)用SVN比對(duì)的命令即可計(jì)算出兩者之間的變更文件列表。如圖2所示,所計(jì)算出的變更文件列表可包括當(dāng)前編譯文件與前一版本且已測(cè)試通過的編譯文件的比較結(jié)果及存在差異的編譯文件之間發(fā)生變更的代碼文件,其中變更的代碼文件中記載前后比對(duì)后發(fā)生變更的代碼,其中變更的代碼行通過不同顏色進(jìn)行標(biāo)識(shí),如圖3所示。比較結(jié)果可顯示當(dāng)前編譯文件與已測(cè)試通過的編譯文件的差異,例如該項(xiàng)目下的編譯文件對(duì)應(yīng)有3個(gè),且根據(jù)所計(jì)算的MD5值可知第一個(gè)編譯文件存在差異,其他兩個(gè)編譯文件均一致。而存在差異的第一編譯文件所對(duì)應(yīng)的發(fā)生變更的代碼文件包括兩個(gè)文件,每個(gè)文件的變更類型為修改,而且可以通過鏈接獲取到全文的代碼變更情況。
[0059]在獲取相應(yīng)的變更文件列表后,輸出模塊105則將所述變更的文件列表與編譯文件一起作為測(cè)試文件輸出或存儲(chǔ)至存儲(chǔ)模塊106中,以供測(cè)試人員進(jìn)行調(diào)用。例如,當(dāng)接收到編譯文件的測(cè)試指令時(shí),則獲取該編譯文件指令對(duì)應(yīng)的測(cè)試文件,并對(duì)測(cè)試文件中的編譯文件進(jìn)行測(cè)試,同時(shí)提示存在相應(yīng)的變更文件列表,當(dāng)測(cè)試人員在對(duì)編譯文件進(jìn)行測(cè)試的過程中發(fā)現(xiàn)BUG時(shí),可以通過變更文件列表查看對(duì)應(yīng)的源代碼,并對(duì)發(fā)生變更的源代碼進(jìn)行針對(duì)性的測(cè)試,從而方便BUG的準(zhǔn)確定位。本發(fā)明實(shí)施例中,也可以通過獲取編譯與發(fā)布相結(jié)合的系統(tǒng)中測(cè)試人員的登錄信息,將所述測(cè)試文件中的編譯文件通過郵件或其他工具提示測(cè)試人員存在相應(yīng)的變更文件列表。
[0060]本發(fā)明實(shí)施例通過將編譯與測(cè)試發(fā)布進(jìn)行結(jié)合,在偵測(cè)到編譯指令時(shí),則對(duì)其進(jìn)行編譯以生成編譯文件,同時(shí)獲取當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的變更文件列表,并將其與編譯文件一起作為測(cè)試文件供測(cè)試發(fā)布,從而使得測(cè)試發(fā)布過程中可以根據(jù)當(dāng)前編譯文件與已測(cè)試通過的編譯文件之間的差異對(duì)當(dāng)前編譯文件進(jìn)行針對(duì)性的測(cè)試,并且通過查看變更文件列表中變更的代碼,從而可以對(duì)測(cè)試過程中的BUG進(jìn)行更好地定位,以提高代碼文件的編譯發(fā)布的效率,從而降低測(cè)試成本。
[0061]另外,本發(fā)明實(shí)施例通過每次編譯發(fā)布后所存儲(chǔ)的當(dāng)前編譯文件與上一版本已通過測(cè)試的編譯文件之間的變更文件列表,形成較完整的編譯視圖,從而為后續(xù)的MAKEFILE分析等進(jìn)一步工作提供基礎(chǔ)。
[0062]進(jìn)一步的,上述偵測(cè)模塊101還用于:偵測(cè)編譯文件比對(duì)請(qǐng)求;上述編譯文件獲取模塊103還用于:根據(jù)所述編譯文件比對(duì)請(qǐng)求,獲取需比對(duì)的編譯文件;上述比較模塊104將所獲取的需比對(duì)的編譯文件與當(dāng)前編譯文件進(jìn)行比較,獲取兩者之間的所有變更文件列表;上述輸出模塊105還用于:輸出所述比較模塊104根據(jù)所述編譯文件比對(duì)請(qǐng)求而獲取的變更文件作為測(cè)試文件以供測(cè)試。
[0063]本發(fā)明實(shí)施例的編譯與測(cè)試發(fā)布相結(jié)合的系統(tǒng)還支持當(dāng)前編譯文件與歷史記錄的已測(cè)試通過的編譯文件之間的比對(duì),具體地,如圖3所示,通過選擇相應(yīng)的歷史記錄的已測(cè)試通過的編譯文件的修訂號(hào)及篩選文件類型后,然后發(fā)起編譯文件比對(duì)請(qǐng)求。因此,偵測(cè)模塊101將偵測(cè)到編譯文件比對(duì)請(qǐng)求時(shí),比較模塊104則根據(jù)所述編譯文件比對(duì)請(qǐng)求,獲得該需比對(duì)的編譯文件的修訂號(hào),并查找存儲(chǔ)器中所記錄的當(dāng)前編譯文件與需比對(duì)的編譯文件的修訂號(hào)之間的所有變更文件列表,并將所有變更文件列表進(jìn)行合并后輸出。
[0064]本發(fā)明實(shí)施例通過每次編譯發(fā)布后所存儲(chǔ)的當(dāng)前編譯文件與上一版本已通過測(cè)試的編譯文件之間的變更文件列表,進(jìn)而獲得當(dāng)前編譯文件與歷史的已通過測(cè)試的編譯文件之間的變更文件列表,從而為測(cè)試人員的測(cè)試提供了詳盡的信息,提高了測(cè)試人員的測(cè)試效率。
[0065]需要說明的是,在本文中,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者裝置不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者裝置所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括該要素的過程、方法、物品或者裝置中還存在另外的相同要素。
[0066]上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
[0067]通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到上述實(shí)施例方法可借助軟件加必需的通用硬件平臺(tái)的方式來實(shí)現(xiàn),當(dāng)然也可以通過硬件,但很多情況下前者是更佳的實(shí)施方式?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)(如R0M/RAM、磁碟、光盤)中,包括若干指令用以使得一臺(tái)終端設(shè)備(可以是手機(jī),計(jì)算機(jī),月艮務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
[0068]以上所述僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制其專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,直接或間接運(yùn)用在其他相關(guān)的【技術(shù)領(lǐng)域】,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。
【權(quán)利要求】
1.一種代碼文件的編譯發(fā)布方法,其特征在于,包括: 偵測(cè)用于對(duì)代碼文件發(fā)起編譯的編譯指令; 偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息; 根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件; 比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表; 輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件以供測(cè)試。
2.根據(jù)權(quán)利要求2所述的代碼文件的編譯發(fā)布方法,其特征在于,所述版本信息包括項(xiàng)目標(biāo)識(shí)及修訂號(hào),所述項(xiàng)目標(biāo)識(shí)用于標(biāo)識(shí)同一項(xiàng)目的編譯文件,修訂號(hào)用于標(biāo)識(shí)同一項(xiàng)目的不同編譯文件; 所述根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件包括: 根據(jù)當(dāng)前編譯文件的項(xiàng)目標(biāo)識(shí),查找與所述項(xiàng)目標(biāo)識(shí)相同、且已測(cè)試通過的所有編譯文件; 根據(jù)所述 修訂號(hào),獲取查找到的所有編譯文件中所述修訂號(hào)前一個(gè)修訂號(hào)對(duì)應(yīng)的編譯文件。
3.根據(jù)權(quán)利要求1所述的代碼文件的編譯發(fā)布方法,其特征在于,所述變更文件列表包括當(dāng)前編譯文件與已測(cè)試通過的編譯文件的比較結(jié)果及存在差異的編譯文件之間發(fā)生變更的代碼文件。
4.根據(jù)權(quán)利要求1所述的代碼文件的編譯發(fā)布方法,其特征在于,還包括: 偵測(cè)編譯文件比對(duì)請(qǐng)求; 在偵測(cè)到所述編譯文件比對(duì)請(qǐng)求時(shí),根據(jù)所述編譯文件比對(duì)請(qǐng)求,獲取需比對(duì)的編譯文件; 將所獲取的需比對(duì)的編譯文件與當(dāng)前編譯文件進(jìn)行比較,獲得兩者之間的所有變更文件列表; 將所獲得的所有變更文件合并后作為測(cè)試文件輸出。
5.根據(jù)權(quán)利要求1所述的代碼文件的編譯發(fā)布方法,其特征在于,還包括: 存儲(chǔ)當(dāng)前編譯文件的版本信息、編譯文件及相應(yīng)的變更文件列表。
6.一種代碼文件的編譯發(fā)布系統(tǒng),其特征在于,包括: 偵測(cè)模塊,用于偵測(cè)對(duì)代碼文件發(fā)起編譯的編譯指令; 編譯模塊,用于偵測(cè)到編譯指令后,對(duì)待編譯的代碼文件進(jìn)行編譯并生成當(dāng)前編譯文件,并記錄當(dāng)前編譯文件的版本信息; 編譯文件獲取模塊,用于根據(jù)所述當(dāng)前編譯文件的版本信息,獲取當(dāng)前編譯文件版本的前一個(gè)版本且已測(cè)試通過的編譯文件; 比較模塊,用于比較所述當(dāng)前編譯文件及已測(cè)試通過的編譯文件,獲取兩者之間的變更文件列表; 輸出模塊,用于輸出所述待測(cè)試的編譯文件與所述變更文件作為測(cè)試文件供測(cè)試。
7.根據(jù)權(quán)利要求6所述的代碼文件的編譯發(fā)布系統(tǒng),其特征在于,所述版本信息包括項(xiàng)目標(biāo)識(shí)及修訂號(hào),所述項(xiàng)目標(biāo)識(shí)用于標(biāo)識(shí)同一項(xiàng)目的編譯文件,修訂號(hào)用于標(biāo)識(shí)同一項(xiàng)目的不同編譯文件; 所述比較模塊用于:根據(jù)當(dāng)前編譯文件的項(xiàng)目標(biāo)識(shí),查找與所述項(xiàng)目標(biāo)識(shí)相同、且已測(cè)試通過的所有編譯文件;根據(jù)所述修訂號(hào),獲取查找到的所有編譯文件中所述修訂號(hào)前一個(gè)修訂號(hào)對(duì)應(yīng)的編譯文件。
8.根據(jù)權(quán)利要求7所述的代碼文件的編譯發(fā)布系統(tǒng),其特征在于,所述變更文件列表包括當(dāng)前編譯文件與已測(cè)試通過的編譯文件的比較結(jié)果及存在差異的編譯文件之間發(fā)生變更的代碼文件。
9.根據(jù)權(quán)利要求6所述的代碼文件的編譯發(fā)布系統(tǒng),其特征在于, 所述偵測(cè)模塊還用于:偵測(cè)編譯文件比對(duì)請(qǐng)求; 所述編譯文件獲取模塊還用于:在偵測(cè)到所述編譯文件比對(duì)請(qǐng)求時(shí),根據(jù)所述編譯文件比對(duì)請(qǐng)求,獲取需比對(duì)的編譯文件; 所述比較模塊還用于:將所獲取的需比對(duì)的編譯文件與當(dāng)前編譯文件進(jìn)行比較,獲取兩者之間的所有變更文件列表; 所述輸出模塊還用于:將所述比較模塊根據(jù)所述編譯文件比對(duì)請(qǐng)求而獲取的變更文件合并后作為測(cè)試文件輸出。
10.根據(jù)權(quán)利要 求6所述的代碼文件的編譯發(fā)布系統(tǒng),其特征在于,還包括: 存儲(chǔ)模塊,用于存儲(chǔ)當(dāng)前編譯文件的版本信息、編譯文件及相應(yīng)的變更文件列表。
【文檔編號(hào)】G06F11/36GK104077217SQ201310105948
【公開日】2014年10月1日 申請(qǐng)日期:2013年3月28日 優(yōu)先權(quán)日:2013年3月28日
【發(fā)明者】胡鵬, 孟同亮, 鄧雄兵 申請(qǐng)人:騰訊科技(深圳)有限公司