新四季網

一種通過分析代碼變化確定功能點變化的方法

2023-07-25 00:41:36

專利名稱:一種通過分析代碼變化確定功能點變化的方法
技術領域:
本發明涉及一種軟體代碼管理方法,特別是關於一種通過分析代碼變化確定功 能點變化的方法。
背景技術:
隨著軟體規模的日益增長,軟體開發團隊也在快速膨脹,如何保障軟體新版本 的穩定無誤,成為了軟體管理的熱點話題。假設當前使用的軟體系統是穩定的,並 且系統面臨的硬體環境、網絡環境和客戶使用模式(如並發量)沒有發生巨變,那 麼誘發新版本軟體系統故障的風險往往在於軟體自身的改變。在傳統的軟體開發過 程中,軟體的變更往往由開發人員主動聲明,然而這樣的聲明,其準確性無從檢驗, 完全依賴於開發人員的自身素質。隨著開發規模的擴大,開發人員的增多,軟體系 統發生故障的風險也越來越大。
目前越來越多的軟體企業紛紛開始尋找軟體版本管理的工具,希望通過計算機 工具對軟體變化進行控制。常用的軟體版本管理工具均採用傳統的基於文件的分析
方法,在比較文本間的差異變化過程中,僅能將文本變化定位到行級或者字符級, 無法真正定位軟體源文件中代碼對象(如函數、類、常量、變量等)的變化,更 無法獲知這些代碼對象變更後導致被調用者所發生的變化。因此,軟體變更的風險 無從考量,針對性測試也無法進行。

發明內容
針對上述問題,本發明的目的是提出一種通過分析代碼變化確定功能點變化的 方法。
為實現上述目的,本發明採取以下技術方案 一種通過分析代碼變化確定功能 點變化的方法,其包括以下步驟1)用戶通過代碼分析用戶界面分別添加待分析 的較低版本和較高版本的原始碼;2)用戶通過代碼分析用戶界面配置質量保證部 門最終需要測試的功能接口函數的名稱;3)代碼分析服務模塊中的語義diff分析 器對兩種待分析的原始碼的差異進行語義級分析,調用相應的語言分析模塊,先從 文本層次上找到並收集所有的變化,並生成diff結果;4)代碼分析服務模塊中的
call graph分析器對兩個待分析版本的原始碼的結構關係進行分析,包括函數及方 法的調用關係、結構的包含關係和類的繼承關係,找出原始碼中做過修改的地方以 及功能接口函數或方法的關聯關係,並生成call graph結果;5)代碼分析服務模塊中的影響分析器對diff結果和call graph結果進行分析,將所有受影響的功能 接口函數或方法以圖表或者報表的形式通過用戶界面輸出;6)用戶根據輸出的報 表或圖表判斷出受到影響的外部功能點,通知質量保證部門有選擇地對受到影響的 功能點進行測試。
當待分析的原始碼中含有數據配置文件以及腳本文件時,在進行完步驟2)後 查找出這些文件中所包含的代碼對象,並且與待分析的原始碼一同進行分析。
所述代碼分析服務模塊與一個或一個以上代碼分析客戶端,採用客戶端/服務 器的軟體架構。
本發明由於採取以上技術方案,其具有以下優點1、本發明與傳統的文本分 析方法相比,將軟體源文件差異分析定位到代碼對象級,如函數變化、類變化、變 量變化、常量變化等,從而實現了對代碼文件內容差異的精確定位。2、本發明通 過對指定代碼對象所在軟體項目工程中的編譯環境和編譯原理的解析,找到所有直 接調用或者間接調用該指定代碼對象的其它代碼對象,從而實現了對指定代碼對象 的被調用關係遍歷。3、當用戶在定義最外層接口函數的特徵時,本發明可以在上 述兩個優點的基礎上,將版本間代碼變化而導致的接口函數變化風險進行遍歷和篩 選,告知用戶新版本的最外層接口或業務風險,為質量保證部門的測試提供了風險 指導,從而實現從函數接口到業務功能的映射。4、本發明考慮到一些原始碼中的 數據配置文件和腳本文件也可能對原始碼調用關係和編譯結果產生影響,因此對這 些數據配置文件以及腳本文件中包含的幻術、類、常量、變量等代碼對象也進行分 析,從而使代碼分析的結果更加全面、準確。5、本發明方法採用C/S軟體架構, 支持多用戶並行工作,這使得伺服器的性能優勢能夠得到充分的發揮。6、本發明 方法可以針對不同的開發語言加載相應的語言分析模塊,從而實現對更為廣泛的軟 件的分析。


