亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于標(biāo)識源代碼版本之間的語義區(qū)別的方法和裝置的制造方法

文檔序號:9687265閱讀:354來源:國知局
用于標(biāo)識源代碼版本之間的語義區(qū)別的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明的各實施方式涉及軟件開發(fā),更具體地,涉及在軟件開發(fā)期間用于標(biāo)識源 代碼版本之間的語義區(qū)別(semanticdifference)的方法和裝置。
【背景技術(shù)】
[0002] 隨著用戶需求的增加,計算機軟件的功能也日益復(fù)雜。在軟件開發(fā)周期中,需要頻 繁地對各個開發(fā)階段中的不同的源代碼版本進行測試。回歸測試(regressiontesting)指 修改了舊代碼后,重新進行測試W確認(rèn)修改沒有引入新的錯誤或?qū)е缕渌a出現(xiàn)錯誤。 作為軟件開發(fā)的一個重要組成部分,回歸測試在整個軟件開發(fā)過程中占有很大的工作量比 重。通常而言,開發(fā)人員逐步完成軟件設(shè)計中的各項功能,并且基于回歸測試來確保源代碼 的正確。
[0003]例如,開發(fā)人員編寫了第一源代碼版本,經(jīng)過測試后發(fā)現(xiàn)該第一源代碼版本可W實現(xiàn)預(yù)期的設(shè)計。繼而,開發(fā)人員可W在該第一源代碼版本的基礎(chǔ)上繼續(xù)開發(fā)其他功能并 完成第二源代碼版本。在后續(xù)的開發(fā)第二版本源代碼過程期間將會添加新的代碼,并且還 可能會修改第一源代碼版本中的已經(jīng)通過測試的已有代碼。
[0004]在針對第二源代碼版本進行測試時,可能會發(fā)現(xiàn)第二源代碼版本中引入了在第一 源代碼版本中不存在的新問題。例如,第一源代碼版本可W通過某些測試用例(testcase) 的測試,然而,第二源代碼版本不能通過送些測試用例的測試。此時則需要比較第一源代碼 版本和第二源代碼版本之間的區(qū)別,W便發(fā)現(xiàn)并排除在開發(fā)第二源代碼版本期間引入的錯 誤。
[0005]然而,開發(fā)過程可能會涉及到復(fù)雜的過程,例如,開發(fā)人員可能會加入新的代碼 行、刪除現(xiàn)有代碼行、修改現(xiàn)有代碼行等,送些修改可能會在兩個源代碼版本之間引入語義 區(qū)別(即,可能會導(dǎo)致運行結(jié)果的不同)。另外,開發(fā)人員還有可能會調(diào)整代碼行/函數(shù)在 源代碼中的順序(例如,交換兩個代碼行/函數(shù)的位置)、替換變量(variable)名/函數(shù)名 等。盡管從文本角度看來,上述送些修改將會在兩個源代碼版本之間引入文本區(qū)別,然而對 于編程語言的編譯和執(zhí)行而言,送些文本區(qū)別并不會對運行結(jié)果產(chǎn)生影響,因而在查找新 引入的錯誤時,可W僅關(guān)注于語義區(qū)別而忽略文本區(qū)別。
[0006] 目前已經(jīng)提出了在回歸測試中用于輔助查找各個源代碼版本之間的區(qū)別的技術(shù) 方案,然而送些技術(shù)方案主要基于分析各個版本之間的文本區(qū)別來實現(xiàn)。送些技術(shù)方案會 將原本不會對程序的運行結(jié)果產(chǎn)生任何影響的文本修改標(biāo)識為區(qū)別,造成開發(fā)人員不得不 在所標(biāo)識的大量區(qū)別中人工地尋找真正對運行結(jié)果產(chǎn)生影響的語義區(qū)別。
[0007] 因而,如何快速并且準(zhǔn)確地標(biāo)識出各個源代碼版本之間的語義區(qū)別,成為目前的 一個研究熱點。

【發(fā)明內(nèi)容】

