新四季網

基於語句交互覆蓋的回歸測試用例選擇方法

2023-05-30 17:38:21 1

基於語句交互覆蓋的回歸測試用例選擇方法
【專利摘要】本發明公開了一種基於語句交互覆蓋的回歸測試用例選擇方法,包括如下步驟:(1)對待測程序進行插樁,在插樁後的程序上執行用於測試被測程序的已有測試用例集中的每個測試用例,記錄每個測試用例的語句覆蓋信息並構造出測試用例-語句覆蓋矩陣,確定需覆蓋的語句集R;(2)基於測試用例-語句覆蓋矩陣生成可覆蓋的語句間交互集I;(3)根據可覆蓋的語句間交互集I、需覆蓋的語句集R和已有測試用例集,按照選擇策略執行測試用例集壓縮方法,並最終生成壓縮後的測試用例集。該方法具有選擇出的測試用例數量較小,同時又不會顯著降低原有測試用例集的缺陷檢測能力等優點。從而可顯著降低回歸測試成本,並進一步提高回歸測試的效率。
【專利說明】基於語句交互覆蓋的回歸測試用例選擇方法
【技術領域】
[0001]本發明屬於計算機軟體測試【技術領域】,具體涉及一種基於語句交互覆蓋的回歸測試用例選擇方法,用於提高回歸測試的效率,減少回測測試中的複雜度並使選擇出的測試用例仍具備較高的錯誤檢測能力。
【背景技術】
[0002]軟體產品在開發和維護過程中,因移除內在缺陷、完善已有功能、重構已有代碼或提高運行性能等,需要執行代碼修改並觸發軟體演化。隨著以統一過程和敏捷方法為代表的增量迭代式開發過程的流行,軟體演化頻率也隨之迅速提高並亟需經濟有效的測試方法來確保演化後軟體產品的質量。回歸測試是其中一種有效方法,可有效保證代碼修改的正確性並避免代碼修改對被測程序其他模塊產生的副作用。執行回歸測試時的一個核心問題是測試用例集的維護策略設定。在軟體持續演化過程中,因新測試用例的不斷添加,導致測試用例集規模持續增長並增加了測試用例集的執行和維護開銷。例如有研究人員在某一合作企業內,當測試一個包含約2萬行代碼的軟體產品時,發現運行所有測試用例後,所需時間高達7周。而測試用例集壓縮方法在滿足指定測試需求(例如語句、分支和定義使用對等)的覆蓋前提下,通過識別並移除冗餘測試用例來壓縮測試用例集規模,從而提高回歸測試效率並降低回歸測試成本。
[0003]然而傳統的測試用例集壓縮方法僅考慮對單一測試需求的覆蓋,隨後設計出新穎的算法來完成測試用例集的壓縮並儘可能的使得壓縮後的測試用例集規模更小。在一些實證研究中,研究人員發現測試用例集壓縮方法雖可以大幅度縮減壓縮後的測試用例集規模,但同時也會顯著降低原有測試用例集的缺陷檢測能力。
[0004]綜上所述,為提高壓縮後的測試用例集缺陷檢測能力,有必要設計出一種系統方法來提高壓縮後的測試用例集的缺陷檢測能力。本發明由此而來。

【發明內容】