圖1是本發明進行原始碼變化分析的基本流程圖 圖2是待分析的較低版本和較高版本的原始碼示例 圖3是本發明作用於圖2原始碼示例上的變化分析結果示例 圖4是基於本發明的一種可行的軟體架構
具體實施例方式
下面結合附圖和實施例對本發明進行詳細的描述。
如圖l、圖2、圖3所示,本實施例的方法包括以下步驟-
1、用戶通過代碼分析用戶界面分別添加自身請求分析的較低版本(版本1)和較高版本(版本2)的原始碼(如圖2所示)。
2、 用戶通過代碼分析用戶界面配置質量保證部門最終需要測試的功能接口函 數的名稱,該名稱用正則表達式來表示。
3、 代碼分析服務模塊中的語義diff (差異變化)分析器對版本1和版本2的 原始碼(如C/C++、 Java代碼)的差異進行語義級分析,調用相應的語言分析模塊, 先從文本層次上找到並收集所有的變化,包括原始碼的增加、刪除或修改,並生成 diff結果。
4、 代碼分析服務模塊中的call graph (調用關係圖)分析器對版本1和版本 2的原始碼的結構關係進行分析,包括函數及方法的調用關係、結構的包含關係、 類的繼承關係等,找出原始碼中做過修改的地方以及功能接口函數或方法的關聯關 系,並生成call graph結果。
5、 代碼分析服務模塊中的影響分析器對diff結果和call graph結果進行分 析,將所有受影響的功能接口函數或方法,以圖表或者報表的形式輸出,生成影響 結果圖。
6、 用戶通過查看代碼分析服務模塊的分析結果,有如下發現(如圖3所示)
① 函數input被修改了;
② 函數input被函數count調用了,說明函數count發生了變化;
③ 函數count被函數API1和API2調用了,說明函數API1和API2發生了變化; ④函數API1和API2是功能接口函數。
7、 分析結果表明質量保證部門需要對兩個功能點進行測試,分別是接口函 數APIl和API2。
在待分析的原始碼中,可能會包含一些數據配置文件以及腳本文件,這些文件 中也可能會包含代碼對象,與待分析的代碼對象的名稱一致,那麼它們的變化同樣 可能對待分析的原始碼調用關係和編譯結果產生影響,因此也需要對這些代碼對象 進行分析。如果待分析的原始碼中含有數據配置文件以及腳本文件,則在分析之前, 這些文件中所包含的函數、類、常量、變量等代碼對象會被查出來,並且與待分析 的原始碼一同進行分析。
圖4所示,是基於本發明的一種可行的軟體架構圖,其採用的是C/S軟體架構, 即"客戶端/伺服器"的軟體架構,代碼分析客戶端創建並發起一次代碼分析任務, 代碼分析伺服器負責進行具體的分析,然後把分析結果返回給代碼分析客戶端。採 用這種架構時,允許有多個代碼分析客戶端向代碼分析伺服器發起代碼分析請求, 支持多用戶並行工作。儘管為說明目的公開了本發明的較佳實施例和附圖,其目的在於幫助理解本發 明的內容並據以實施,但是熟悉本領域技術的人員,在不脫離本發明及所附的權利 要求的精神和範圍內,可做各種替換、變化和潤飾。因此,本發明不應局限於最佳 實施例和附圖所公開的內容,本發明的保護範圍以所附的權利要求書所界定的範圍 為準。
權利要求
1. 一種通過分析代碼變化確定功能點變化的方法,其包括以下步驟1)用戶通過代碼分析用戶界面分別添加待分析的較低版本和較高版本的原始碼;2)用戶通過代碼分析用戶界面配置質量保證部門最終需要測試的功能接口函數的名稱;3)代碼分析服務模塊中的語義diff分析器對兩種待分析的原始碼的差異進行語義級分析,調用相應的語言分析模塊,先從文本層次上找到並收集所有的變化,並生成diff結果;4)代碼分析服務模塊中的call graph分析器對兩個待分析版本的原始碼的結構關係進行分析,包括函數及方法的調用關係、結構的包含關係和類的繼承關係,找出原始碼中做過修改的地方以及功能接口函數或方法的關聯關係,並生成callgraph結果;5)代碼分析服務模塊中的影響分析器對diff結果和call graph結果進行分析,將所有受影響的功能接口函數或方法以圖表或者報表的形式通過用戶界面輸出;6)用戶根據輸出的報表或圖表判斷出受到影響的外部功能點,通知質量保證部門有選擇地對受到影響的功能點進行測試。
2、 如權利要求1所述一種通過分析代碼變化確定功能點變化的方法,其特徵 在於當待分析的原始碼中含有數據配置文件以及腳本文件時,在進行完步驟2) 後查找出這些文件中所包含的代碼對象,並且與待分析的原始碼一同進行分析。
3、 如權利要求1或2所述一種通過分析代碼變化確定功能點變化的方法,其 特徵在於所述代碼分析服務模塊與一個或一個以上代碼分析客戶端採用客戶端/ 伺服器的軟體架構。
全文摘要
本發明涉及一種通過分析代碼變化來確定功能點變化的方法,其先從文本層次上找到並收集待比較原始碼所有的變化,並生成diff結果;然後通過分析待比較原始碼的結構關係,來找出原始碼中做過修改的地方和功能接口函數或方法的關聯關係,並生成call graph結果;最後對diff結果和call graph結果進行分析,將所有受影響的功能接口函數或方法以圖表或者報表的形式輸出,生成影響結果圖。通過這種代碼分析,可以找到版本升級時受到影響的外部功能點,從而有效地輔助對新的軟體版本進行測試以及升級工作。
文檔編號G06F9/44GK101286119SQ20081011301
公開日2008年10月15日 申請日期2008年5月27日 優先權日2008年5月27日
發明者王興梁, 王勝軍, 金龍飛 申請人:華耀環宇科技(北京)有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