欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于efsm模型的路徑測試數(shù)據(jù)生成方法

文檔序號:6631013閱讀:209來源:國知局
基于efsm模型的路徑測試數(shù)據(jù)生成方法
【專利摘要】本發(fā)明公開了基于EFSM模型的路徑測試數(shù)據(jù)生成方法,包括以下步驟:步驟一、對EFSM模型進行符號執(zhí)行和數(shù)據(jù)流依賴分析,獲得每條EFSM模型的路徑約束;步驟二、使用遺傳算法生成滿足路徑約束的測試數(shù)據(jù),給定初始個體;步驟三、根據(jù)適應度函數(shù)評估初始個體的適應度值,若個體的適應值為0,那么這樣的初始個體就是滿足路徑約束的測試數(shù)據(jù),算法終止;步驟四、若步驟三中的適應值沒有超過設定的最大代數(shù),可以在當前代中選取兩個具有最小適應值的個體作為父個體進行交叉操作或變異操作,生成新一代個體,并對新一代個體重復步驟三和步驟四。對于具有復雜約束或涉及多變量的路徑,我們的方法生成滿足所有約束條件的測試數(shù)據(jù)的成功率要比S.Kalaji方法高的多。
【專利說明】基于EFSM模型的路徑測試數(shù)據(jù)生成方法

【技術領域】
[0001]本發(fā)明涉及軟件測試領域,具體涉及基于EFSM模型的路徑測試數(shù)據(jù)生成方法。

【背景技術】
[0002]目前已經(jīng)有很多關于程序的測試數(shù)據(jù)生成的研究,也已經(jīng)有很多研究者把基于搜索的方法應用到了該領域。但是關于EFSM模型的測試數(shù)據(jù)生成方法的文章不是很多,目前主要的方法如下:
[0003]J.Zhang等提出了一種面向路徑的測試數(shù)據(jù)生成方法,首先符號執(zhí)行獲取路徑約束,然后采用約束求解器求解該路徑約束,獲取滿足約束條件的輸入值。但是符號執(zhí)行和約束求解的局限是不能求解非線性約束。
[0004]R.Lefticaru等定義了一個適應度估算方法來獲取路徑的輸入序列,該方法把Tracey的適應值函數(shù)應用到了路徑的每一條遷移,路徑的適應值通過把路徑中的每一個函數(shù)看作是一個關鍵結點來定義。該方法的局限是它要求每個函數(shù)不能包含內部路徑即嵌套的IF語句,要不然就不能使用Tracy的方法。
[0005]S.Kalaji等提出使用遺傳算法來測試EFSM,他把分支距離和接近層次結合起來作為遺傳算法的適應度函數(shù),該適應度函數(shù)對于具有復雜約束的EFSM路徑生成測試數(shù)據(jù)的成功率不高。對于包含等式約束的EFSM路徑,不能生成符合所有約束的測試數(shù)據(jù),生成的測試數(shù)據(jù)違反的平均約束率較高,說明測試數(shù)據(jù)的質量不高。
[0006]R.Lefticaru等改進了 S.Kalaji的適應度函數(shù),他們把路徑分解成多條獨立子路徑,并根據(jù)S.Kalaji的方法計算每條子路徑的適應值,整條路徑的適應值是各條子路徑的適應值之和。他們給予那些滿足較多條件的個體較好的適應值,這跟我們的方法類似。但是,他們的方法仍會碰到S.Kalaji方法一樣的問題,而且我們不是總能找到路徑的獨立子路徑。


【發(fā)明內容】