[0008] 因而,期望開發(fā)一種能夠標(biāo)識不同源代碼版本之間的語義區(qū)別的技術(shù)方案。期望 該技術(shù)方案可w忽略不同源代碼版本之間的文本區(qū)別,而僅標(biāo)識各個版本之間的語義區(qū) 另|J,W便于開發(fā)人員可W快速定位開發(fā)期間被修改的導(dǎo)致程序產(chǎn)生不同運行結(jié)果的內(nèi)容, 進而找到可能引起錯誤的代碼行。
[0009] 在本發(fā)明的一個實施方式中,提供了一種用于標(biāo)識源代碼版本之間的語義區(qū)別的 方法,包括:分別獲取第一源代碼版本的第一調(diào)試信息和第二源代碼版本的第二調(diào)試信息; 通過比較第一調(diào)試信息與第二調(diào)試信息,確定在第二源代碼版本中是否存在與第一源代碼 版本中的第一函數(shù)相匹配的第二函數(shù);W及基于確定的結(jié)果標(biāo)識語義區(qū)別。
[0010] 在本發(fā)明的一個實施方式中,提供了一種用于標(biāo)識源代碼版本之間的語義區(qū)別的 裝置,包括:獲取模塊,配置用于分別獲取第一源代碼版本的第一調(diào)試信息和第二源代碼版 本的第二調(diào)試信息;確定模塊,配置用于通過比較第一調(diào)試信息與第二調(diào)試信息,確定在第 二源代碼版本中是否存在與第一源代碼版本中的第一函數(shù)相匹配的第二函數(shù);W及標(biāo)識模 塊,配置用于基于確定的結(jié)果標(biāo)識語義區(qū)別。
[0011] 采用本發(fā)明所述的方法和裝置,可W在盡量不改變現(xiàn)有軟件開發(fā)流程的情況下, 快速并且準(zhǔn)確地標(biāo)識各個源代碼版本之間的語義區(qū)別。
【附圖說明】
[0012] 通過結(jié)合附圖對本公開示例性實施方式進行更詳細的描述,本公開的上述W及其 他目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號 通常代表相同部件。
[0013] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖;
[0014] 圖2示意性示出了根據(jù)一個技術(shù)方案的用于標(biāo)識源代碼版本之間的區(qū)別的框圖;
[0015] 圖3示意性示出了根據(jù)本發(fā)明一個實施方式的用于標(biāo)識源代碼版本之間的語義 區(qū)別的技術(shù)方案的框圖;
[0016] 圖4示意性示出了根據(jù)本發(fā)明一個實施方式的用于標(biāo)識源代碼版本之間的語義 區(qū)別的方法的流程圖;
[0017] 圖5示意性示出了根據(jù)本發(fā)明一個實施方式的通過比較調(diào)試信息而標(biāo)識源代碼 版本之間的語義區(qū)別的方法的流程圖;
[0018] 圖6示意性示出了根據(jù)本發(fā)明一個實施方式的標(biāo)識語義區(qū)別的框圖;W及
[0019] 圖7示意性示出了根據(jù)本發(fā)明一個實施方式的用于標(biāo)識源代碼版本之間的語義 區(qū)別的裝置的框圖。
【具體實施方式】
[0020] 下面將參照附圖更詳細地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開 的優(yōu)選實施方式,然而應(yīng)該理解,可WW各種形式實現(xiàn)本公開而不應(yīng)被送里闡述的實施方 式所限制。相反,提供送些實施方式是為了使本公開更加透徹和完整,并且能夠?qū)⒈竟_的 范圍完整地傳達給本領(lǐng)域的技術(shù)人員。
[0021] 圖1示出了適于用來實現(xiàn)本發(fā)明實施方式的示例性計算機系統(tǒng)/服務(wù)器12的框 圖。圖1顯示的計算機系統(tǒng)/服務(wù)器12僅僅是一個示例,不應(yīng)對本發(fā)明實施方式的功能和 使用范圍帶來任何限制。
[0022] 如圖1所示,計算機系統(tǒng)/服務(wù)器12W通用計算設(shè)備的形式表現(xiàn)。計算機系統(tǒng) /服務(wù)器12的組件可W包括但不限于;一個或者多個處理器或者處理單元16,系統(tǒng)存儲器 28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲器28和處理單元16)的總線18。
[0023] 總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲器總線或者存儲器控制器, 外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉 例來說,送些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(ISA)總線,微通道體系結(jié)構(gòu)(MAC) 總線,增強型ISA總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局域總線W及外圍組件互連(PCI)總線。
[0024] 計算機系統(tǒng)/服務(wù)器12典型地包括多種計算機系統(tǒng)可讀介質(zhì)。送些介質(zhì)可W是 任何能夠被計算機系統(tǒng)/服務(wù)器12訪問的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動 的和不可移動的介質(zhì)。
[0025] 系統(tǒng)存儲器28可W包括易失性存儲器形式的計算機系統(tǒng)可讀介質(zhì),例如隨機存 取存儲器(RAM) 30和/或高速緩存存儲器32。計算機系統(tǒng)/服務(wù)器12可W進一步包括其 他可移動/不可移動的、易失性/非易失性計算機系統(tǒng)存儲介質(zhì)。僅作為舉例,存儲系統(tǒng)34 可W用于讀寫不可移動的、非易失性磁介質(zhì)(圖1未顯示,通常稱為"硬盤驅(qū)動器")。盡管 圖1中未示出,可W提供用于對可移動非易失性磁盤(例如"軟盤")讀寫的磁盤驅(qū)動器, W及對可移動非易失性光盤(例如CD-ROM,DVD-ROM或者其他光介質(zhì))讀寫的光盤驅(qū)動器。 在送些情況下,每個驅(qū)動器可W通過一個或者多個數(shù)據(jù)介質(zhì)接口與總線18相連。存儲器28 可W包括至少一個程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個)程序模塊,送些程序模 塊被配置W執(zhí)行本發(fā)明各實施方式的功能。
[0026]具有一組(至少一個)程序模塊42的程序/實用工具40,可W存儲在例如存儲器 28中,送樣的程序模塊42包括一但不限于一操作系統(tǒng)、一個或者多個應(yīng)用程序、其他 程序模塊W及程序數(shù)據(jù),送些示例中的每一個或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實現(xiàn)。程 序模塊42通常執(zhí)行本發(fā)明所描述的實施方式中的功能和/或方法。
[0027] 計算機系統(tǒng)/服務(wù)器12也可W與一個或多個外部設(shè)備14 (例如鍵盤、指向設(shè)備、 顯示器24等)通信,還可與一個或者多個使得用戶能與該計算機系統(tǒng)/服務(wù)器12交互的 設(shè)備通信,和/或與使得該計算機系統(tǒng)/服務(wù)器12能與一個或多個其他計算設(shè)備進行通信 的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。送種通信可W通過輸入/輸出(I/O)接 口 22進行。并且,計算機系統(tǒng)/服務(wù)器12還可W通過網(wǎng)絡(luò)適配器20與一個或者多個網(wǎng)絡(luò) (例如局域網(wǎng)(LAN),廣域網(wǎng)(WAN)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖所示,網(wǎng)絡(luò)適 配器20通過總線18與計算機系統(tǒng)/服務(wù)器12的其他模塊通信。應(yīng)當(dāng)明白,盡管圖中未示 出,可W結(jié)合計算機系統(tǒng)/服務(wù)器12使用其他硬件和/或軟件模塊,包括但不限于;微代 碼、設(shè)備驅(qū)動器、兀余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動器W及數(shù)據(jù)備份存 儲系統(tǒng)等。
[0028] 圖2示意性示出了根據(jù)一個技術(shù)方案的用于標(biāo)識源代碼版本之間的區(qū)別的框圖 200。如圖2所示,第一版本210包括主函數(shù)main和兩個函數(shù)subl和sub2,第二版本220 包括主函數(shù)main和兩個函數(shù)化ncl和化nc2。應(yīng)當(dāng)注意,根據(jù)如圖2所示的基于文本變化 來標(biāo)識各個源代碼版本之間的區(qū)別的技術(shù)方案,第一版本210和第二版本220之間存在大 量區(qū)別。
[0029] 假設(shè)第二版本220是在第一版本210基礎(chǔ)上開發(fā)的最新源代碼版本,針對第一版 本210的修改包括;1)將函數(shù)subl重命名為funcl,并將函數(shù)subl中的變量pi、si、s2分 別重命名為i噸utIntegeiNtmpIntegerl和tmplnteger2 ;2)將函數(shù)sub2 重命名為func2, 并且將函數(shù)sub2中的變量p2重命名為i噸utinteger;W及3)在函數(shù)main中添加新代碼 行printf( "a+b= %d\n",a+b)。根據(jù)現(xiàn)有的技術(shù)方案,上述第1-3點涉及的修改均為第 一版本210和第二版本220之間的區(qū)別。
[0030] 本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,盡管對多個函數(shù)和變量進行了重命名,然而
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1