新四季網

優化的蟻群算法測試用例自動生成方法和系統的製作方法

2023-05-17 00:14:16

專利名稱:優化的蟻群算法測試用例自動生成方法和系統的製作方法
技術領域:
本發明涉及軟體測試技術,尤其涉及藉助優化後的蟻群算法自動生成測試用例的方法和系統。
背景技術:
軟體測試是現階段保障軟體質量的重要手段。軟體測試中的諸如語句覆蓋、路徑覆蓋等問題可以歸結為面向路徑的測試數據的生成問題。單元測試階段,結構覆蓋測試要求語句覆蓋率和分支覆蓋率均達到100%,人工編寫測試用例比較困難,常常無法達到覆蓋率的測試要求;而對於已有的測試工具,在測試過程中,需要的人工幹預過多,且測試不全面。傳統技術是將蟻群/遺傳算法用於測試用例自動生成,不需要對源碼信息做太多的靜態分析、動態分析,只需要對用例進行單向地修改和變化。目前的這種算法仍具有如下的缺點:1.基本採用的是盲搜的方法,盲目地搜索會浪費很多資源,比如增加時間複雜度;2.初始測試用例一般是隨機的,並沒有根據測試路徑中隱藏的一些關係來設定初始測試用例;3.沒有對不可達的路徑進行排除。

發明內容
本發明的目 的在於解決上述問題,提供了一種優化的蟻群算法測試用例自動生成方法和系統,能夠自動生成與優化測試路徑,並進一步改進測試用例的自動生成算法。本發明的技術方案為:本發明揭示了一種優化的蟻群算法測試用例自動生成方法,包括:步驟1:掃描源程序,進行詞法分析,獲得變量表;步驟2:掃描源程序,進行語法分析,獲得蟻后、小螞蟻、終結蟻以及每隻小螞蟻對變量的影響信息,結合步驟I獲得的變量表,構造螞蟻變量表;步驟3:根據步驟I和2的掃描信息完善源程序,並根據螞蟻變量表中的蟻后的信息進行蟻后插樁,記錄樁信息;步驟4:根據蟻后的信息初始化每條路徑信息素的值,並基於螞蟻變量表,對每條路徑的信息素進行累積操作以獲得每條路徑的路徑信息素的結果值,根據路徑信息素的結果值剔除不可能覆蓋的路徑,在剩餘的路徑裡取一條路徑作為當前測試路徑;步驟5:根據當前測試路徑的相關信息素,使用SOR迭代法構造初始測試用例作為當前的測試用例;步驟6:調用命令執行當前的測試用例,並將當前的測試用例的遍歷情況寫入日誌文件,以便於指導信息素的變化;
步驟7:根據步驟6的遍歷情況,判斷當前的測試用例是否能覆蓋當前的測試用例,若能,則當前的測試用例可歸入測試用例集,並選取下一條路徑,並轉入步驟5 ;若不能,則調整螞蟻的信息素使生成的測試用例向更好地覆蓋測試路徑的方向變化,並根據調整後的螞蟻的信息素生成新的測試用例,作為當前的測試用例,並轉入步驟6,最後的測試用例集即為最後輸出的測試用例。根據本發明的優化的蟻群算法測試用例自動生成方法的一實施例,步驟4中是採用精英螞蟻算法對每條路徑的信息素進行累積操作。根據本發明的優化的蟻群算法測試用例自動生成方法的一實施例,步驟5進一步包括:
使用隨機函數構造一測試用例;按照路徑的順序依次收集路徑上的信息素及每隻螞蟻對變量的影響信息,計算每個謂詞語句的謂詞函數的線性算術表示,並構造輸入變量的線性約束直至遇到謂詞語句所含有的謂詞函數無法使用線性算術表示時停止;求解線性約束系統,得到新的測試用例,即為初始測試用例。根據本發明的優化的蟻群算法測試用例自動生成方法的一實施例,步驟7中調整螞蟻的信息素包括:調整螞蟻的信息素的變化指向量,用以指示是測試用例中的哪一個變量進行變化;調整螞蟻的信息素的指向增長量,用以指示是否增加變化指向量;調整螞蟻的信息素的成長方向量,用以指示測試用例中變量的數值的變化方向;調整螞蟻的信息素的成長幅度量,用以指示測試用例中變量的成長幅度。本發明還揭示了一種優化的蟻群算法測試用例自動生成系統,包括:詞法分析裝置,掃描源程序,進行詞法分析,獲得變量表;語法分析裝置,掃描源程序,進行語法分析,獲得蟻后、小螞蟻、終結蟻以及每隻小螞蟻對變量的影響信息,結合詞法分析裝置獲得的變量表,構造螞蟻變量表;蟻后插樁裝置,根據詞法分析裝置和語法分析裝置的掃描信息完善源程序,並根據螞蟻變量表中的蟻后的信息進行蟻后插樁,記錄樁信息;路徑預處理裝置,根據蟻后的信息初始化每條路徑信息素的值,並基於螞蟻變量表,對每條路徑的信息素進行累積操作以獲得每條路徑的路徑信息素的結果值,根據路徑信息素的結果值剔除不可能覆蓋的路徑,在剩餘的路徑裡取一條路徑作為當前測試路徑;初始測試用例構造裝置,根據當前測試路徑的相關信息素,使用SOR迭代法構造初始測試用例作為當前的測試用例;測試用例遍歷偵察裝置,調用命令執行當前的測試用例,並將當前的測試用例的遍歷情況寫入日誌文件,以便於指導信息素的變化;螞蟻信息素調整裝置,根據測試用例遍歷偵察裝置的遍歷情況,判斷當前的測試用例是否能覆蓋當前的測試用例,若能則當前的測試用例可歸入測試用例集,並選取下一條路徑,並轉入測試用例遍歷偵察裝置,若不能則調整螞蟻的信息素使生成的測試用例向更好地覆蓋測試路徑的方向變化,並根據調整後的螞蟻的信息素生成新的測試用例,作為當前的測試用例,並轉入測試用例遍歷偵察裝置,最後的測試用例集即為最後輸出的測試用例。根據本發明的優化的蟻群算法測試用例自動生成系統的一實施例,路徑預處理裝置是採用精英螞蟻算法對每條路徑的信息素進行累積操作。根據本發明的優化的蟻群算法測試用例自動生成系統的一實施例,螞蟻信息素調整裝置進一步包括:變化指向量調整模塊,調整螞蟻的信息素的變化指向量,用以指示是測試用例中的哪一個變量進行變化;指向增長量調整模塊,調整螞蟻的信息素的指向增長量,用以指示是否增加變化指向量;成長方向量調整模塊,調整螞蟻的信息素的成長方向量,用以指示測試用例中變量的數值的變化方向;成長幅度量調整模塊,調整螞蟻的信息素的成長幅度量,用以指示測試用例中變量的成長幅度。本發明對比現有技術有如下的有益效果:本發明的方案是藉助測試路徑的自動生成與測試用例的自動生成相結合,通過蟻后插樁、不可覆蓋路徑排除、初始用例優化、以及信息素動態調整和用例優化。相較於現有技術,本發明可以降低測試人員的技術要求和因疏忽導致用例設計不全而漏測風險,保證軟體產品質量;無需人為的太多幹預,提高測試效率;可發現程序中的死循環以及異常,還可以發現不應該執行而實際上執行了的代碼,或者應該執行而實際上沒有執行的代碼;優化測試用例,避免重複用例。


