基于調用關系依賴圖的回歸測試方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種基于調用關系依賴圖的回歸測試方法及系統(tǒng),其中的方法包括:將從版本管理庫中獲取的待比較版本的所有方法進行轉存;將版本管理庫更新至待測版本,獲取待測版本的所有方法之間的調用關系,并進行存儲;將待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取方法變更集;根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)方法變更集,在調用關系依賴圖中對變更的方法進行標注;根據(jù)所標注的方法確定待測版本的回歸范圍,并根據(jù)回歸范圍進行回歸測試。通過本發(fā)明能夠使回歸測試的范圍更加精準且更有目的性,同時也能夠使研發(fā)人員分析出所提交測試的代碼是否存在錯改漏改,確保所修改的代碼都能完整的覆蓋其影響面。
【專利說明】基于調用關系依賴圖的回歸測試方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及軟件測試【技術領域】,更為具體地,涉及一種基于調用關系依賴圖的回歸測試方法及系統(tǒng)。
【背景技術】
[0002]軟件測試是軟件生命周期的一個必要的階段,其直接關系著軟件的質量。在軟件生命周期的任何一個階段中,只要軟件發(fā)生了改變,就可能給該軟件帶來問題。因此,每當軟件發(fā)生變化時,就必須進行回歸測試,以便于確定修改是否達到了預期的目的,以及檢查修改是否損害了軟件原有的正常功能。
[0003]現(xiàn)有的回歸測試沒有一個比較精準的標準,多半都是靠測試人員的經(jīng)驗、習慣以及項目的特性進行回歸驗收,測試范圍不夠準確,并且大范圍的回歸測試耗時耗力,甚至有時候還會遺漏測試點,造成測試覆蓋率不全的問題。
[0004]在傳統(tǒng)的黑盒測試中,測試人員都不太接觸研發(fā)的代碼,因此測試人員對研發(fā)人員所修改的代碼也沒有感知,測試人員只是依靠研發(fā)人員的測試建議和測試風險來評估回歸測試的范圍,如此便會造成以下問題:
[0005]一、研發(fā)人員只是修改了幾行代碼,但測試人員并不清楚修改的這幾行代碼對其他代碼的影響,只能依靠研發(fā)人員單方面的推斷來評估,造成回歸測試范圍不夠精準。
[0006]二、研發(fā)人員在修改了代碼之后,有可能其自身對修改的代碼所產(chǎn)生的影響也缺乏認識,如此便會給出錯誤的測試建議和測試范圍,導致測試風險增加,使回歸測試變成無用功。
[0007]三、有可能研發(fā)人員只是對一些方法中的不是很重要的代碼進行了修改,但為了達到項目的上線標準,測試人員卻不敢不進行回歸測試,如此不僅使測試沒有針對性,并且還會造成回歸測試的時間太長,從而延緩項目的上線時間,甚至錯過產(chǎn)品發(fā)布的最好良機。
[0008]鑒于上述問題,如何既能縮短回歸測試的測試時間,又能使回歸測試的測試范圍變得更加精確且更有目的性,成為測試人員亟待解決的問題。
【發(fā)明內容】
[0009]鑒于上述問題,本發(fā)明的目的是提供一種基于調用關系依賴圖的回歸測試方法及系統(tǒng),以縮短回歸測試的測試時間,使回歸測試的測試范圍變得更加精確且更有目的性。
[0010]根據(jù)本發(fā)明的一個方面,提供一種基于調用關系依賴圖的回歸測試方法,包括:
[0011]將從版本管理庫中獲取的待比較版本的所有方法進行轉存;
[0012]將版本管理庫更新至待測版本,然后編譯待測版本,獲取待測版本的所有方法之間的調用關系,并進行存儲;
[0013]將待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集;
[0014]根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)方法變更集,在調用關系依賴圖中對變更的方法進行標注;
[0015]根據(jù)在調用關系依賴圖中所標注的方法確定待測版本的回歸范圍,并根據(jù)回歸范圍進行回歸測試。
[0016]其中,在將從版本管理庫中獲取的待比較版本的所有方法進行轉存之前,還包括:利用版本管理庫所提供的接口,通過持續(xù)集成工具從版本管理庫中獲取待比較版本的所有方法;或者,直接從版本管理庫中獲取待比較版本的所有方法。
[0017]其中,在獲取待測版本的所有方法之間的調用關系的過程中,通過java字節(jié)碼框架獲取待測版本的所有方法之間的調用關系。
[0018]另一方面,本發(fā)明提供一種基于調用關系依賴圖的回歸測試系統(tǒng),包括:
[0019]方法轉存單元,用于將從版本管理庫中獲取的待比較版本的所有方法進行轉存;
[0020]調用關系獲取單元,用于將版本管理庫更新至待測版本,然后編譯待測版本,獲取待測版本的所有方法之間的調用關系,并進行存儲;
[0021]變更集生成單元,用于將待測版本的所有方法與方法轉存單元中所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集;
[0022]變更方法標注單元,用于根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)方法變更集,在調用關系依賴圖中對變更的方法進行標注;
[0023]回歸測試單元,用于根據(jù)在調用關系依賴圖中所標注的方法確定待測版本的回歸范圍,并根據(jù)回歸范圍進行回歸測試。
[0024]利用上述根據(jù)本發(fā)明的基于調用關系依賴圖的回歸測試方法及系統(tǒng),通過分析待測版本與待比較版本這兩個版本的源碼,得出兩個版本之間發(fā)生變更的方法,以及待測版本的方法之間的調用關系,生成調用關系依賴圖,使研發(fā)和測試人員依據(jù)該調用關系依賴圖和變更的方法分析出待測版本改動的影響面,從而使得回歸測試的范圍更加精準且更有目的性,同時通過依賴關系圖,也能夠使研發(fā)人員分析出所提交測試的代碼是否存在錯改漏改,確保所修改的代碼都能完整的覆蓋其影響面。
[0025]為了實現(xiàn)上述以及相關目的,本發(fā)明的一個或多個方面包括后面將詳細說明并在權利要求中特別指出的特征。下面的說明以及附圖詳細說明了本發(fā)明的某些示例性方面。然而,這些方面指示的僅僅是可使用本發(fā)明的原理的各種方式中的一些方式。此外,本發(fā)明旨在包括所有這些方面以及它們的等同物。
【專利附圖】
【附圖說明】
[0026]通過參考以下結合附圖的說明及權利要求書的內容,并且隨著對本發(fā)明的更全面理解,本發(fā)明的其它目的及結果將更加明白及易于理解。在附圖中:
[0027]圖1為根據(jù)本發(fā)明實施例的基于調用關系依賴圖的回歸測試方法的流程示意圖;
[0028]圖2為根據(jù)本發(fā)明實施例的基于調用關系依賴圖的回歸測試系統(tǒng)邏輯結構框圖。
[0029]在所有附圖中相同的標號指示相似或相應的特征或功能。
【具體實施方式】
[0030]以下將結合附圖對本發(fā)明的具體實施例進行詳細描述。
[0031]針對前述現(xiàn)有的回歸測試方法容易造成回歸測試范圍不精準、測試風險大和測試缺少目的性的問題。本發(fā)明通過對待測版本和待對比版本兩個版本之間的方法進行比較,生成方法變更集,同時獲取待測版本的方法之間的調用關系,生成調用關系依賴圖,并根據(jù)方法變更集,在調用關系依賴圖中對變更的方法進行標注,從而使研發(fā)人員可以依據(jù)該標注對待測版本進行檢查和分析,確認是否有修改遺漏,并同時給出測試人員相應的測試建議;同樣的,測試人員可以依據(jù)該標注對待測版本進行分析,確定出回歸測試的范圍,使回歸測試的范圍更加精準且更有目的性。
[0032]為了說明本發(fā)明提供的基于調用關系依賴圖的回歸測試方法,圖1示出了根據(jù)本發(fā)明實施例的基于調用關系依賴圖的回歸測試方法的流程。
[0033]如圖1所示,本發(fā)明提供的基于調用關系依賴圖的回歸測試方法包括:
[0034]SllO:將從版本管理庫中獲取的待比較版本的所有方法進行轉存。
[0035]其中,在將從版本管理庫中獲取的待比較版本的所有方法進行轉存之前,還包括:利用版本管理庫所提供的接口,通過持續(xù)集成工具從版本管理庫中獲取待比較版本的所有方法;或者,直接從版本管理庫中獲取待比較版本的所有方法。
[0036]需要說明的是,上述的待比較版本是相對于待測版本而言的。實際上,持續(xù)集成工具能夠持續(xù)構建版本管理庫中的所有版本。也就是說,版本管理庫中的所有版本都可以被持續(xù)集成工具所托管,通過持續(xù)集成工具可以獲取版本管理庫中的任何一個版本的代碼(即一個版本中的所有方法)。
[0037]另外需要說明的是,持續(xù)集成工具包括:jenkins、CruiseControl和LuntBuild等,或者還可以根據(jù)需求構建持續(xù)集成工具。
[0038]具體地,由于不同版本管理庫所提供的接口都不一樣,因此,通過持續(xù)集成工具便能夠輕易獲取待測版本的代碼。例如,版本管理庫提供的是SVN接口,那么持續(xù)集成工具就會使用SVN接口獲取代碼,如果版本管理庫提供的是git接口,那么持續(xù)集成工具就會使用git接口獲取代碼。
[0039]其中,在將從版本管理庫中獲取的待比較版本的所有方法進行轉存的過程中,將所獲取的待比較版本的所有方法轉存到存儲系統(tǒng)中。其中,該存儲系統(tǒng)包括文件存儲系統(tǒng)、數(shù)據(jù)庫或者其他存儲系統(tǒng)。
[0040]具體地,將所獲取的待比較版本的所有方法進行轉存的目的是:為了避免版本管理庫所提供的接口差異所造成的版本之間的方法比較的適配難度,將所獲取的某個版本的代碼進行轉存,可以按照用戶所設計的數(shù)據(jù)結構去存儲,更有利于下述所進行的兩個版本之間的方法級別的比較。
[0041]S120:將版本管理庫更新至待測版本,然后編譯待測版本,獲取待測版本的所有方法之間的調用關系,并進行存儲。
[0042]其中,在獲取待測版本的所有方法之間的調用關系的過程中,通過java字節(jié)碼框架獲取待測版本的所有方法之間的調用關系。其中,java字節(jié)碼框架包括ASM、javaassist、bcel或者其他java字節(jié)碼框架。在獲取待測版本的所有方法之間的調用關系,并進行存儲的過程中,將調用關系存儲在運行系統(tǒng)的內存或者文件存儲系統(tǒng)中。
[0043]S130:將待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集。
[0044]其中,在將待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集的過程中,通過源代碼分析框架將待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集。其中,源代碼分析框架包括JDT AST、javaparser或者其他源代碼分析框架;方法變更集包括修改的方法集、新增的方法集和刪除的方法集。
[0045]S140:根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)方法變更集,在調用關系依賴圖中對變更的方法進行標注。
[0046]具體地,根據(jù)修改的方法集、新增的方法集和刪除的方法集,在調用關系依賴圖中將修改的方法、新增的方法和刪除的方法分別進行標注。
[0047]S150:根據(jù)在調用關系依賴圖中所標注的方法確定待測版本的回歸范圍,并根據(jù)回歸范圍進行回歸測試。
[0048]具體地,研發(fā)人員可以依據(jù)該標注對待測版本進行檢查和分析,確認是否有修改遺漏,并同時給出測試人員相應的測試建議;測試人員可以依據(jù)該標注對待測版本進行分析,確定出待測版本的回歸范圍,并進行回歸測試。
[0049]通過圖1所示的流程可以看出,本發(fā)明所提供的基于調用關系依賴圖的回歸測試方法能夠使測試人員更好的對待測版本進行回歸測試,使回歸測試的范圍更加精準且更有目的性,同時也能夠使研發(fā)人員分析出所提交測試的代碼是否存在錯改漏改,確保所修改的代碼都能完整的覆蓋其影響面。
[0050]為了更為清楚的說明本發(fā)明所提供的基于調用關系依賴圖的回歸測試方法,下述以示例的方式對本發(fā)明所提供的基于調用關系依賴圖的回歸測試方法進行詳細說明。
[0051]需要說明的是,在本發(fā)明的其中一個示例中,使用jenkins從版本管理庫中獲取代碼。具體地:
[0052]在jenkins上搭建一個持續(xù)構建的job,配置jenkins上的代碼庫分支,通過jenkins獲取相應分支相應版本的源代碼,同時利用jenkins的參數(shù)化構建,給用戶提供一個可選框,用于輸入待比較版本和更新版本。
[0053]對于待比較版本,當獲取到代碼管理庫對應的版本之后,則先刪除數(shù)據(jù)庫中的方法表,其中方法表里面存放了方法名、方法體、參數(shù)和路徑,然后遍歷jenkins托管的所有java文件,利用AST提供的API獲取包名和類名,獲取方法名,并將方法的路徑、方法名、參數(shù)、實現(xiàn)體全都轉存入數(shù)據(jù)庫中。
[0054]對于更新版本則通過版本管理庫更新至待測版本,然后使用ASM掃描得出待測版本的每個方法的依賴關系,即得出類似A->B,B->C這樣的數(shù)據(jù)結構,并保存在內存中。
[0055]將待測版本的所有方法與存入數(shù)據(jù)庫中的初始版本的所有方法進行比較,獲取變更列表,即添力卩、修改、刪除的類。其中,通過AST提供的API獲取的方法變更列表。
[0056]其中,對于添加的類,則通過AST獲取方法內容保存在內存中的添加方法Add_List,并存入數(shù)據(jù)庫的方法表中;
[0057]對于修改的類,則通過AST獲取包名和類名,通過path尋找表中的舊方法列表并將該方法設置一個標記位為false ;通過AST遍歷獲得修改后的方法body體,與數(shù)據(jù)庫存放的舊方法進行對比,若沒有舊的方法,即在數(shù)據(jù)庫中找不到相應的方法,則證明這個方法是這個修改的類新增的,即將這個方法添加到數(shù)據(jù)庫的表中,并加入添加方法Add_List ;若有舊的方法,則進行diff操作,如果有改動,則將標記位設置為true,并且修改數(shù)據(jù)庫的方法表中對應的方法實體;最后,將修改類中的修改的方法且標記位為true的方法依次存AModifie_List ;對于那些標記位為false的方法即為刪除的方法,則將其存入DeletecLList 中;
[0058]對于刪除的類,通過path尋找表中的方法列表,將這些方法添加的刪除的方法列表Delete_List中,并存入內存,并將數(shù)據(jù)庫中的方法從表中刪除;
[0059]調用第三方圖片生成工具Graphviz根據(jù)修改方法列表和添加方法列表生成調用關系依賴圖;并將所有變更方法存入json文件供圖片讀取數(shù)據(jù)。在圖片中將變更的方法標示出來,并與待比較版本進行對比。
[0060]通過上述示例并結合下述場景,能夠充分地體現(xiàn)出本發(fā)明所提供的基于調用關系依賴圖的回歸測試方法的優(yōu)點。
[0061]場景一
[0062]開發(fā)人員修改了類A方法a的幾行代碼,打印了相關的log,為了調試使用,對功能并沒有影響,從調用關系依賴圖來看,也只是修改了方法a,且調用關系并沒有相關的改變,即調用a的方法都沒有修改,因此分析出來的結果是可以不進行回歸測試。
[0063]場景二
[0064]開發(fā)人員修改了類B方法b的代碼,添加了本次功能需要添加的業(yè)務代碼,加上了排重的處理,從調用關系依賴圖看,修改了 b方法,同時調用b方法的c方法也相應地修改了,且C方法為MVC層的controller層,通過這個action,我們定位到了某個頁面c,因此分析出來的結果是,需要對頁面c進行驗證測試,驗證是否符合業(yè)務提出的需求,其他沒有涉及到此功能的無需進行回歸,只需精準回歸c頁面即可。
[0065]場景三
[0066]開發(fā)人員修改了類D方法d的代碼,d方法是一個DAO層的代碼,由于修改了代碼,從邏輯上看必須修改d方法對應的service方法e,但是從依賴關系圖看,研發(fā)只是修改了DAO層的d方法,而調用d方法的service方法e并沒有任何修改,因此分析出的結果是開發(fā)改漏了代碼,應該修改e方法的代碼適應d方法,因此在提測前避免了錯誤。
[0067]與上述方法相對應,本發(fā)明還提供一種基于調用關系依賴圖的回歸測試系統(tǒng),圖2示出了根據(jù)本發(fā)明實施例的基于調用關系依賴圖的回歸測試系統(tǒng)邏輯結構。
[0068]如圖2所示,本發(fā)明提供的基于調用關系依賴圖的回歸測試系統(tǒng)200包括方法轉存單元210、調用關系獲取單元220、變更集生成單元230、變更方法標注單元240和回歸測試單元250。
[0069]其中,方法轉存單元210用于將從版本管理庫中獲取的待比較版本的所有方法進行轉存。其中,方法轉存單元210在將從版本管理庫中獲取的待比較版本的所有方法進行轉存之前,還包括:利用版本管理庫所提供的接口,通過持續(xù)集成工具從版本管理庫中獲取待比較版本的所有方法;或者,直接從版本管理庫中獲取待比較版本的所有方法。
[0070]需要說明的是,上述的待比較版本是相對于待測版本而言的。實際上,持續(xù)集成工具能夠持續(xù)構建版本管理庫中的所有版本。也就是說,版本管理庫中的所有版本都可以被持續(xù)集成工具所托管,通過持續(xù)集成工具可以獲取版本管理庫中的任何一個版本的代碼(即一個版本中的所有方法)。
[0071]另外需要說明的是,持續(xù)集成工具包括:jenkins、CruiseControl和LuntBuild等,或者還可以根據(jù)需求構建持續(xù)集成工具。
[0072]具體地,由于不同版本管理庫所提供的接口都不一樣,因此,通過持續(xù)集成工具便能夠輕易獲取待測版本的代碼。例如,版本管理庫提供的是SVN接口,那么持續(xù)集成工具就會使用SVN接口獲取代碼,如果版本管理庫提供的是git接口,那么持續(xù)集成工具就會使用git接口獲取代碼。
[0073]其中,方法轉存單元210在將從版本管理庫中獲取的待比較版本的所有方法進行轉存的過程中,將所獲取的待比較版本的所有方法轉存到存儲系統(tǒng)中。其中,該存儲系統(tǒng)包括文件存儲系統(tǒng)、數(shù)據(jù)庫或者其他存儲系統(tǒng)。
[0074]具體地,將所獲取的待比較版本的所有方法進行轉存的目的是:為了避免版本管理庫所提供的接口差異所造成的版本之間的方法比較的適配難度,將所獲取的某個版本的代碼進行轉存,可以按照用戶所設計的數(shù)據(jù)結構去存儲,更有利于下述所進行的兩個版本之間的方法級別的比較。
[0075]調用關系獲取單元220用于將版本管理庫更新至待測版本,然后編譯待測版本,獲取待測版本的所有方法之間的調用關系,并進行存儲。
[0076]其中,調用關系獲取單元220在獲取待測版本的所有方法之間的調用關系的過程中,通過java字節(jié)碼框架獲取待測版本的所有方法之間的調用關系。其中,java字節(jié)碼框架包括ASM、javaassist、bcel或者其他java字節(jié)碼框架。調用關系獲取單元220在獲取待測版本的所有方法之間的調用關系,并進行存儲的過程中,將調用關系存儲在運行系統(tǒng)的內存或者文件存儲系統(tǒng)中。
[0077]變更集生成單元230用于將待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集。
[0078]其中,變更集生成單元230在生成方法變更集的過程中,通過源代碼分析框架將待測版本的所有方法與方法轉存單元210中所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集。其中,源代碼分析框架包括JDT AST、javaparser或者其他源代碼分析框架;方法變更集包括修改的方法集、新增的方法集和刪除的方法集。
[0079]變更方法標注單元240用于根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)方法變更集,在調用關系依賴圖中對變更的方法進行標注。
[0080]具體地,根據(jù)變更集生成單元230所生成的修改的方法集、新增的方法集和刪除的方法集,在調用關系依賴圖中將修改的方法、新增的方法和刪除的方法分別進行標注。
[0081]回歸測試單元250用于根據(jù)在調用關系依賴圖中所標注的方法確定待測版本的回歸范圍,并根據(jù)回歸的范圍進行回歸測試。
[0082]具體地,研發(fā)人員可以依據(jù)變更方法標注單元240所標注的方法,對待測版本進行檢查和分析,確認是否有修改遺漏,并同時給出測試人員相應的測試建議;測試人員可以依據(jù)該標注對待測版本進行分析,確定出待測版本的回歸范圍,并進行回歸測試。
[0083]通過上述能夠看出,本發(fā)明所提供的基于調用關系依賴圖的回歸測試方法及系統(tǒng),通過分析得出兩個版本之間發(fā)生變更的方法,以及待測版本的方法之間的調用關系,生成調用關系依賴圖,使研發(fā)和測試人員依據(jù)該調用關系依賴圖和變更的方法分析出待測版本改動的影響面,從而使得回歸測試的范圍更加精準且更有目的性,同時通過依賴關系圖,也能夠使研發(fā)人員分析出所提交測試的代碼是否存在錯改漏改,確保所修改的代碼都能完整的覆蓋其影響面。
[0084]如上參照附圖以示例的方式描述了根據(jù)本發(fā)明的基于調用關系依賴圖的回歸測試方法及系統(tǒng)。但是,本領域技術人員應當理解,對于上述本發(fā)明所提出的基于調用關系依賴圖的回歸測試方法及系統(tǒng),還可以在不脫離本
【發(fā)明內容】
的基礎上做出各種改進。因此,本發(fā)明的保護范圍應當由所附的權利要求書的內容確定。
【權利要求】
1.一種基于調用關系依賴圖的回歸測試方法,包括: 將從版本管理庫中獲取的待比較版本的所有方法進行轉存; 將所述版本管理庫更新至待測版本,然后編譯所述待測版本,獲取所述待測版本的所有方法之間的調用關系,并進行存儲; 將所述待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集; 根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)所述方法變更集,在所述調用關系依賴圖中對所述變更的方法進行標注; 根據(jù)在所述調用關系依賴圖中所標注的方法確定所述待測版本的回歸范圍,并根據(jù)所述回歸范圍進行回歸測試。
2.如權利要求1所述的基于調用關系依賴圖的回歸測試方法,其中,在將從版本管理庫中獲取的待比較版本的所有方法進行轉存之前,還包括: 利用所述版本管理庫所提供的接口,通過持續(xù)集成工具從所述版本管理庫中獲取所述待比較版本的所有方法;或者, 直接從所述版本管理庫中獲取所述待比較版本的所有方法。
3.如權利要求1所述的基于調用關系依賴圖的回歸測試方法,其中,在將從版本管理庫中獲取的待比較版本的所有方法進行轉存的過程中, 將所獲取的待比較版本的所有方法轉存到存儲系統(tǒng)中。
4.如權利要求1所述的基于調用關系依賴圖的回歸測試方法,其中,在獲取所述待測版本的所有方法之間的調用關系的過程中, 通過java字節(jié)碼框架獲取所述待測版本的所有方法之間的調用關系。
5.如權利要求1所述的基于調用關系依賴圖的回歸測試方法,其中,在獲取所述待測版本的所有方法之間的調用關系,并進行存儲的過程中, 將所述調用關系存儲在運行系統(tǒng)的內存或者文件存儲系統(tǒng)中。
6.如權利要求1所述的基于調用關系依賴圖的回歸測試方法,其中,在將所述待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集的過程中, 通過源代碼分析框架將所述待測版本的所有方法與所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集。
7.如權利要求1所述的基于調用關系依賴圖的回歸測試方法,其中,所述方法變更集包括修改的方法集、新增的方法集和刪除的方法集。
8.一種基于調用關系依賴圖的回歸測試系統(tǒng),包括: 方法轉存單元,用于將從版本管理庫中獲取的待比較版本的所有方法進行轉存; 調用關系獲取單元,用于將所述版本管理庫更新至待測版本,然后編譯所述待測版本,獲取所述待測版本的所有方法之間的調用關系,并進行存儲; 變更集生成單元,用于將所述待測版本的所有方法與所述方法轉存單元中所轉存的待比較版本的所有方法進行比較,獲取發(fā)生變更的方法,生成方法變更集; 變更方法標注單元,用于根據(jù)所存儲的調用關系生成調用關系依賴圖,并根據(jù)所述方法變更集,在所述調用關系依賴圖中對所述變更的方法進行標注;回歸測試單元,用于根據(jù)在所述調用關系依賴圖中所標注的方法確定所述待測版本的回歸范圍,并根據(jù)所述回歸范圍進行回歸測試。
9.如權利要求8所述的基于調用關系依賴圖的回歸測試系統(tǒng),其中,所述方法轉存單元在將從版本管理庫中獲取的待比較版本的所有方法進行轉存之前,還包括: 利用所述版本管理庫所提供的接口,通過持續(xù)集成工具從所述版本管理庫中獲取所述待比較版本的所有方法;或者, 直接從所述版本管理庫中獲取所述待比較版本的所有方法。
10.如權利要求8所述的基于調用關系依賴圖的回歸測試系統(tǒng),其中,所述方法轉存單元在將從版本管理庫中獲取的待比較版本的所有方法進行轉存的過程中, 將所獲取的待比較版本的所有方法轉存到存儲系統(tǒng)中。
11.如權利要求8所述的基于調用關系依賴圖的回歸測試系統(tǒng),其中,所述調用關系獲取單元在獲取所述待測版本的所有方法之間的調用關系的過程中, 通過java字節(jié)碼框架獲取所述待測版本的所有方法之間的調用關系。
12.如權利要求8所述的基于調用關系依賴圖的回歸測試系統(tǒng),其中,所述調用關系獲取單元在獲取所述待測版本的所有方法之間的調用關系,并進行存儲的過程中, 將所述調用關系存儲在運行系統(tǒng)的內存或者文件存儲系統(tǒng)中。
13.如權利要求8所述的基于調用關系依賴圖的回歸測試裝置,其中,所述變更集生成單元在生成方法變更集的過程中, 通過源代碼分析框架將所述待測版本的所有方法與所述方法轉存單元中所轉存的待比較版本的所有方法進行比較,獲`取發(fā)生變更的方法,生成方法變更集。
【文檔編號】G06F11/36GK103699488SQ201310745825
【公開日】2014年4月2日 申請日期:2013年12月30日 優(yōu)先權日:2013年12月30日
【發(fā)明者】陳偉鴻, 劉威, 李劍 申請人:優(yōu)視科技有限公司