[0007]本發(fā)明要解決的技術問題是提供基于EFSM模型的路徑測試數(shù)據(jù)生成方法,以擴展有窮狀態(tài)機(EFSM)模型作為研究對象,使用遺傳算法來生成面向EFSM路徑的測試數(shù)據(jù),在計算個體的適應度時同時考慮了它的分支距離和未覆蓋的條件比率。在實驗中,我們的方法與現(xiàn)有技術的S.Kalaji的方法進行了比較,結果表明我們的方法具有較好的效果并能獲得質量較好的測試數(shù)據(jù)。
[0008]為達到上述目的,本發(fā)明的技術方案如下:
[0009]基于EFSM模型的路徑測試數(shù)據(jù)生成方法,包括以下步驟:
[0010]步驟一、對EFSM模型進行符號執(zhí)行和數(shù)據(jù)流依賴分析,獲得每條EFSM模型的路徑約束;
[0011]步驟二、使用遺傳算法生成滿足路徑約束的測試數(shù)據(jù),給定初始個體;
[0012]步驟三、根據(jù)適應度函數(shù)評估初始個體的適應度值,若個體的適應值為0,那么這樣的初始個體就是滿足路徑約束的測試數(shù)據(jù),算法終止;
[0013]步驟四、若步驟三中的適應值沒有超過設定的最大代數(shù),可以在當前代中選取兩個具有最小適應值的個體作為父個體進行交叉操作或變異操作,生成新一代個體,并對新一代個體重復步驟三和步驟四。
[0014]在本發(fā)明的一個優(yōu)選實施例中,所述步驟四中的適應值超過了設定的最大代數(shù),
算法終止。
[0015]在本發(fā)明的一個優(yōu)選實施例中,所述步驟一中的路徑約束采用平行的IF語句表
/Jn ο
[0016]在本發(fā)明的一個優(yōu)選實施例中,所述路徑約束中只包含輸入變量。
[0017]在本發(fā)明的一個優(yōu)選實施例中,所述適應度函數(shù)是初始個體的分支距離與個體未覆蓋的路徑約束中的條件的比率之和。
[0018]通過上述技術方案,本發(fā)明的有益效果是:
[0019]對于具有復雜約束或涉及多變量的路徑,我們的方法生成滿足所有約束條件的測試數(shù)據(jù)的成功率要比s.Kalaji方法高的多;
[0020]對于只能生成不能完全滿足所有條件的測試數(shù)據(jù)的路徑即包含等式的路徑,我們以生成的測試數(shù)據(jù)違反的平均約束率來衡量生成測試數(shù)據(jù)的質量,我們的方法生成的測試數(shù)據(jù)質量要比s.Kalaji方法的要高。

【專利附圖】

【附圖說明】
[0021]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0022]圖1為本發(fā)明的工作流程圖。
[0023]圖2a為本發(fā)明的實施例1的EFSM模型。
[0024]圖2b為本發(fā)明的實施例2的EFSM模型。
[0025]圖2c為本發(fā)明的實施例3的EFSM模型。
[0026]圖3a為本發(fā)明的簡單飛機安全系統(tǒng)的擴展狀態(tài)機模型生成測試數(shù)據(jù)的平均代數(shù)。
[0027]圖3b為本發(fā)明的簡單飛機安全系統(tǒng)的擴展狀態(tài)機模型生成測試數(shù)據(jù)的成功率。
[0028]圖3c為本發(fā)明的傳輸協(xié)議的擴展狀態(tài)機模型生成測試數(shù)據(jù)的平均代數(shù)。
[0029]圖3d為本發(fā)明的電梯系統(tǒng)的擴展狀態(tài)機模型生成的測試數(shù)據(jù)的平均代數(shù)。
圖3e為本發(fā)明的電梯系統(tǒng)的擴展狀態(tài)機模型生產(chǎn)的測試數(shù)據(jù)違反的平均約束率。