圖1示出了本發明的優化的蟻群算法測試用例自動生成方法的較佳實施例的原理圖。圖2示出了圖1所示的優化的蟻群算法測試用例自動生成方法的實施例的詳細流程圖。圖3示出了本發明的優化的蟻群算法測試用例自動生成系統的較佳實施例的系統結構圖。
具體實施例方式下面結合附圖和實施例對本發明作進一步的描述。圖1示出了本發明的優化的蟻群算法測試用例自動生成方法的較佳實施例的原理。請參見圖1,本實施例的方法主要包括如下的步驟。為了更方便的說明本方法的實現,以以下例子作為源 程序進行說明:
權利要求
1.一種優化的蟻群算法測試用例自動生成方法,包括 步驟I :掃描源程序,進行詞法分析,獲得變量表; 步驟2 :掃描源程序,進行語法分析,獲得蟻后、小螞蟻、終結蟻以及每隻小螞蟻對變量的影響信息,結合步驟I獲得的變量表,構造螞蟻變量表; 步驟3 :根據步驟I和2的掃描信息完善源程序,並根據螞蟻變量表中的蟻后的信息進行蟻后插樁,記錄樁信息; 步驟4 :根據蟻后的信息初始化每條路徑信息素的值,並基於螞蟻變量表,對每條路徑的信息素進行累積操作以獲得每條路徑的路徑信息素的結果值,根據路徑信息素的結果值剔除不可能覆蓋的路徑,在剩餘的路徑裡取一條路徑作為當前測試路徑; 步驟5 :根據當前測試路徑的相關信息素,使用SOR迭代法構造初始測試用例作為當前的測試用例; 步驟6:調用命令執行當前的測試用例,並將當前的測試用例的遍歷情況寫入日誌文件,以便於指導信息素的變化; 步驟7 :根據步驟6的遍歷情況,判斷當前的測試用例是否能覆蓋當前的測試用例,若能,則當前的測試用例可歸入測試用例集,並選取下一條路徑,並轉入步驟5 ;若不能,則調整螞蟻的信息素使生成的測試用例向更好地覆蓋測試路徑的方向變化,並根據調整後的螞蟻的信息素生成新的測試用例,作為當前的測試用例,並轉入步驟6,最後的測試用例集即為最後輸出的測試用例。
2.根據權利要求I所述的優化的蟻群算法測試用例自動生成方法,其特徵在於,步驟4中是採用精英螞蟻算法對每條路徑的信息素進行累積操作。
3.根據權利要求I所述的優化的蟻群算法測試用例自動生成方法,其特徵在於,步驟5進一步包括 使用隨機函數構造一測試用例; 按照路徑的順序依次收集路徑上的信息素及每隻螞蟻對變量的影響信息,計算每個謂詞語句的謂詞函數的線性算術表示,並構造輸入變量的線性約束直至遇到謂詞語句所含有的謂詞函數無法使用線性算術表示時停止; 求解線性約束系統,得到新的測試用例,即為初始測試用例。
4.根據權利要求I所述的優化的蟻群算法測試用例自動生成方法,其特徵在於,步驟7中調整螞蟻的信息素包括 調整螞蟻的信息素的變化指向量,用以指示是測試用例中的哪一個變量進行變化; 調整螞蟻的信息素的指向增長量,用以指示是否增加變化指向量; 調整螞蟻的信息素的成長方向量,用以指示測試用例中變量的數值的變化方向; 調整螞蟻的信息素的成長幅度量,用以指示測試用例中變量的成長幅度。
5.一種優化的蟻群算法測試用例自動生成系統,包括 詞法分析裝置,掃描源程序,進行詞法分析,獲得變量表; 語法分析裝置,掃描源程序,進行語法分析,獲得蟻后、小螞蟻、終結蟻以及每隻小螞蟻對變量的影響信息,結合詞法分析裝置獲得的變量表,構造螞蟻變量表; 蟻后插樁裝置,根據詞法分析裝置和語法分析裝置的掃描信息完善源程序,並根據螞蟻變量表中的蟻后的信息進行蟻后插樁,記錄樁信息;路徑預處理裝置,根據蟻后的信息初始化每條路徑信息素的值,並基於螞蟻變量表,對每條路徑的信息素進行累積操作以獲得每條路徑的路徑信息素的結果值,根據路徑信息素的結果值剔除不可能覆蓋的路徑,在剩餘的路徑裡取一條路徑作為當前測試路徑; 初始測試用例構造裝置,根據當前測試路徑的相關信息素,使用SOR迭代法構造初始測試用例作為當前的測試用例; 測試用例遍歷偵察裝置,調用命令執行當前的測試用例,並將當前的測試用例的遍歷情況寫入日誌文件,以便於指導信息素的變化; 螞蟻信息素調整裝置,根據測試用例遍歷偵察裝置的遍歷情況,判斷當前的測試用例是否能覆蓋當前的測試用例,若能則當前的測試用例可歸入測試用例集,並選取下一條路徑,並轉入測試用例遍歷偵察裝置,若不能則調整螞蟻的信息素使生成的測試用例向更好地覆蓋測試路徑的方向變化,並根據調整後的螞蟻的信息素生成新的測試用例,作為當前的測試用例,並轉入測試用例遍歷偵察裝置,最後的測試用例集即為最後輸出的測試用例。
6.根據權利要求5所述的優化的蟻群算法測試用例自動生成系統,其特徵在於,路徑預處理裝置是採用精英螞蟻算法對每條路徑的信息素進行累積操作。
7.根據權利要求5所述的優化的蟻群算法測試用例自動生成系統,其特徵在於,螞蟻信息素調整裝置進一步包括 變化指向量調整模塊,調整螞蟻的信息素的變化指向量,用以指示是測試用例中的哪一個變量進行變化; 指向增長量調整模塊,調整螞蟻的信息素的指向增長量,用以指示是否增加變化指向量; 成長方向量調整模塊,調整螞蟻的信息素的成長方向量,用以指示測試用例中變量的數值的變化方向; 成長幅度量調整模塊,調整螞蟻的信息素的成長幅度量,用以指示測試用例中變量的成長幅度。
全文摘要
本發明公開了一種優化的蟻群算法測試用例自動生成方法和系統,能夠自動生成與優化測試路徑,並進一步改進測試用例的自動生成算法。其技術方案為藉助測試路徑的自動生成與測試用例的自動生成相結合,通過蟻后插樁、不可覆蓋路徑排除、初始用例優化、以及信息素動態調整和用例優化,實現測試路徑和測試用例的自動生成和優化。
文檔編號G06F11/36GK103218299SQ20131018499
公開日2013年7月24日 申請日期2013年5月17日 優先權日2013年5月17日
發明者洪珂, 陳明師, 陳娟霞, 呂士表 申請人:網宿科技股份有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