[0005]本發明目的在於提供一種基於語句交互覆蓋的回歸測試用例選擇方法,解決了現有技術中測試用例集壓縮方法雖然大幅度縮減壓縮後的測試用例集規模,但顯著降低原有測試用例集的缺陷檢測能力等難題,本發明的方法有效降低測試用例數量並保持足夠高的錯誤檢測能力。
[0006]為了解決現有技術中這些問題,本發明提供的技術方案如下:
[0007]一種基於語句交互覆蓋的回歸測試用例選擇方法,包括如下步驟:
[0008](I)對待測程序進行插樁,在插樁後的程序上執行用於測試被測程序的已有測試用例集中的每個測試用例,記錄每個測試用例的語句覆蓋信息並構造出測試用例-語句覆蓋矩陣,確定需覆蓋的語句集R ;
[0009](2)基於測試用例-語句覆蓋矩陣生成可覆蓋的語句間交互集I ;
[0010](3)根據可覆蓋的語句間交互集1、需覆蓋的語句集R和已有測試用例集,按照選擇策略執行測試用例集壓縮方法,並最終生成壓縮後的測試用例集。
[0011]優選的技術方案中,所述方法步驟(3)中執行測試用例集壓縮方法按照以下步驟進行:
[0012]I)構造壓縮後的測試用例集,並設置壓縮後測試用例集為空集; [0013]2)按照第一選擇策略SI從已有測試用例集中選擇覆蓋語句集R中相應的語句的測試用例,添加到壓縮後的測試用例集中,並確定語句間交互集I中已經覆蓋的語句交互;
[0014]3)按照第二選擇策略S2從已有測試用例集中選擇覆蓋語句間交互集I中尚未覆蓋的語句交互的測試用例,添加到壓縮後的測試用例集中。
[0015]優選的技術方案中,所述方法步驟2)按照第一選擇策略SI從已有測試用例集中選擇覆蓋需覆蓋的語句集R中相應的語句的測試用例按照如下步驟進行:
[0016]Al)計算出需覆蓋的語句集R中每個語句的基數,獲取需覆蓋的語句集R中語句的最小基數;所述基數為測試用例集中覆蓋該語句的測試用例數量;
[0017]A2)從已有測試用例集中選擇測試用例子集Tl,使其中的測試用例覆蓋擁有最小基數的語句個數最多;
[0018]A3)如果測試用例子集Tl僅包含一個測試用例,則將該測試用例為被選定的測試用例;如果測試用例子集Tl包含兩個或兩個以上的測試用例時,從測試用例子集Tl中選擇測試用例子集T2,使其中的測試用例覆蓋語句間交互集I中語句交互最多;
[0019]A4)如果測試用例子集T2僅包含一個測試用例,則該測試用例為被選定的測試用例;如果測試用例子集T2包含兩個或兩個以上的測試用例時,從測試用例子集T2中隨機選擇一個測試用例作為被選定的測試用例。
[0020]優選的技術方案中,所述方法步驟3)按照第二選擇策略S2從已有測試用例集中選擇未同時覆蓋需覆蓋的語句集R中相應的語句和語句間交互集I的語句交互的測試用例按照如下步驟進行:
[0021]Al)計算出語句間交互集I中每個語句交互的基數,獲取需覆蓋的語句間交互集I中語句交互的最小基數;所述基數為測試用例集中覆蓋該語句交互的測試用例數量;
[0022]A2)從已有測試用例集中選擇測試用例子集Tl』,使其中的測試用例覆蓋擁有最小基數的語句交互個數最多;
[0023]A3)如果測試用例子集Tl』僅包含一個測試用例,則將該測試用例為被選定的測試用例;如果測試用例子集Tl』包含兩個或兩個以上的測試用例時,從測試用例子集Tl』中隨機選擇一個測試用例作為被選定的測試用例。
[0024]優選的技術方案中,所述方法步驟3)中已有測試用例集為原始已有測試用例集中排除已添加到壓縮後的測試用例集中測試用例的測試用例集合。
[0025]優選的技術方案中,所述方法步驟⑴中假設已有測試用例集為T,其中包含m個測試用例,待測程序中包含需要覆蓋的n個語句,則測試用例-語句覆蓋矩陣是一個mXn的矩陣,表示為:
c丨丨 C12 L Cln
[0026]2' 22 2
LLLL
_Cm\ Cm2 L Cm? _[0027]其中若第i個測試用例覆蓋第j個語句,則Cu取值為1,否則Cu取值為0 ;如果語句k與語句u構成的語句交互是可覆蓋的,若且唯若存在測試用例q,使得Cqk和Cqu同時取值為 I ;其中 1、j、n、k、u、q、m 均是整數,且 0〈=i〈=m ;0〈=j〈=n ;0〈=k〈=n ;0〈=u〈=n ;0〈=q〈=m。
[0028]本發明涉及回歸測試中的測試用例集優化方法。本發明所要解決的問題是傳統測試用例集壓縮方法雖可以大幅度縮減壓縮後的測試用例集規模,但同時也會顯著降低原有測試用例集的缺陷檢測能力。本發明人經長期研究發現,軟體在實際測試時,部分軟體缺陷的觸發與語句間的交互有關,本發明通過添加少量測試用例來額外滿足對語句交互的覆蓋並提出一種新穎測試用例集壓縮方法,實踐結果表明該方法可以有效提高壓縮後的測試用例集缺陷檢測能力,並且不需要大幅度增加壓縮後的測試用例集規模。
[0029]本發明採用如下方法進行測試用例的選擇:⑴將被測程序P進行代碼插樁;(2)在插樁後的程序上執行原有測試用例集T中的每個測試用例,並記錄每個測試用例的語句覆蓋信息;(3)生成可覆蓋的語句間交互集;(4)執行測試用例集壓縮方法以確保對語句間交互的充分覆蓋並最終生成壓縮後的測試用例集。
[0030]當原有測試用例集規模較大時,為降低回歸測試成本,傳統方法僅考慮對單個語句的覆蓋,但在分析軟體的實際測試過程時發現:部分軟體內在缺陷的觸發與語句間的交互有關,本發明在滿足對單個語句覆蓋的前提下,通過添加少量測試用例來額外滿足對語句交互的覆蓋並提出一種測試用例集壓縮方法,在C語言編程實現的代碼上,運行該方法後發現:本發明可以有效提高壓縮後的測試用例集缺陷檢測能力,並且不需要大幅度增加壓縮後的測試用例集規模。
[0031]相對於現有技術,本發明的優點在於:
[0032]本發明的技術方案用於從待測程序的測試用例集裡選取測試用例子集,以進一步提高回歸測試的效率,並使選取的測試用例具備足夠高的錯誤檢測能力。通過在現有技術的基礎上記錄每個測試用例的語句覆蓋信息,生成可覆蓋的語句間交互集,通過選擇策略獲取測試用例,了解語句交互之間的聯繫,在回歸測試階段有效降低測試用例數量並保持足夠高的錯誤檢測能力。
[0033]本發明通過語句分析對回歸測試中的測試用例的數量和錯誤檢測能力這兩者進行了充分權衡,以一種全新的、更加動態的方式處理測試用例,通過測試用例所展現出的程序行為的內在聯繫來理解程序,使得測試用例的選擇變得更加容易和自動化,從而可以更有效的使用這些測試用例進行回歸測試,在現有技術的基礎上進一步提高了測試用例選擇的精確度,使發現錯誤的測試用例在選擇出來的測試用例集中所佔比例增大,與現有的回歸測試技術相比,本發明從原始測試用例集選擇出覆蓋語句集和語句交互集合的測試用例構成壓縮後測試用例集,選擇出的測試用例數量減小,同時保持測試用例集本身對待測程序較高的錯誤檢測能力,從而提高了回歸測試的效率。
【專利附圖】