【具體實施方式】
[0030]為了使本發(fā)明實現(xiàn)的技術手段、創(chuàng)作特征、達成目的與功效易于明白了解,下面結合具體圖示,進一步闡述本發(fā)明。
[0031]參照圖1,基于EFSM模型的路徑測試數(shù)據(jù)生成方法,包括以下步驟:
[0032]步驟一、對于EFSM模型進行符號執(zhí)行和數(shù)據(jù)流依賴分析,獲得每條EFSM路徑的路徑約束。
[0033]步驟二、使用遺傳算法生成滿足路徑約束的測試數(shù)據(jù),給定初始個體。
[0034]步驟三、根據(jù)適應度函數(shù)評估個體的適應度值,這里的適應度函數(shù)是個體的分支距離與個體未覆蓋的路徑約束中的條件的比率之和。如果個體的適應值為0,那么這樣的個體就是滿足路徑約束的測試數(shù)據(jù),算法終止。
[0035]步驟四、否則,如果沒有超過設定的最大代數(shù),可以在當前代中選取兩個具有最小適應值的個體作為父個體進行交叉操作,生成新一代的個體;或者在當前代中選取一個具有最小適應值的個體作為父個體進行變異操作,生成新一代的個體。如果超過了設定的最大代數(shù),算法終止。重復步驟三-步驟四。
[0036]與本發(fā)明有關的概念如下:
[0037]1.1擴展的有窮狀態(tài)機(EFSM)
[0038]有窮狀態(tài)機(FSM)是一種Mealy自動機,它包含了有窮狀態(tài)集、遷移集和輸入輸出集。由于其不能建模系統(tǒng)的數(shù)據(jù)部分,所以本文采用擴展的有窮狀態(tài)機作為系統(tǒng)模型。擴展的有窮狀態(tài)機在FSM的基礎上擴展了上下文變量、謂詞和操作。
[0039]EFSM是一個六元組(S;Sq;V;I ;0 ;T),其中S是有窮狀態(tài)集合;S。是初始狀態(tài);V是上下文變量的集合是有窮的輸入消息集合;0是有窮的輸出消息集合;τ是有窮的遷移集合。
[0040]遷移t e T是一個五元組(Ss ;i ;g ;op ;se),其中Ss是七的源狀態(tài);i e I是輸入,它可能與輸入?yún)?shù)有關#是稱為監(jiān)護條件的邏輯表達式;op是由賦值語句或輸出語句等組成的操作是t的目標狀態(tài)。
[0041]當在狀態(tài)Ss時,如果接收的是輸入i且監(jiān)護條件g滿足,那么觸發(fā)遷移t= (ss ;i ;g ;op ;se),同時執(zhí)行op中的操作且狀態(tài)轉換為se。g和OP都可以包含輸入?yún)?shù)和上下文變量。我們這里只考慮確定的EFSMs。如果對于從同一狀態(tài)出發(fā)的具有相同輸入的多個遷移,一次只有一個遷移的監(jiān)護條件滿足,即一次只能觸發(fā)一個遷移,那么EFSM是確定的。
[0042]在EFSM中,遷移的監(jiān)護條件可以由邏輯運算符AND和OR連接。由AND連接的監(jiān)護條件我們表示成嵌套的IF語句。由OR連接的監(jiān)護條件,我們把它劃分成OR操作符個數(shù)+1個遷移,分別計算它們的適應值,最后把它們之間的最小值作為整個監(jiān)護條件的適應值。
[0043]1.2符號執(zhí)行
[0044]符號執(zhí)行是一種靜態(tài)的程序分析方法,它使用符號值而不是實際值來執(zhí)行程序,執(zhí)行的結果是一個關于符號的表達式。這對于分析輸入和輸出之間的關系很有用。
[0045]當符號執(zhí)行應用到路徑的測試數(shù)據(jù)生成中時,它就把測試數(shù)據(jù)生成問題刻畫成了求解用符號值執(zhí)行路徑后得到的符號表達式的問題。例如,考慮遷移路徑tit2t3,各個遷移中的謂詞分別是x>0,y〈15,z > 10,我們分別用符號值a,b,c代入變量x,y,z,用符號值執(zhí)行路徑tit2t3后得到符號表達式(a>0ANDb〈15ANDc彡10),生成路徑tit2t3測試數(shù)據(jù)的問題就轉換成了尋找符號表達式(a>0ANDb〈15ANDc彡10)解的問題。
[0046]1.3數(shù)據(jù)流依賴
[0047]在EFSM中存在一些輸入變量和上下文變量。通常我們只用輸入變量來表示需要求解的符號表達式。那么對于路徑中的上下文變量我們需要使用數(shù)據(jù)流分析技術把它們替換成相應的值和輸入變量。
[0048]給定變量V,如果V在遷移t中作為輸入?yún)?shù)或在t的操作中被賦值,那么稱V在t中被定義,記為def (t)。如果V在遷移t的謂詞中引用(p-use)中或操作中引用(c_use),那么稱V在t中被使用,記為use (t)。
[0049]給定從遷移ti到tj的遷移路徑,V e def (tj)且v e use (t」),如果V在和t」間的遷移上都沒有重新定義,那么我們稱從t到&的路徑為V的定義清晰路徑。Ui ;tj)稱為V的定義-引用對,tj數(shù)據(jù)依賴于
[0050]在得到每個遷移上上下文變量的數(shù)據(jù)流依賴后,我們采用后向替換技術把這些上下文變量替換成相應的值和輸入變量。所謂后向替換,就是從路徑的最后一個遷移從后往前處理,把遷移上引用的變量替換成它所依賴的定義,最后得到的路徑表達式是只包含了輸入變量的符號表達式。
[0051]1.4遺傳算法
[0052]基于搜索的測試方法把測試數(shù)據(jù)的生成問題表示成了最優(yōu)化問題。在基于搜索的測試方法中必須要選擇一種表示候選解的方式和一種評估候選解的方法。候選解的表示方式通常有二進制、整型和實型編碼。而評估候選解的方法我們通常稱為適應度函數(shù)。適應度函數(shù)是用來衡量候選解優(yōu)劣的方法,它給每個候選解賦一個正數(shù),這個正數(shù)用來評估候選解離可接受的解還有多遠。因為最優(yōu)化問題通常是最小化問題,所以具有較低適應值的候選解較好,具有適應值是O的解則是可接受的解。
[0053]當我們選擇好編碼方式和定義了適應度函數(shù)后,就可以使用元啟發(fā)式搜索技術。而遺傳算法則是一種功能強大的元啟發(fā)式技術。在遺傳算法中每個解我們稱為染色體,它們是由基因組成的。遺傳算法的主要流程是對種群中的個體使用適應度函數(shù)進行評估,選擇具有較好適應值的解作為父個體,然后通過交叉和變異操作生成下一代的新個體。
[0054]下文對S.Kalaji方法與本發(fā)明的實施例進行對比說明:
[0055]我們從三個方面來分析。
[0056]參照圖2a為本發(fā)明的EFSM模型的實施例1 (Simple in-flight safety systemEFSM—簡單的飛機安全系統(tǒng)的擴展狀態(tài)機模型),為第一個方面是生成測試數(shù)據(jù)的平均代數(shù)。
[0057]參照圖2b為本發(fā)明的EFSM模型的實施例2 (Class II transport protocolEFSM—傳輸協(xié)議的擴展狀態(tài)機模型),為第二個方面是在不能100%生成測試數(shù)據(jù)的情況下,考慮兩種方法的成功率。
[0058]參照圖2c為本發(fā)明的EFSM模型的實施例3(Lift system EFSM—電梯系統(tǒng)的擴展狀態(tài)機模型),為第三個方面是在完全不能生成滿足約束條件的測試數(shù)據(jù)的情況下,考慮生成的測試數(shù)據(jù)違反路徑中約束的平均比率。
[0059]我們的方法和S.Kalaji 的方法都用 Genetic Algorithm and Direct SearchToolbox for Mathlab 7.0來實現(xiàn)。我們使用實型編碼表示個體,采用隨機均勻選擇,選擇標量交叉,交叉概率為0.8,使用高斯變異,選擇種群大小為20,每個變量的初始取值范圍是[O…100],搜索終止的條件是適應值為O或者到達最大代數(shù)1000。為每條遷移路徑執(zhí)行搜索10次。
[0060]參照3a,圖3b,圖3c以及圖3d ;根據(jù)遷移覆蓋準則,Simple in-flight safetysystem EFSM總共有20條遷移路徑,為這20條路徑生成測試數(shù)據(jù)的平均代數(shù)見圖3 (a)。
[0061]兩種方法在對除了路徑P2 ;p17 ;p18 ;p19 ;p20 ;p21外的其它路徑生成測試數(shù)據(jù)時,它們的平均代數(shù)大致相同,都在52左右。這是可能因為在這些路徑中,它們的約束都很簡單,并且只涉及單個變量。對于這樣的情況,兩種方法的性能相同。在對路徑p2;p17;p18;p19;P20 ;p21生成測試數(shù)據(jù)時,我們提出的方法的平均代數(shù)要比s.Kalaji的方法的高。
[0062]兩種方法都不能在10次搜索中每次都成功生成滿足路徑約束的測試數(shù)據(jù),但是我們的方法生成測試數(shù)據(jù)的成功概率要比S.Kalaji的方法高的多,兩種方法為這6條路徑生成測試數(shù)據(jù)的成功率見圖3(b)。
[0063]這是可能這6條路徑的約束較復雜,并且涉及多個變量,S.Kalaji的方法在個體不滿足較外層的約束時就給它賦較高的適應值,可是有些個體雖然不滿足個別外層約束但滿足多個內層約束,選擇這樣的個體可能會生成最優(yōu)解。這樣的個體在S.Kalaji生成測試數(shù)據(jù)的過程中卻被舍棄了,導致S.Kalaji方法較快的收斂即較快的獲得較差的最優(yōu)解,所以導致他不能為具有復雜約束的路徑生成測試數(shù)據(jù)。
[0064]而我們提出的方法考慮了個體對于約束的覆蓋情況,覆蓋率越高的個體適應值越低。我們的方法會選擇可能生成最優(yōu)解的個體,即不滿足外層約束但滿足多個內層約束的個體。所以導致生成測試數(shù)據(jù)時平均代數(shù)比S.Kalaji方法要高,但是生成測試數(shù)據(jù)的成功率要比S.Kalaji方法高的多。
[0065]類似地,根據(jù)遷移覆蓋準則,Transport Protocol EFSM總共有12條路徑,為這12條路徑生成測試數(shù)據(jù)的平均代數(shù)見圖3(c)。兩種方法都能為除了 P8以外的路徑生成測試數(shù)據(jù),且平均代數(shù)幾乎相同。不能為P8生成測試數(shù)據(jù)的原因是P8的路徑約束中包含等式,而等式是很難滿足的。
[0066]Lift System EFSM中有24條路徑,其中只有pi和p2兩條路徑可以通過遺傳算法獲取數(shù)據(jù)。對于其它路徑來說,兩種方法都不能生成滿足約束條件的測試數(shù)據(jù),但是我們的方法生成最優(yōu)解的平均代數(shù)比S.Kalaji的方法高,造成這個結果的原因同In FlightSafety System EFSM中的解釋。對于這些未能生成測試數(shù)據(jù)的路徑,為了分析兩種方法的優(yōu)劣,我們從生成的測試數(shù)據(jù)違反的平均約束比率來進行比較。S.Kalaji的方法違反的平均約束比率在80%上下,而我們的方法違反的平均約束比率在10%上下,也就是說我們的方法生成的測試數(shù)據(jù)除了違反了等式以外其它約束都是滿足。我們以測試數(shù)據(jù)違反的平均約束比率來衡量測試數(shù)據(jù)的質量,違反的平均約束比率越低,則測試數(shù)據(jù)質量越高。從圖3e來看,我們的方法生成的測試數(shù)據(jù)的質量要比S.Kalaji方法高很多。
[0067]以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本行業(yè)的技術人員應該了解,本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內。本發(fā)明要求保護范圍由所附的權利要求書及其等效物界定。
【權利要求】
1.基于EFSM模型的路徑測試數(shù)據(jù)生成方法,其特征在于,包括以下步驟: 步驟一、對EFSM模型進行符號執(zhí)行和數(shù)據(jù)流依賴分析,獲得每條EFSM模型的路徑約束; 步驟二、使用遺傳算法生成滿足路徑約束的測試數(shù)據(jù),給定初始個體; 步驟三、根據(jù)適應度函數(shù)評估初始個體的適應度值,若個體的適應值為O,那么這樣的初始個體就是滿足路徑約束的測試數(shù)據(jù),算法終止; 步驟四、若步驟三中的適應值沒有超過設定的最大代數(shù),可以在當前代中選取兩個具有最小適應值的個體作為父個體進行交叉操作或變異操作,生成新一代個體,并對新一代個體重復步驟三和步驟四。
2.根據(jù)權利要求1所述的基于EFSM模型的路徑測試數(shù)據(jù)生成方法,其特征在于,所述步驟四中的適應值超過了設定的最大代數(shù),算法終止。
3.根據(jù)權利要求1所述的基于EFSM模型的路徑測試數(shù)據(jù)生成方法,其特征在于,所述步驟一中的路徑約束采用平行的IF語句表示。
4.根據(jù)權利要求1所述的基于EFSM模型的路徑測試數(shù)據(jù)生成方法,其特征在于,所述路徑約束中只包含輸入變量。
5.根據(jù)權利要求1所述的基于EFSM模型的路徑測試數(shù)據(jù)生成方法,其特征在于,所述適應度函數(shù)是初始個體的分支距離與個體未覆蓋的路徑約束中的條件的比率之和。
【文檔編號】G06F11/36GK104461861SQ201410561899
【公開日】2015年3月25日 申請日期:2014年10月21日 優(yōu)先權日:2014年10月21日
【發(fā)明者】陸公正 申請人:蘇州市職業(yè)大學
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
广水市| 正定县| 邯郸市| 上杭县| 延川县| 富蕴县| 城市| 龙州县| 新邵县| 漳浦县| 永寿县| 上蔡县| 玉门市| 宁陵县| 固安县| 吉林市| 太仆寺旗| 济宁市| 武隆县| 岳池县| 洪泽县| 伊宁县| 花垣县| 赞皇县| 福建省| 南雄市| 远安县| 新沂市| 靖边县| 布尔津县| 伊金霍洛旗| 福海县| 霍州市| 平果县| 仁布县| 柘城县| 祁东县| 林周县| 探索| 新乐市| 贺兰县|