基於有限狀態機的網絡通信協議測試序列生成方法及裝置的製作方法
2023-07-27 13:20:56 2
專利名稱::基於有限狀態機的網絡通信協議測試序列生成方法及裝置的製作方法
技術領域:
:本發明涉及計算機
技術領域:
,尤其涉及一種基於有限狀態機的網絡通信協議測試序列生成方法及裝置。
背景技術:
:網絡通信協議是網絡設備之間在進行信息傳遞,以及信息管理時需要遵守的規則,常見的網絡通信協議包括TCP/IP協議、IPX/SPX協議、NetBEUI協議等。網絡通信協議可以通過文本來描述,也可以通過基於圖表的有限狀態機(FSM)來表示。在進行網絡通信的過程中,網絡設備之間需要遵循網絡通信協議才能進行數據的交互。但在實際過程中,並不確定網絡設備之間是能夠正確的遵循該網絡通信協議,因此,需要對網絡設備進行一致性測試。並且可以採用基於有限狀態機的一致性測試,即通過有限狀態機生成測試序列,根據該測試序列對網絡設備進行一致性測試。有限狀態機包括一組狀態,其中該一組狀態中包括一個初始狀態,每個狀態在輸入的激勵信號下,實現該狀態的動作並產生輸出信號,例如將某變量設置為特定值或調用某函數進行特定輸出,該輸出信號即為下一狀態的輸入信號。通常只有滿足每個狀態的特定事件發生後才會進行狀態的跳轉。下面以802.1x為例說明網絡通信協議中的有限狀態機,以及基於有限狀態機的一致性測試的主要內容。圖l為802.1x協議中客戶端supplciant狀態機,在該supplciant狀態機中包括7個有限的狀態,其中每個方格表示一個狀態,方格的上半部為狀態名稱,下半部為跳轉該狀態後所做的操作。該7個狀態分別為靜默(HELD)狀態、未連接(DISCONNETTED)狀態、連接(CONNECTING)狀態、認證(AUTHENTICANTED)狀態、隊列等待(ACQUIRED)狀態、下線(LOGOFF)狀態、認證(AUTHENTICATING)狀態。其中DISCONNECTED狀態為初始狀態。在該圖1中指向每個狀態的箭頭上方標註的文字為跳轉到該狀態的條件,從每個狀態引出的箭頭上標註的文字為跳轉到下一狀態的條件。圖2A為HELD狀態的示意圖,在該圖2A跳轉到HELD狀態的條件,以下稱為輸入跳轉條件,包括收到eapfail報文並且非初始或埠不可用狀態,不是用戶主動下線或^皮動下線(eapfail&&(!intialze||!por-tenable)&&!userloggoff&&!logoffsent)。一個指向該狀態的箭頭就代表一個輸入跳轉條件。跳轉到該HELD狀態後所做的操作包括將變量heldWhile、eapfail、eapsuccess、suppstatus分別設置為等號右邊的值,即使heldWhile=heldPeriod,suppstatus=unauthorized,eapfail=false,eapsu--ccess=false。由該狀態跳轉到下一狀態的條件,以下稱為輸出條件,包括進入HELD狀態超時(heldwhile:=0)和reqid,當heldwhile==0時,跳轉到CONNECTING狀態,當收到reqid時,跳轉到ACQUIRED狀態。兩個由該狀態指出的箭頭就代表有兩個輸出條件。在基於有限狀態機對網絡設備進行一致性測試時,需要對網絡通信系統進行測試,確定該網絡通信系統中的網絡設備之間的通信過程,是否與狀態機定義的協議一致,例如有限狀態機A為網絡通信系統B需要遵循的網絡通信協議,或者說根據該進行測試的網絡通信系統B能夠自動導出有限狀態機A,對於A與B之間的一致性測試,其主要內容包括1、A中的所有狀態,在B中是否能夠全部實現;2、對於A中每個狀態的輸入跳轉條件,在B中該相應狀態的跳轉是否符合A的要求;3、對於A中每個狀態的輸入跳轉條件,在B中該相應的狀態跳轉後所產生的輸出是否符合A的要求。目前,基於狀態機的網絡通信協議一致性測試序列的生成方法暫時還沒7有,並且由於有限狀態機中各狀態之間的跳轉錯綜複雜,如單單CONNECTING狀態就有5個輸入跳轉條件和3個輸出條件,因此如何簡化有限狀態機中各狀態之間的跳轉關係,並針對第2條的測試生成有效的測試序列就顯得尤為困難。
發明內容有鑑於此,本發明實施例提供一種基於有限狀態機的網絡通信協議測試序列生成方法及裝置,用以提供一種有效的簡化有限狀態機中各狀態之間跳轉關係,並提供一種一致性測試的測試序列步驟化的生成方法。本發明實施例提供的一種基於有限狀態機的網絡通信協議測試序列生成方法,包4#:根據有限狀態機中的初始狀態,及各狀態之間的連接關係,確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑,其中每條連接路徑中包括至少兩個狀態;根據所述每條連接路徑中初始狀態及第一狀態之間包括的狀態的數量,選擇包括狀態數量最多的連接路徑;確定位於所述選擇的連接路徑之外的每個第二狀態,根據該每個第二狀態與該選擇的連接路徑中每個狀態的連接關係,將該每個第二狀態連接到所述選擇的連接路徑上;根據所述選擇的連接路徑上的每個狀態的輸入跳轉條件,及所述選擇的連接路徑中每個狀態之間的連接關係,生成對應所述選擇的連接路徑的測試序列。本發明實施例提供的一種基於有限狀態機的網絡通信協議測試序列生成裝置,包括連接路徑確定模塊,用於根據有限狀態機中的初始狀態,及各狀態之間的連接關係,確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑,其中每條連接路徑中包括至少兩個狀態;選擇模塊,用於才艮據所述每條連接路徑中初始狀態及第一狀態之間包括的狀態的數量,選擇包括狀態數量最多的連接路徑;連接模塊,用於確定位於所述選擇的連接路徑之外的每個第二狀態,根據該每個第二狀態與該選擇的連接路徑中每個狀態的連接關係,將該每個第二狀態連接到所述選擇的連接路徑上;生成模塊,用於根據所述選擇的連接路徑上的每個狀態的輸入跳轉條件,及所述選擇的連接路徑中每個狀態之間的連接關係,生成對應所述選擇的連接路徑的測試序列。本發明實施例提供了一種基於有限狀態機的網絡通信協議測試序列生成方法及裝置,該方法中確定該有限狀態機中初始狀態與每個第一狀態之間的連接路徑,選擇包含狀態最多的連接路徑,並將該選擇的連接路徑之外的第二狀態連接到該連接路徑上,從而實現了對有限狀態機中各狀態的跳轉關係的筒化,根據該選擇的連接路徑上每個狀態的輸入跳轉條件,生成對應該選擇的連接路徑的測試序列,本發明實施例將網絡通信協議的一致性測試序列的生成步驟化,根據上述提供的各個步驟,生成測試序列,從而提高了網絡通信協議一致性測試的測試效率。圖1為802.1x協議中客戶端supplciant狀態機;圖2A為HELD狀態的示意圖2B為本發明實施例提供的基於有限狀態機的網絡通信協議測試序列的生成過程;圖3為本發明實施例提供的依據圖1對各狀態之間的連接關係的圖表表示方式;圖4為本發明實施例提供的將第二狀態連接到第四連接路徑上的第四連接路徑結構示意9圖5為本發明實施例提供的第二狀態與連接路徑的連接結構示意圖;圖6為本發明實施例提供的基於有限狀態機的網絡通信協議測試序列生成的裝置結構示意圖。具體實施例方式在基於有限狀態機的網絡通信協議的測試過程中,當有限狀態機中存在狀態較多,並且狀態之間的跳轉關係比較複雜時,有限狀態機各狀態之間的跳轉關係的簡化變得很複雜,當該有限狀態機中所有的狀態的輸入跳轉條件都要求包含在測試序列中時,很可能因為連接關係的錯綜複雜而將部分輸入跳轉條件疏漏掉,從而使生成的測試序列不能達到對網絡通信系統的有效測試。在本發明實施例中通過簡化有限狀態機中各狀態之間的跳轉關係,基於筒化後的跳轉關係生成測試序列,vt人而^f吏測試序列的生成步驟化,並且該測試序列的生成方法筒單高效,並達到對網絡通信系統的一致性測試。下面結合說明書附圖,對本發明實施例進行詳細說明。圖2B為本發明實施例中基於有限狀態機的網絡通信協議測試序列的生成過程,該過程包括以下步驟S201:根據有限狀態機中的初始狀態,及各個狀態之間連接關係,確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑,其中,每條連接路徑中包括至少兩個狀態。在本發明實施中,首先需要根據各個狀態之間的連接關係,及各個狀態的輸入跳轉條件和輸出條件,確定路徑上的每個狀態是否為連接路徑上的第一狀態,當確定了第一狀態後,將該初始狀態到該第一狀態的路徑作為連接路徑。S202:根據每條連接路徑中初始狀態和第一狀態之間包含的狀態的數量,選擇包含狀態數量最多的連接路徑。在本發明實施例中,當確定了初始狀態與第一狀態之間的連接路徑後,選擇最長的連接路徑,從而便於後續過程中測試序列的生成。當至少兩條連接路徑中包含的狀態數量相同,並且數量最多時,可以在該至少兩條連接路徑中任意選擇一條連接路徑,從而使後續過程可以根據該選擇的連接路徑生成測試序列。S203:確定位於選擇的連接路徑之外的每個第二狀態,根據該每個第二狀態與該選擇的連接路徑上每個狀態的連接關係,將該每個第二狀態連接到該選擇的連接路徑上。由於確定了初始路逕到第一狀態的最長連接路徑,但該有限狀態機中有部分狀態並不包含在該連接路徑內,將該部分狀態作為第二狀態,根據該有限狀態機中每個第二狀態與該連接路徑中每個狀態的連接關係,將該每個第二狀態連接到該連接路徑中,只要根據該第二狀態與連接路徑上包含的狀態的連接關係,在該連接路徑中任意選擇一個與該第二狀態連接的狀態,將該第二狀態連接到該選擇的狀態上即可,從而實現將該每個第二狀態連接到對應的連接路徑上。上述過程中由於按照有限狀態機中各個狀態之間的連接關係,按照第一狀態的確定條件,確定連接路中的第一狀態,從而使各狀態之間的跳轉關係的確定步驟化,並且由於連接路徑中確定的為路徑中個每個狀態在某一種跳轉關係的條件下滿足的跳轉條件後實現的跳轉,不同的連接路徑對應的該路徑中各狀態的跳轉關係不同,從而實現了對錯綜複雜的狀態之間的跳轉關係的分化,因此實現了對有限狀態機中各狀態之間跳轉關係的簡化。S204:根據該選擇的連接路徑上的每個狀態的輸入跳轉條件,及該選擇的連接路徑中每個狀態之間的連接關係,生成對應該選擇的連接路徑的測試序列。在生成對應該連接路徑的測試序列時,根據該選擇的連接路徑上初始狀態與第一狀態之間的狀態的輸入跳轉條件,確定第一組測試序列,並且根據連接在該選擇的連接路徑上的每個第二狀態的輸入跳轉條件,確定第二組測試序列。則該第一組測試序列和第二組測試序列,即為基於有限狀態機的生成的網絡通信協議的測試序列。基於簡化後的有限狀態機中各狀態之間的跳轉關係,根據連接路徑中各狀態的輸入跳轉條件生成測試序列,從而使測試序列的生成步驟化。圖1為802.1x協議中客戶端supplciant狀態機,下面基於該有限狀態機中每個狀態之間的連接關係,詳細說明在本發明實施例中,確定初始狀態與第一狀態之間的連接路徑的過程。由於每一個狀態的跳轉條件都很複雜,在本發明實施例中,針對每個狀態的每個跳轉條件,確定該跳轉條件歸屬的路徑,從而實現對有限狀態機中各狀態跳轉關係的簡化。在本發明實施例中每個狀態之間的連接關係複雜,狀態與狀態之間連接構成了對應兩個狀態之間的路徑,但每條路徑歸屬於哪條連接路徑,需要依據下述方法確定。在確定連接路徑的過程中,判斷路徑上的某一個狀態是否為第一狀態時,需要判斷該狀態的某一輸出條件是否為其自身狀態的一個輸入跳轉條件,當判斷結果為是時,則該狀態為對應該輸出條件的連接路徑上的第一狀態,否則,該狀態不是第一狀態。或者,判斷某一個狀態是否為第一狀態的過程還包括判斷某一個狀態的輸出條件,為與其連接的下一個狀態的輸入跳轉條件時,判斷該下一個狀態是否在對應該輸出條件的路徑上,進行過是否為第一狀態的判斷,當判斷結果為是時,將該某一狀態作為連接路徑上的第一狀態,否則,該狀態不是第一狀態。並且,在某一狀態是否為第一狀態進行判斷時,也可以判斷該狀態是否有輸出條件,當該狀態沒有輸出條件時,判斷該狀態為連接路徑上的第一狀態,否則,該狀態不是第一狀態。在該圖1中初始狀態為DISCONNECTED狀態,該初始狀態有一個輸出條件,該輸出條件為CONNECTING狀態的輸入跳轉條件,因此可以稱DISCONNECTED狀態與CONNECTING狀態連接,該CONNECTING狀態有三個輸出條件,該三個輸出條件中第一輸出條件為其自身狀態的輸入跳轉條件,第二輸出條件為ACQUIRED狀態的輸入跳轉條件,第三輸出條件為AUTHENTICATED狀態的輸入跳轉條件。12由於該CONNECTING狀態的第一輸出條件為其自身狀態的一個輸入跳轉條件,因此,該CONNECTING狀態滿足連接路徑上第一狀態的條件,確定該CONNECTING狀態為對應其第一輸出條件的連接路徑上為第一狀態,則根據初始狀態和第一狀態確定的連接路徑為DISCONNECTED狀態-CONNECTING狀態。對於該CONNECTING狀態的第二輸出條件,由於該第二輸出條件為ACQUIRED狀態的輸入跳轉條件,在對應該第二輸出條件的路徑上,該CONNECTING狀態不滿足第一狀態的條件,沿該第二輸出條件的路徑繼續向下查找,ACQUIRED狀態有三個輸出條件,該三個輸出條件中第一輸出條件為其自身狀態的輸入跳轉條件,第二輸出條件為CONNECTING狀態的輸入跳轉條件,第三輸出條件為AUTHENTICATING狀態的輸入跳轉條件。由於該ACQUIRED狀態的第一輸出條件為其自身狀態的一個輸入跳轉條件,因此,該ACQUIRED狀態滿足連接路徑上第一狀態的條件,確定該ACQUIRED狀態為對應其第一輸出條件的連接路徑上的第一狀態,則根據初始狀態和第一狀態確定的連接路徑為DISCONNECTED狀態-CONNECTING狀態-ACQUIRED狀態。該ACQUIRED狀態的第二輸出條件為CONNECTING狀態的輸入跳轉條件,該CONNECTING狀態在對應該第二輸出條件的路徑上已經進行過判斷,因此,確定該ACQUIRED狀態為對應該第二輸出條件的連接路徑上的第一狀態,根據初始狀態和第一狀態確定的連接路徑同樣為DISCONNECTED狀態-CONNECTING狀態-ACQUIRED狀態。該ACQUIRED狀態的第三輸出條件為AUTHENTICATING狀態的輸入跳轉條件,在對應該第三輸出條件的路徑上該ACQUIRED狀態不滿足第一狀態的條件,沿該路徑進行繼續查找,該AUTHENTICATING狀態有三個輸出條件,其中第一輸出條件為其自身狀態的輸入跳轉條件,第二輸出條件為ACQUIRED狀態的輸入跳轉條件,第三輸出條件為CONNECTING狀態的輸入跳轉條件。對於AUTHENTICATING狀態的第一輸出條件,由於該第一輸出條件為其自身狀態的輸入跳轉條件,因此該AUTHENTICATING狀態為對應該第一輸出條件的連接路徑上的第一狀態,確定的初始狀態和第一狀態之間的連接路徑包括DISCONNECTED狀態-CONNECTING狀態-ACQUIRED狀態-AUTHENTICATING狀態。對於AUTHENTICATING狀態的第二輸出條件及第三輸出條件,為ACQUIRED狀態及CONNECTING狀態的輸入跳轉條件,該兩個狀態已經在該路徑中進行過是否為第一狀態的判斷,因此根據該第二、及第三輸出條件分別確定的初始狀態和第一狀態之間的連接路徑都為DISCONNECTED狀態-CONNECTING狀態-ACQUIRED狀態-AUTHENTICATING狀態。依據上述描述,相信本領域技術人員可以確定初始狀態和不同的第一狀態之間的連接路徑。圖3為依據圖1對各狀態之間的連接關係的圖表表示方式,可知,在本發明實施例中依據上述方法,確定的初始狀態和每個第一狀態之間對應的每條連接路徑包括第一連接路徑DISCONNECTED狀態-CONNECTING狀態;第二連接路徑DISCONNECTED狀態-CONNECTING狀態-ACQUIRED狀態;第三連接路徑DISCONNECTED狀態-CONNECTING狀態-ACQUIRED狀態-AUTHENTICATING狀態;第四連接路徑DISCONNECTED狀態-CONNECTING狀態-AUTHENTICATED狀態-ACQUIRED狀態;第五連接路徑DISCONNECTED狀態-CONNECTING狀態-AUTHENTICATED狀態-ACQUIRED狀態-AUTHENTICATING狀態。在確定的上述連接路徑中可以看到,有的連接路徑中包括的有限狀態機中的狀態比較多,有的連接路徑包括的有限狀態機中的狀態比較少,並且有些狀態並不包含在該連接路徑內,根據連接路徑中包含的狀態的數量,選擇連接路徑中包含狀態數量最多的路徑,即選擇最長路徑。例如上述基於802.1x協議中客戶端supplciant狀態機中,確定的五條連接路徑中,第一連接路徑初始狀態與第一狀態之間包括兩個狀態,第二連接路徑初始狀態與第一狀態之間包括三個狀態,第三連接3各徑初始狀態與第一狀態之間包括三個狀態,第四連接路徑初始狀態與第一狀態之間包括四個狀態,第五連接路徑初始狀態與第一狀態之間包括五個狀態,因此可知第五連接路徑初始狀態與第一狀態之間包括的狀態數量最多。由於一致性測試過程中,需要對所有狀態的輸入跳轉條件進行測試,因此生成的測試序列中需要包括所有狀態的信息。由於選擇了第五連接路徑,該連接路徑包括DISCONNECTED狀態-CONNECTING狀態-AUTHENTICATED狀態-ACQUIRED狀態-AUTHENTICATING狀態,在該連接i各徑中包括5個狀態,而LOGOFF狀態、HELD狀態不包含在該連接路徑內,在本發明實施例中將該不包含在該連接路徑內的狀態稱為第二狀態。該第二狀態不包含在該連接路徑內,但與該連接路徑內的一些狀態之間存在連接關係。可以根據該連接關係,將該第二狀態添加到該連接路徑內。對應該第五連接路徑的第二狀態包括LOGOFF狀態以及HELD狀態,該LOGOFF狀態與第五連接路徑中的DISCONNECTED狀態連接,則可以將該LOGOFF狀態在該路徑內與該DISCONNECTED狀態相連。同樣,查找HELD狀態與該路徑內的CONNECTING狀態以及ACQUIRED狀態連接,則在該兩個狀態中任意選擇一個狀態與HELD狀態連接。圖4為將第二狀態連接到該第五連接路徑上後的該第五連接路徑的結構示意圖,該第五連接3各徑的連接順序為DISCONNECTED狀態-CONNECTING狀態-AUTHENTICATED狀態-ACQUIRED狀態-AUTHENTICATING狀態,對於LOGOFF狀態在圖4中其與DISCONNECTED狀態連接,HELD狀態與CONNECTING狀態連才妻。由於在對網絡通信系統進行一致性測試時,需要針對有限狀態機中的所有符合要求的輸入跳轉條件,在網絡通信系統中對所有狀態的轉換輸出判斷其是否滿足有限狀態機的要求。因此在進行測試序列的生成時,需要確定每個狀態的輸入跳轉條件。根據圖l可知,對於初始狀態DISCONNECTED狀態有兩個指向該狀態的箭頭,即有兩個輸入跳轉條件,該兩個輸入跳轉條件分別為Initializell!portenabled,另一個為經LOGOFF狀態發生!userlogoff事件後跳轉進入該DISCONNECTED狀態。表1為跳轉進入DISCONNECTED狀態的條件。tableseeoriginaldocumentpage16在本發明實施中都以"狀態名形式,表示在當前狀態下發生內事件後的跳轉。如LOGOFF〈!userlogoff^表示在LOGOFF狀態下發生!userlogoff事件後的跳轉。基於上述描述,查找其他狀態的輸入跳轉條件,表2為該有限狀態機的每一狀態的輸入跳轉條件表tableseeoriginaldocumentpage16tableseeoriginaldocumentpage177.held7.1eapfail&&!(initialize||!portenabled)&&!userlogoff&&!1ogoffsent收到eapfail報文並且非初始或埠不可用狀態,不是用戶主動下線或被動下線表2由表2可知,每個狀態的輸入跳轉條件有一個或幾個,即存在一個或幾個跳轉到該狀態的可能,並且,當其中一個狀態存在幾個輸入跳轉條件時,該幾個輸入跳轉條件也可以作為跳轉到下一狀態的輸入跳轉條件,因此跳轉到下一狀態的輸入跳轉條件個數可能大於指向該下一個狀態的箭頭的個數。但一般初始狀態的輸入跳轉條件的個數與指向該狀態的箭頭的個數相同。當通過上述步驟查找,確定了初始狀態與第一狀態之間的連接路徑,選擇包含狀態最多的連接路徑,並將該包含狀態最多的連接路徑之外的第二狀態連接到了該連接路徑上後,即確定了各個狀態之間的連接關係,或跳轉關係後,在根據該連接路徑進行測試序列的生成時,需要根據該連接路徑上每個狀態的每個跳轉條件,生成測試序列。首先確定連接路徑上每個狀態的輸入跳轉條件,該連接路徑上每個狀態的輸入跳轉條件,包括該初始狀態到該第一狀態之間的連接路徑上每個狀態的輸入跳轉條件,還包括連接在該連接路徑上的第二狀態的輸入跳轉條件,才艮據該每個狀態的輸入跳轉條件,生成對應該^各徑的每個測試序列。其中,在具體生成測試序列的過程中,在連接路徑的該初始狀態和第一狀態之間的任意狀態中,根據該每個狀態的輸入跳轉條件,生成對應的第一組測試序列,根據連接在該連接路徑上的第二狀態的輸入跳轉條件,生成對應的第二組測試序列。在生成第一組測試序列的過程中,在連接路徑的初始狀態與第一狀態之間的任意狀態中,根據每個狀態的每個輸入跳轉條件,判斷該輸入跳轉條件是否為與其連接的狀態的輸出條件,該與其連接的狀態為該連接路徑中初始狀態與第一狀態之間的與該狀態連接的狀態,並且該狀態在該連接路徑中與初始狀態的位置臨近,當判斷結果為是時,將跳轉到該與其連接的狀態的每條路徑,作為該狀態對應該輸入跳轉條件,跳轉到該狀態的路徑,否則,將該狀態的該輸入跳轉條件,作為跳轉到該狀態的路徑,根據跳轉到該第一狀態的路徑,生成第一組測試序列。在本發明實施例中由於在連接路徑中除初始狀態和第一狀態外,其他的狀態都存在兩個與其連接的狀態,在本發明實施例中在判斷每個狀態的每個輸入跳轉條件,是否為與其連接的狀態輸出條件時,該與其連接的狀態為連接路徑中與該狀態相連的,且在連接路徑中位置較臨近初始狀態。由於本發明實施例中基於圖1的有限狀態機進行測試序列生成方法的說明,當該有限狀態機中狀態比較多時,該每個第二狀態中包括多個狀態,並且該多個狀態連接在一起形成最初狀態和最終狀態之間的每個第二狀態,如圖5所示為第二狀態與連接路徑的連接結構示意圖,在該連接路徑中包括初始狀態到第一狀態之間的多個狀態,並且,初始狀態與第二狀態連接,其中,該第二狀態包括最初狀態和最終之間的狀態。在根據上述描述生成第二測試序列的過程中,需要根據連接到該連接路徑上的每個第二狀態,判斷該第二狀態中的狀態的輸入跳轉條件,是否為與其連接的狀態的輸出條件,其中該與其連接的狀態包括該第二狀態中與該狀態連接的、且與初始狀態位置臨近的狀態,當判斷結果為是時,根據跳轉到與其連接的狀態每條路徑,確定該狀態中對應該輸入跳轉條件的跳轉到該狀態的路徑,否則,根據該狀態的該輸入跳轉條件,確定跳轉到該狀態的路徑;根據跳轉到每個第二狀態中的最終狀態的每條路徑,生成對應的第二組測試序列。在本發明實施例中確定第二組測試序列時,在判斷該每個第二狀態中的狀態的輸入跳轉條件,是否為與其連接的狀態的輸出條件時,確定與其連接的狀態的方法與上述第一組測試序列生成時的判斷方法相同,在此就不——贅述。由於上述確定的連接路徑中,第五連接路徑包含的狀態最多,下面以第五連接路徑為例進行說明,第五連接路徑包括DISCONNECTED狀態-CONNECTING狀態-AUTHENTICATED狀態-ACQUIRED狀態-AUTHENTICATING狀態。首先說明第一組測試序列的生成過程。在該第五連4妄路徑中初始狀態DISCONNECTED狀態存在兩個輸入跳轉條件,由於該狀態為初始狀態,該初始狀態的兩個輸入跳轉條件不可能是與其連接的狀態的輸出條件,因此,根據該兩個輸入跳轉條件,確定跳轉到該初始狀態的路徑,即跳轉到該初始狀態可以通過兩條路徑,該兩條路徑分別為表2中1.1和1.2兩條路徑,其中1.1路徑為Initializel卩portenabled,1.2路徑為LOGOFF。在該第四連接路徑上與該DISCONNECTED狀態相連的為CONNECTING狀態,對於該CONNECTING狀態在表2中可以看出,存在5個指向該狀態的箭頭,即存在5個輸入跳轉條件,其中一個輸入跳轉條件為DISCONNECTED狀態的輸出條件,即該表2中2.2,由於CONNECTING狀態與DISCONNECTED狀態在該連接路徑中相連,且DISCONNECTED狀態較與CONNECTING狀態連接的AUTHENTICATED狀態的位置臨近初始狀態,則將跳轉到該DISCONNECTED狀態的路徑,作為對應該輸入跳轉條件的跳轉到該路徑的路徑,由於該DISCONNECTED狀態存在兩條跳轉到該狀態的路徑1.1和1.2,因此對於CONNECTING狀態該2.2的輸入跳轉條件存在兩條分支,即DISCONNECTED狀態的兩個輸入跳轉條件,即在該DISCONNECTED狀態為該1.1和1.2兩個條件時,都可以4吏該DISCONNECTED狀態跳轉到該CONNECTING狀態,即都可以滿足2.2的輸出條件。因此,可以通過2.1、2.3、2.4、2.5以及滿足該2.2條件的1.1以及1.2等路徑實現該CONNECTING狀態的跳轉,即跳轉到該CONNECTING狀態存在2+(5-1)=6種路徑。由於該第四路徑上CONNECTING狀態為第二個狀態,因此可以確定跳轉到該第二狀態CONNECTING狀態的路徑包括:1.1-2、1.2-2、2.1-2、2.3-2、2.4-2以及2.5-2,即分別通過1.1、1.2、2.1、2.3、2.4及2.5的輸入跳轉條件,跳轉到該CONNECTING狀態。在第四連接路徑上與該CONNECTING狀態相連的為AUTHENTICATED狀態,通過表2可以看出跳轉到該AUTHENTICATED狀態的輸入跳轉條件包括2個,其中輸入跳轉條件3.2是CONNECTING狀態的輸出條件,因此當跳轉到該CONNECTING狀態存在6條路徑的情況下,在該CONNECTING狀態通過任意一條路徑跳轉到該CONNECTING狀態後,都可以產生3.2的輸出條件,因此跳轉到該AUTHENTICATED狀態的路徑包括6+(2-1)=7條。該AUTHENTICATED狀態為該第五連接路徑的第三個狀態,因此,跳轉到第三個狀態AUTHENTICATED狀態的路徑包括1.1-2-3、1.2-2-3、2.1-2-3、2.3-2-3、2.4-2-3、2.5-2-3以及3.1-3。即分別通過l.l、1.2、2.1、2.3、2.4、2.5及3.1的輸入跳轉條件,跳轉到該AUTHENTICATED狀態。對於該第五連接路徑上的第四個狀態ACQUIRED狀態,從表2中可以看出,該狀態存在5個輸入跳轉條件,其中輸入跳轉條件4.2是AUTHENTICATED狀態的輸出條件,因此,跳轉到該AUTHENTICATED狀態的所有輸入跳轉條件,都可以產生4.2的輸出條件,因此,跳轉到該第四狀態的路徑包括7+(5-l)=11條。因此,跳轉到該第四狀態ACQUIRED狀態的路徑包括1.1-2-3-4、1.2-2-3-4、2.1-2-3-4、2.3國2國3-4、2.4畫2畫3畫4、2.5-2-3-4、3.1-3-4、4.卜4、4.3-4、4.4-4以及4.5-4,即通過l.l、1.2、2.1、2.3、2.4、2.5、3.1、4.1、4.3、4.4以及4.5的輸入跳轉條件,都可以跳轉到該ACQUIRED狀態。在第五連接路徑的第一狀態為AUTHENTICATING狀態,從表2中可以看出,該狀態存在2個輸入跳轉條件,其中輸入跳轉條件5.2是該路徑中與其連接的ACQUIRED狀態的輸出條件,因此,跳轉到該ACQUIRED狀態的所有輸入跳轉條件,都可以產生5.2的輸出條件,因此,跳轉到該第一狀態的路徑包括11+(2-1)=12條。因此,跳轉到該第一狀態AUTHENTICATING狀態的路徑包括:1.1-2-3-4-5、1.2-2-3-4-5、2.1-2-3-4-5、2.3-2-3-4-5、2.4-2-3-4-5、2.5-2-3-4-5、3.1-3-4-5、4.1-4-5、4.3陽4國5、4.4-4-5、4.5國4國5以及5.1-5,即通過1.1、1.2、2.1、2.3、2.4、2.5、3.1、4.1、4.3、4.4、4.5以及5.1的輸入跳轉條件,都可以跳轉到該AUTHENTICATING狀態。因此可以根據該第五連接路徑中的跳轉到該第一狀態,即AUTHENTICATING狀態的路徑,生成第一組測試序列,即將該1.1、1.2、2.1、2.3、2.4、2.5、3.1、4.1、4.3、4.4、4.5以及5.1的輸入跳轉條件,作為該測試序列的輸入條件,判斷該第一狀態的輸出是否滿足該有限狀態機中該第一狀態的輸出條件。上述過程中對於第一組測試序列進行了分析,對於第二組測試序列,同樣依據上述方法進行分析。對於連接在該第五連接路徑之上的第二狀態LOGOFF狀態以及HELD狀態,由於該第二狀態中只包含一個狀態,該狀態可以為該第二狀態中的最初狀態或最終狀態,該狀態直接與該連接路徑相連,如圖5所示,該第二狀態中包括三個狀態,首先分析該第二狀態中最初狀態的輸入跳轉條件,確定跳轉到該最初狀態的路徑,然後確定該第二狀態中與該最初狀態連接的狀態的跳轉路徑,方法與第一組測試序列組中進行確定的方法相同,在這裡就不——贅述,同樣確定該第二狀態中最終狀態的輸入跳轉條件,進而確定跳轉到該最終狀態的路徑,從而根據跳轉到該最終狀態的路徑生成第二組測試序列。在進行一致性測試的時候,仍屬於黑盒測試,測試的過程不可知,只能對有輸出結果的過程進行測試,因此,當該有限測試機中某一連接路徑的第一狀態沒有輸出條件時,則無法對該第一狀態進行測試。連接路徑上每條跳轉到第一狀態的路徑,生成基於該有限狀態機的網絡通信協議測試的測試序列。並且在進行黑盒測試,確定測試序列時,當跳轉到第一狀態路徑對應輸出條件時,即第一狀態沒有輸出條件,則該跳轉路徑不滿足測試序列的生成條件,不能根據該跳轉路徑生成測試序列。在具體根據該生成的測試序列進行一致性測試時,可以將對應跳轉到第一狀態的所有路徑的輸入跳轉條件,作為無線通信系統的輸入條件,判斷該無線通信系統的輸出,是否滿足該連接路徑中第一狀態的輸出條件。而對於該連接路徑之外的第二狀態,對其進行一致性測試時,根據跳轉到該第二狀態的最終狀態的路徑對應的輸入跳轉條件,作為無線通信系統的輸入條件,判斷該無線通信系統的輸出,是否滿足該連接路徑中第二狀態中最終狀態的輸出條件。在本發明實施例中將網絡通信協議中有限狀態機之間各狀態之間的跳轉關係簡化,並基於簡化後的各狀態之間的跳轉關係,-使一致性測試序列的生成步驟化,根據上述提供的各個步驟,生成測試序列,從而提高了網絡通信協議一致性測試的測試效率,並且使各個狀態機之間的關係清晰化、直觀化,便於後續過程中根據該測試序列進行測試過程的監測,該測試序列的生成方法有較廣的應用範圍,當有限狀態機之間的各狀態的連接關係比較複雜時,也可以採用本發明實施例提供的生成測試序列的步驟,簡化各狀態之間的跳轉關係進行測試序列的生成,從而簡化該測試序列生成的過程。圖6為本發明實施例提供的一種基於有限狀態機的網絡通信協議測試序列生成裝置,該裝置包括連接路徑確定模塊61,用於根據有限狀態機中的初始狀態,及各狀態之間的連接關係,確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑,其中每條連接路徑中包括至少兩個狀態;選擇模塊64,用於根據所述每條連接路徑中初始狀態及第一狀態之間包括的狀態的數量,選擇包括狀態數量最多的連接路徑;連接模塊62,用於確定位於所述選擇的連接路徑之外的每個第二狀態,根據該每個第二狀態與該選擇的連接路徑中每個狀態的連接關係,將該每個第二狀態連接到所述選擇的連接路徑上;生成模塊63,用於根據所述選擇的連接路徑上的每個狀態的輸入跳轉條件,及所述連接路徑中每個狀態之間的連接關係,生成對應所述選擇的連接路徑的每個測試序列。所述連接路徑確定模塊61包括第一狀態確定單元611,用於根據各狀態之間的連接關係,及各狀態的輸入跳轉條件和輸出條件,確定每個狀態是否為連接路徑上的第一狀態;路徑確定單元612,用於根據確定的第一狀態,確定初始狀態到該第一狀態連接路徑。所述第一狀態確定單元611包括第一確定子單元6111,用於當判斷狀態的輸出條件為其自身的輸入跳轉條件時,則判斷該狀態為對應該輸出條件的連接路徑上的第一狀態。所述第一狀態確定單元611包括第二確定子單元6112,用於當狀態的輸出條件為與其連接的另一狀態的輸入跳轉條件,並且該另一狀態在該連接路徑中進行過是否為第一狀態的判斷時,則確定該狀態為連接路徑上的第一狀態。所述第一狀態確定單元611包括第三確定子單元6113,用於當狀態不存在輸出條件時,確定該狀態為連接路徑上的第一狀態。所述生成模塊63包括第一生成單元631,用於根據該選擇的連接路徑上初始狀態與第一狀態之間的狀態的輸入跳轉條件,確定第一組測試序列;第二生成單元632,用於根據連接在該選擇的連接路徑上的每個第二狀態的輸入跳轉條件,確定第二組測試序列。所述第一生成單元631包括第一判斷子單元6311,用於在所述選擇的連接路徑的初始狀態和第一狀態之間的任意狀態中,判斷每個狀態的每個輸入跳轉條件,是否為與其連接的狀態輸出條件,其中該與其連接的狀態為所述選擇的連接路徑中與該狀態連接的,且與初始狀態臨近的狀態;第一路徑確定子單元6312,用於根據判斷的結果,確定跳轉到每個狀態的路徑;第一序列生成子單元6313,用於根據跳轉到第一狀態的每條路徑,生成對應的第一組測試序列。所述第二生成單元632包括第二判斷子單元6321,用於根據該選擇的連接到該連接路徑上的每個第二狀態,判斷該每個第二狀態中的狀態的輸入跳轉條件,是否為與其連接的狀態的輸出條件,其中該與其連接的狀態包括該第二狀態中與該狀態連接的,且與初始狀態臨近的狀態;第二路徑確定子單元6322,用於根據判斷的結果,確定跳轉到每個狀態的路徑;第二序列生成子單元6323,用於根據跳轉到每個第二狀態中的最終狀態的每條路徑,生成對應的第二組測試序列。本發明實施例提供了一種基於有限狀態機的網絡通信協議測試序列生成方法及裝置,該方法中確定該有限狀態機中初始狀態與每個第一狀態之間的連接路徑,選擇包含狀態最多的連接路徑,並將該選擇的連接路徑之外的第二狀態連接到該選擇的連接路徑上,從而實現了對有限狀態機中各狀態的跳轉關係的簡化,根據該選擇的連接路徑上每個狀態的輸入跳轉條件,生成對應該選擇的連接路徑的每個測試序列,本發明實施例將網絡通信協議的一致性測試序列的生成步驟化,根據上述提供的各個步驟,生成測試序列,從而提高了網絡通信協議一致性測試的測試效率。明的精神和範圍。這樣,倘若本發明的這些修改和變型屬於本發明權利要求及其等同技術的範圍之內,則本發明也意圖包含這些改動和變型在內。權利要求1、一種基於有限狀態機的網絡通信協議測試序列生成方法,其特徵在於,包括根據有限狀態機中的初始狀態,及各狀態之間的連接關係,確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑,其中每條連接路徑中包括至少兩個狀態;根據所述每條連接路徑中初始狀態及第一狀態之間包括的狀態的數量,選擇包括狀態數量最多的連接路徑;確定位於所述選擇的連接路徑之外的每個第二狀態,根據該每個第二狀態與所述選擇的連接路徑中每個狀態的連接關係,將該每個第二狀態連接到所述選擇的連接路徑上;根據所述選擇的連接路徑上的每個狀態的輸入跳轉條件,及所述選擇的連接路徑中每個狀態之間的連接關係,生成對應所述選擇的連接路徑的測試序列。2、如權利要求1所述的方法,其特徵在於,所述確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑包括根據各狀態之間的連接關係,及各狀態的輸入跳轉條件和輸出條件,確定每個狀態是否為連接;洛徑上的第一狀態;根據確定的第一狀態,確定初始狀態到該第一狀態的連接路徑。3、如權利要求2所述的方法,其特徵在於,所述確定每個狀態是否為連接路徑上的第一狀態包括當判斷該狀態的輸出條件為其自身的輸入跳轉條件時,則判斷該狀態為對應該輸出條件的連接路徑上的第一狀態;或,當狀態的輸出條件為與其連接的另一狀態的輸入跳轉條件,並且該另一狀態在該連接路徑中進行過是否為第一狀態的判斷時,則確定該狀態為連接路徑上的第一狀態;或,當狀態不存在輸出條件時,則判斷該狀態為連接路徑上的第一狀態。4、如權利要求1所述的方法,其特徵在於,所述生成對應所述選擇的連接路徑的測試序列包括根據所述選擇的連接路徑上初始狀態與第一狀態之間的狀態的輸入跳轉條件,確定第一組測試序列;並根據連接在所述選擇的連接路徑上的每個第二狀態的輸入跳轉條件,確定第二組測試序列。5、如權利要求4所述的方法,其特徵在於,所述確定第一組測試序列包括在所述選擇的連接路徑的初始狀態和第一狀態之間的任意狀態中,判斷每個狀態的每個輸入跳轉條件,是否為與其連接的狀態輸出條件,其中該與其連接的狀態為所述選擇的連接路徑中與該狀態連接,且與初始狀態位置臨近的狀態;當判斷結果為是時,根據跳轉到該與其連接的狀態的每條路徑,確定該狀態中對應該輸入跳轉條件的跳轉到該狀態的路徑,否則,根據該狀態的該輸入跳轉條件,確定跳轉到該狀態的路徑;根據跳轉到第一狀態的每條路徑,生成對應的第一組測試序列。6、如權利要求4所述的方法,其特徵在於,所述確定第二組測試序列包括根據該連接到該選擇的連接路徑上的每個第二狀態,判斷該每個第二狀態中的狀態的輸入跳轉條件,是否為與其連接的狀態的輸出條件,其中該與其連接的狀態包括該第二狀態中與該狀態連接的,且與初始狀態位置臨近的狀態;當判斷結果為是時,根據跳轉到與其連接的狀態每條路徑,確定該狀態中對應該輸入跳轉條件的跳轉到該狀態的路徑,否則,根據該狀態的該輸入跳轉條件,確定跳轉到該狀態的路徑;根據跳轉到每個第二狀態中的最終狀態的每條路徑,生成對應的第二組測試序列。7、一種基於有限狀態機的網絡通信協議測試序列生成裝置,其特徵在於,該裝置包括連接路徑確定模塊,用於根據有限狀態機中的初始狀態,及各狀態之間的連接關係,確定有限狀態機中初始狀態與每個第一狀態之間對應的每條連接路徑,其中每條連接路徑中包括至少兩個狀態;選擇模塊,用於根據所述每條連接路徑中初始狀態及第一狀態之間包括的狀態的數量,選擇包括狀態數量最多的連接路徑;'連接模塊,用於確定位於所述選擇的連接路徑之外的每個第二狀態,根據該每個第二狀態與該選擇的連接路徑中每個狀態的連接關係,將該每個第二狀態連接到所述選擇的連接路徑上;生成模塊,用於根據所述選擇的連接路徑上的每個狀態的輸入跳轉條件,及所述選擇的連接路徑中每個狀態之間的連接關係,生成對應所述選擇的連接路徑的測試序列。8、如權利要求7所述的裝置,其特徵在於,所述連接路徑確定模塊包括第一狀態確定單元,用於根據各狀態之間的連接關係,及各狀態的輸入跳轉條件和輸出條件,確定每個狀態是否為連接路徑上的第一狀態;路徑確定單元,用於根據確定的第一狀態,確定初始狀態到該第一狀態的連接路徑。9、如權利要求8所述的裝置,其特徵在於,所述第一狀態確定單元包括第一確定子單元,用於當判斷狀態的輸出條件為其自身的輸入跳轉條件時,則判斷該狀態為對應該輸出條件的連接路徑上的第一狀態;第二確定子單元,用於當狀態的輸出條件為與其連接的另一狀態的輸入跳轉條件,並且該另一狀態在該連接路徑中進行過是否為第一狀態的判斷時,則確定該狀態為連接路徑上的第一狀態;第三確定子單元,用於當狀態不存在輸出條件時,確定該狀態為連接路徑上的第一狀態。10、如權利要求7所述的裝置,其特徵在於,所述生成模塊包括第一生成單元,用於根據所述選擇的連接路徑上初始狀態與第一狀態之間的狀態的輸入跳轉條件,確定第一組測試序列;第二生成單元,用於根據連接在所述選擇的連接路徑上的每個第二狀態的輸入跳轉條件,確定第二組測試序列。全文摘要本發明公開了一種基於有限狀態機的網絡通信協議測試序列生成方法及裝置,用以提供一種有效的進行一致性測試的測試序列生成方法。該方法確定該有限狀態機中初始狀態與每個第一狀態之間的連接路徑,選擇包含狀態最多的連接路徑,並將該選擇的連接路徑之外的第二狀態連接到該連接路徑上,根據該連接路徑上每個狀態的輸入跳轉條件,生成對應該連接路徑的每個測試序列,本發明實施例將網絡通信協議的一致性測試序列的生成步驟化,根據上述提供的各個步驟,生成測試序列,從而提高了網絡通信協議一致性測試的測試效率。文檔編號H04L12/26GK101674205SQ20091017126公開日2010年3月17日申請日期2009年8月27日優先權日2009年8月27日發明者薛素芬申請人:福建星網銳捷網絡有限公司