【附圖說明】
[0034]下面結合附圖及實施例對本發明作進一步描述:
[0035]圖1是基於語句交互覆蓋的測試用例集壓縮方法的框架圖;
[0036]圖2是基於語句交互覆蓋的測試用例集壓縮方法總體流程圖;
[0037]圖3是基於語句和語句交互覆蓋的第一選擇策略SI的流程圖;[0038]圖4是基於語句交互覆蓋的第二選擇策略S2的流程圖。
【具體實施方式】
[0039]為了更詳盡的表述上述發明的技術方案,以下本發明人列舉出具體的實施例來說明技術效果;需要強調的是,這些實施例是用於說明本發明而不限於限制本發明的範圍。
[0040]實施例
[0041]本實施例的基於語句交互覆蓋的回歸測試用例選擇方法的總體流程圖如圖1所示,包含如下步驟:
[0042](I)將被測程序P進行代碼插樁。
[0043](2)在插樁後的程序上執行原有測試用例集T中的每個測試用例,記錄每個測試用例的語句覆蓋信息並構造出測試用例-語句覆蓋矩陣。假設T中包含m個測試用例,P中包含需要覆蓋的n個語句,則該矩陣是一個mXn的矩陣且可表示如下:
【權利要求】
1.一種基於語句交互覆蓋的回歸測試用例選擇方法,其特徵在於,所述方法包括如下步驟: (1)對待測程序進行插樁,在插樁後的程序上執行用於測試被測程序的已有測試用例集中的每個測試用例,記錄每個測試用例的語句覆蓋信息並構造出測試用例-語句覆蓋矩陣,確定需覆蓋的語句集R ; (2)基於測試用例-語句覆蓋矩陣生成可覆蓋的語句間交互集I; (3)根據可覆蓋的語句間交互集1、需覆蓋的語句集R和已有測試用例集,按照選擇策略執行測試用例集壓縮方法,並最終生成壓縮後的測試用例集。
2.根據權利要求1所述的方法,其特徵在於,所述方法步驟(3)中執行測試用例集壓縮方法按照以下步驟進行: 1)構造壓縮後的測試用例集,並設置壓縮後測試用例集為空集; 2)按照第一選擇策略SI從已有測試用例集中選擇覆蓋語句集R中相應的語句的測試用例,添加到壓縮後的測試用例集中,並確定語句間交互集I中已經覆蓋的語句交互; 3)按照第二選擇策略S2從已有測試用例集中選擇覆蓋語句間交互集I中尚未覆蓋的語句交互的測試用例,添加到壓縮後的測試用例集中。
3.根據權利要求2所述的方法,其特徵在於,所述方法步驟2)按照第一選擇策略SI從已有測試用例集中選擇覆蓋需覆蓋的語句集R中相應的語句的測試用例按照如下步驟進行: Al)計算出需覆蓋的語句集R中每個語句的基數,獲取需覆蓋的語句集R中語句的最小基數;所述基數為測試用例集中覆蓋該語句的測試用例數量; A2)從已有測試用例集中選擇測試用例子集Tl,使其中的測試用例覆蓋擁有最小基數的語句個數最多; A3)如果測試用例子集Tl僅包含一個測試用例,則將該測試用例為被選定的測試用例;如果測試用例子集Tl包含兩個或兩個以上的測試用例時,從測試用例子集Tl中選擇測試用例子集T2,使其中的測試用例覆蓋語句間交互集I中語句交互最多; A4)如果測試用例子集T2僅包含一個測試用例, 則該測試用例為被選定的測試用例;如果測試用例子集T2包含兩個或兩個以上的測試用例時,從測試用例子集T2中隨機選擇一個測試用例作為被選定的測試用例。
4.根據權利要求2所述的方法,其特徵在於,所述方法步驟3)按照第二選擇策略S2從已有測試用例集中選擇未同時覆蓋需覆蓋的語句集R中相應的語句和語句間交互集I的語句交互的測試用例按照如下步驟進行: Al)計算出語句間交互集I中每個語句交互的基數,獲取需覆蓋的語句間交互集I中語句交互的最小基數;所述基數為測試用例集中覆蓋該語句交互的測試用例數量; A2)從已有測試用例集中選擇測試用例子集Tl』,使其中的測試用例覆蓋擁有最小基數的語句交互個數最多; A3)如果測試用例子集Tl』僅包含一個測試用例,則將該測試用例為被選定的測試用例;如果測試用例子集Tl』包含兩個或兩個以上的測試用例時,從測試用例子集Tl』中隨機選擇一個測試用例作為被選定的測試用例。
5.根據權利要求2或4所述的方法,其特徵在於,所述方法步驟3)中已有測試用例集為原始已有測試用例集中排除已添加到壓縮後的測試用例集中測試用例的測試用例集合。
6.根據權利要求1所述的方法,其特徵在於,所述方法步驟(1)中假設已有測試用例集為T,其中包含m個測試用例,待測程序中包含需要覆蓋的n個語句,則測試用例-語句覆蓋矩陣是一個mXn的矩陣,表示為:

【文檔編號】G06F11/36GK103617119SQ201310643493
【公開日】2014年3月5日 申請日期:2013年12月3日 優先權日:2013年12月3日
【發明者】陳翔, 田丹, 徐慧, 文萬志, 陳繼紅, 蔣崢崢 申請人:南通大學

同类文章

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

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