專利名稱:下一代互聯(lián)網(wǎng)協(xié)議一致性測試例設(shè)計方法
技術(shù)領(lǐng)域:
本發(fā)明涉及網(wǎng)絡(luò)協(xié)議測試技術(shù)領(lǐng)域,特別是一種下一代互聯(lián)網(wǎng)協(xié)議一致性測試例設(shè)計方法,尤其是適用于下一代互聯(lián)網(wǎng)協(xié)議IPv6的簡化測試序列生成的協(xié)議一致性測試例設(shè)計方法。
背景技術(shù):
下一代互聯(lián)網(wǎng)協(xié)議(Intetnet Protocol version 6,簡稱IPv6)由于其近乎無限的地址空間、層次化的地址結(jié)構(gòu)、高速的路由、更強的安全性、對移動性和服務(wù)質(zhì)量的更好支持等特性,被認為是解決目前互聯(lián)網(wǎng)面臨的困境、為下一代互聯(lián)網(wǎng)提供更好的服務(wù)和發(fā)展的最佳協(xié)議。隨著支持IPv6的網(wǎng)絡(luò)產(chǎn)品的日漸增多,各IPv6協(xié)議實現(xiàn)與協(xié)議標準的一致性問題也越來越重要,對IPv6協(xié)議進行一致性測試的需求也越來越強烈。開展IPv6協(xié)議一致性測試研究具有重要的理論和現(xiàn)實意義。
協(xié)議一致性測試是一種“功能測試”,它依據(jù)一個協(xié)議的描述對協(xié)議的某個實現(xiàn)進行測試,判別一個協(xié)議的實現(xiàn)與所對應(yīng)的協(xié)議標準是否相一致。ISO/IEC 9646為協(xié)議的一致性測試提供了基本方法和框架,為測試集制定了設(shè)計步驟和描述方法,并為測試系統(tǒng)的實現(xiàn)提供了指導(dǎo)。協(xié)議一致性測試過程分三個階段測試準備階段生成抽象測試集(Abstract TestSuite,簡稱ATS);測試操作階段產(chǎn)生參數(shù)化的可執(zhí)行測試集;測試執(zhí)行階段包括被測協(xié)議實現(xiàn)(Implementation Under Test,簡稱IUT)的協(xié)議實現(xiàn)一致性聲明的分析和可執(zhí)行測試集的執(zhí)行,最終得到一個一致性的判決,生成一致性測試報告。其中抽象測試集的生成決定了測試的質(zhì)量,是測試操作和測試執(zhí)行的基礎(chǔ),是整個協(xié)議測試的核心。
一致性測試集是測試例的完整集合,可能組合到嵌套的測試組中,用于執(zhí)行一個或多個OSI協(xié)議的動態(tài)一致性測試。測試例又分為一般的、抽象的和可執(zhí)行的測試例。抽象測試集是由抽象測試例組成的測試集。抽象測試集具有分級結(jié)構(gòu),一個抽象測試集可以有多個測試組,每個測試組由若干個測試例組成,每個測試例可以有多個測試步,每個測試步由測試事件和/或其它測試步構(gòu)成,測試事件是測試例在說明的抽象層次上不可分的最小單位。其中測試例是測試集的最重要的一級。測試例的生成方法的研究對協(xié)議測試十分重要。
抽象測試例是實現(xiàn)特定的測試目標(或特定的測試目標的組合)所要求的行為的完整而獨立的說明,定義在特定抽象測試方法的抽象層次,開始于一個穩(wěn)定的測試狀態(tài)且結(jié)束于一個穩(wěn)定的測試狀態(tài)。這個說明可能包括一個或多個連續(xù)的或并行的連接。ISO/IEC 9646中定義的測試例結(jié)構(gòu)如圖1所示。其中的術(shù)語定義如下測試狀態(tài)測試中的狀態(tài),是被測系統(tǒng)、測試系統(tǒng)、ATS描述的協(xié)議和下層服務(wù)(如果相關(guān))的狀態(tài)的組合。
穩(wěn)定測試狀態(tài)一個測試狀態(tài)不需要指定下測試器的動作可以維持到下一個測試例執(zhí)行之前。
空閑測試狀態(tài)一個穩(wěn)定測試狀態(tài),在這個狀態(tài)沒有已建立的相關(guān)協(xié)議的連接且被測系統(tǒng)獨立于之前執(zhí)行的任何測試例。
初始測試狀態(tài)測試體開始的狀態(tài)。
前測試步從測試例開始的穩(wěn)定測試狀態(tài)到測試體開始的初始狀態(tài)之間的測試步的序列。
測試體實現(xiàn)測試目標的測試步的序列。
后測試步從測試體結(jié)束到測試例終止的穩(wěn)定測試狀態(tài)之間的測試步的序列。
從圖中看到,測試例的測試序列分為前測試步、測試體和后測試步三部分,由測試體實現(xiàn)測試目標,而前測試步和后測試步的測試序列是為了保證測試體部分順利執(zhí)行從而實現(xiàn)測試目標所構(gòu)造的輔助測試序列,適當選擇前測試步和后測試步的序列對于在保證測試體執(zhí)行的前提下簡化測試生成、縮短測試執(zhí)行時間、提高測試效率都有重要意義。
目前在測試生成方面的理論研究主要集中在測試例的測試體部分測試序列的生成上,對前測試步和后測試步部分測試序列的生成很少涉及。在IPv6協(xié)議測試方面,當前日本TAHI工程、美國新罕布什爾大學等從事IPv6協(xié)議一致性測試的機構(gòu)已公布的IPv6協(xié)議測試例都只描述了測試體部分的測試序列,對前測試步和后測試步部分的測試序列沒有詳細定義。
協(xié)議一致性測試例設(shè)計的一般步驟可以總結(jié)為1、根據(jù)協(xié)議內(nèi)容選擇測試目標;2、根據(jù)測試目標構(gòu)造測試例的實際拓撲結(jié)構(gòu);3、選擇測試方法;4、設(shè)計測試例的測試序列。
對于IPv6協(xié)議,依據(jù)圖1所示的測試例結(jié)構(gòu),按常規(guī)方法分別設(shè)計測試例的前測試步、測試體和后測試步三個部分的測試序列,得到的測試例的前測試步和后測試步的測試序列很復(fù)雜,而且耗時長,在實際測試中,這往往造成一個測試例中前測試步和后測試步的測試序列甚至比測試體的測試序列還長,大部分的測試時間都消耗在前測試步和后測試步的執(zhí)行上,測試效率很低。本發(fā)明正是針對這個問題提出的一種行之有效的解決辦法。
發(fā)明內(nèi)容
本發(fā)明的目的是簡化IPv6協(xié)議測試例的前測試步和后測試步的測試序列,得到適用于IPv6協(xié)議的新的測試例結(jié)構(gòu),從而簡化測試生成,縮短測試執(zhí)行時間,提高測試效率。為此提出一種下一代互聯(lián)網(wǎng)協(xié)議一致性測試例設(shè)計方法。
發(fā)明的技術(shù)方案在此提出一種用于IPv6協(xié)議的協(xié)議一致性測試例設(shè)計方法,其特征在于,對于除IPv6鄰居發(fā)現(xiàn)協(xié)議外的所有IPv6協(xié)議,根據(jù)對協(xié)議測試狀態(tài)及其轉(zhuǎn)換的研究得到生成測試例的前測試步測試序列的通用算法,采用這種算法生成前測試步的測試序列,依據(jù)對應(yīng)的測試目標得到測試體的測試序列,略去后測試步,得到新的IPv6協(xié)議一致性測試例結(jié)構(gòu)。
具體地說,這種方法可以完整描述為如下過程根據(jù)協(xié)議內(nèi)容得到測試目標,根據(jù)測試目標設(shè)計測試例的實際拓撲結(jié)構(gòu),選擇測試方法,依據(jù)測試目標得到測試例的測試體的測試序列,采用給出的通用算法生成測試例的前測試步的測試序列,將前測試步與測試體組成完整的測試例。
下面給出其中測試例的測試序列的生成方法的具體描述,分為如下三個步驟1、根據(jù)測試目標設(shè)計測試體的測試序列;2、依據(jù)如下給出的通用算法生成前測試步的測試序列(與圖3相對應(yīng))1)列出測試體中需要與被測節(jié)點通信的鄰居的地址列表;2)若地址列表為空,執(zhí)行步驟7),否則執(zhí)行步驟3);3)從地址列表中順序選擇一個地址;4)向前測試步的測試序列中添加如下測試事件以選中地址為源地址向被測節(jié)點發(fā)送回應(yīng)請求,要求被測節(jié)點回復(fù)回應(yīng)應(yīng)答;5)向前測試步的測試序列中添加如下測試事件以選中地址為源地址向被測節(jié)點發(fā)送請求的鄰居宣告,其中帶有測試例要求的鏈路層地址,要求覆蓋原緩存;6)從地址列表中去掉選中地址,重復(fù)執(zhí)行步驟2)-6)。
7)向前測試步的測試序列中添加如下測試事件測試體中設(shè)置的被測節(jié)點所在鏈路上的默認路由器(若存在)發(fā)送路由器宣告給被測節(jié)點,其中設(shè)置了默認路由器標志,帶有被測節(jié)點所在鏈路的在線前綴的前綴選項。
3、將生成的前測試步測試序列和測試體測試序列順序組合成完整的測試例。
圖3表示了其中前測試步的測試序列的生成算法的流程圖。圖4給出了按上述方法生成的測試例的完整的測試序列的一個示意圖,圖中僅表示了一個作為被測節(jié)點鄰居的測試節(jié)點與一個被測節(jié)點所在鏈路上的默認路由器(可能與作為被測節(jié)點鄰居的測試節(jié)點重合)與被測節(jié)點之間進行數(shù)據(jù)包交互的測試事件的序列,其中箭頭方向表示數(shù)據(jù)包傳送方向,若存在多個這樣的測試節(jié)點,則對每個測試節(jié)點重復(fù)相同的測試事件的序列。
由此提出新的IPv6協(xié)議測試例結(jié)構(gòu),如圖5所示。測試例由前測試步和測試體組成,前測試步是從測試例開始的狀態(tài)到測試體開始的初始測試狀態(tài)之間的測試步的序列,測試體是實現(xiàn)測試目標的測試步的序列,測試例不包含后測試步。測試例開始的測試狀態(tài)可以是空閑測試狀態(tài)(首次執(zhí)行時)或測試體結(jié)束的狀態(tài)(連續(xù)執(zhí)行時),測試例結(jié)束的測試狀態(tài)是測試體結(jié)束的狀態(tài)(連續(xù)執(zhí)行時)或空閑測試狀態(tài)(最后執(zhí)行時),一個測試例結(jié)束的測試狀態(tài)同時也是下一個測試例開始的測試狀態(tài)。測試例的前測試步部分的測試序列包含如下測試事件以測試例中每個作為被測節(jié)點的鄰居與被測節(jié)點通信的節(jié)點地址為源地址依次向被測節(jié)點發(fā)送回應(yīng)請求、鄰居宣告,隨后測試例中被測節(jié)點所在鏈路上的默認路由器(若存在)向被測節(jié)點發(fā)送路由器宣告,其中設(shè)置了默認路由器標志并帶有被測節(jié)點所在鏈路的在線前綴的前綴選項。
本發(fā)明適用于除IPv6鄰居發(fā)現(xiàn)協(xié)議以外的所有IPv6協(xié)議,用本發(fā)明給出的方法設(shè)計的IPv6協(xié)議測試集已成功應(yīng)用于實際測試,在簡化測試序列、縮短測試時間和提高測試效率方面取得了明顯成效。
本發(fā)明廣泛用于計算機之間的下一代互聯(lián)網(wǎng)協(xié)議之中。
下面參照
本發(fā)明的具體內(nèi)容。
圖1為ISO9646定義的測試例結(jié)構(gòu)圖。
圖2為IPv6鄰居緩存條目狀態(tài)轉(zhuǎn)換圖。
圖3為前測試步的測試序列生成算法流程圖。
圖4為IPv6協(xié)議測試例的測試序列示意圖。
圖5為新的IPv6協(xié)議測試例結(jié)構(gòu)圖。
對于IPv6協(xié)議,按照圖1所示測試例結(jié)構(gòu)設(shè)計測試例的測試序列的常規(guī)方法分為以下三個步驟1、根據(jù)協(xié)議內(nèi)容選擇測試狀態(tài);一個IPv6節(jié)點對自身所處網(wǎng)絡(luò)環(huán)境的認識主要依靠鄰居發(fā)現(xiàn)機制實現(xiàn),IPv6各部分協(xié)議的通信都要受鄰居發(fā)現(xiàn)機制的制約。每個處在網(wǎng)絡(luò)中的IPv6節(jié)點都有一個鄰居緩存,保存與它通信的所有節(jié)點的IPv6地址及對應(yīng)的MAC地址,IPv6節(jié)點通過搜尋鄰居緩存條目來與其它節(jié)點建立通信。在節(jié)點間通信的不同階段,對應(yīng)的鄰居緩存條目可能處于不同狀態(tài)。IPv6協(xié)議測試例的測試狀態(tài)就依據(jù)鄰居緩存條目的狀態(tài)來選擇。鄰居緩存條目的可能狀態(tài)及各狀態(tài)間的轉(zhuǎn)換關(guān)系如圖2所示。圖2中包含六個狀態(tài),其中“——”狀態(tài)表示鄰居緩存條目不存在的狀態(tài),當鄰居緩存條目存在時,它可能處于其余五個狀態(tài)之一。這五個狀態(tài)簡述如下INCOMPLETE正在進行地址解析,還沒有確定鄰居的鏈路本地地址。
REACHABLE大致地說,知道鄰居最近(在幾十秒以前)曾經(jīng)可到達。
STALE在通信發(fā)往鄰居之前不再知道鄰居可到達,不應(yīng)作任何嘗試驗證它的可到達性。
DELAY通信最近已發(fā)往鄰居而不再知道鄰居可到達。不是立即探測鄰居,而是在一段時間后發(fā)送探測,從而給上層協(xié)議提供可到達性確認的機會。
PROBE不再知道鄰居可到達,且要發(fā)送單播鄰居請求探測來驗證可到達性。
圖2中數(shù)字表示引起這六個狀態(tài)之間的轉(zhuǎn)換的事件及對應(yīng)的節(jié)點動作的編號,按RFC2461附錄C中列表順序排列。我們以“事件;動作”的格式描述各個編號對應(yīng)的事件及動作,以事件0為例,它的定義是事件0要發(fā)送包;創(chuàng)建鄰居緩存條目,發(fā)送多播鄰居請求,啟動重傳定時器。
其中“要發(fā)送包”是引起狀態(tài)轉(zhuǎn)換的事件,“創(chuàng)建鄰居緩存條目,發(fā)送多播鄰居請求,啟動重傳定時器”是對應(yīng)的節(jié)點動作。圖2顯示經(jīng)過事件0鄰居緩存條目由“——”狀態(tài)轉(zhuǎn)換到“Incomplete”狀態(tài),也就是說當鄰居緩存條目處于“——”狀態(tài)且發(fā)生事件“要發(fā)送包”時,節(jié)點進行“創(chuàng)建鄰居緩存條目,發(fā)送多播鄰居請求,啟動重傳定時器”的操作,鄰居緩存條目轉(zhuǎn)換到“Incomplete”狀態(tài)。
圖2中所有編號對應(yīng)的事件及動作的詳細說明參見RFC2461附錄C,這里不再一一列出,僅對敘述中涉及到的一些事件及動作按上述格式在下面的敘述中給出定義。
根據(jù)RFC2461中對各狀態(tài)的定義,對于除鄰居發(fā)現(xiàn)協(xié)議外的所有IPv6協(xié)議,都可選擇狀態(tài)“——”作為空閑測試狀態(tài),狀態(tài)“Reachable”作為測試體開始執(zhí)行的初始測試狀態(tài)。
2、根據(jù)測試狀態(tài)設(shè)計前測試步和后測試步;選定測試狀態(tài)后依據(jù)圖2可以得到前測試步和后測試步的測試序列。前測試步是使被測協(xié)議實現(xiàn)從狀態(tài)“——”到狀態(tài)“Reachable”的轉(zhuǎn)換的測試序列,從圖2中可以看到,狀態(tài)“——”轉(zhuǎn)換為狀態(tài)“Reachable”有三條路徑①“——”→“Incomplete”→“Reachable”。
②“——”→“Reachable”。
③“——”→“Stale”→“Reachable”。
后測試步是使被測協(xié)議實現(xiàn)從狀態(tài)“Reachable”回到狀態(tài)“——”的測試序列,圖2顯示由“Reachable”狀態(tài)到“——”狀態(tài)的路徑是唯一的,即“Reachable”→“Stale”→“Delay”→“Probe”→“——”。
圖2中激發(fā)上述狀態(tài)轉(zhuǎn)換的事件的序列就分別構(gòu)成了測試例的前測試步部分和后測試步部分的測試序列。
3、根據(jù)測試目標設(shè)計測試體。
測試體的測試序列由實現(xiàn)測試目標的一組測試事件組成,執(zhí)行這組測試事件時被測協(xié)議實現(xiàn)應(yīng)處于“Reachable”狀態(tài)。
以上給出了用常規(guī)方法設(shè)計前測試步和后測試步的測試序列的三個步驟,可以看到,其中涉及的前測試步和后測試步的狀態(tài)轉(zhuǎn)換過程經(jīng)過很多中間狀態(tài),需要產(chǎn)生很多激發(fā)這些狀態(tài)轉(zhuǎn)換的測試事件,得到的測試序列比較復(fù)雜。
注意到在圖2中,除狀態(tài)“——”和狀態(tài)“Incomplete”外,其余狀態(tài)都可經(jīng)過事件5、事件8或事件12轉(zhuǎn)換為“Reachable”狀態(tài)。這幾個事件及其對應(yīng)的被測實現(xiàn)的動作分別是事件5收到請求的鄰居宣告,其中包含與緩存中相同的鏈路層地址,不要求覆蓋原緩存;無動作。
事件8收到請求的鄰居宣告,要求覆蓋原緩存;記錄新的鏈路層地址(若與緩存中地址不同)。
事件12收到上層可達性確認;無動作。
而由“——”狀態(tài)經(jīng)過事件0可以轉(zhuǎn)換為“Incomplete”狀態(tài)由“Incomplete”狀態(tài)經(jīng)過事件4可以轉(zhuǎn)換為“Reachable”狀態(tài),兩個事件和所對應(yīng)的被測實現(xiàn)的動作是事件0要發(fā)送包;創(chuàng)建鄰居緩存條目,發(fā)送多播鄰居請求,啟動重傳定時器。
事件4收到請求的鄰居宣告;記錄鏈路層地址,發(fā)送隊列中的包。
可以看到,除狀態(tài)“——”外,無論鄰居緩存條目處于其他什麼狀態(tài),只要收到適當?shù)恼埱蟮泥従有?,都可直接轉(zhuǎn)換為“Reachable”狀態(tài)。而對于狀態(tài)“——”,在節(jié)點需要發(fā)送到鄰居的包時就能轉(zhuǎn)換到“Incomplete”狀態(tài)。因此可以直接在每個測試例的開始部分執(zhí)行以下步驟①作為被測節(jié)點的鄰居的測試節(jié)點向被測節(jié)點發(fā)送回應(yīng)請求,被測節(jié)點需要發(fā)送回應(yīng)應(yīng)答給測試節(jié)點。若此時鄰居緩存條目處于“——”狀態(tài),事件0發(fā)生,鄰居緩存條目狀態(tài)轉(zhuǎn)換為“Incomplete”;若此時鄰居緩存條目處于其余五個狀態(tài)之一,執(zhí)行這個步驟后鄰居緩存條目將仍處于這五個狀態(tài)之一。
②測試節(jié)點向被測實現(xiàn)發(fā)送請求的鄰居宣告,其中帶有測試例要求的鏈路層地址,要求覆蓋原緩存。被測實現(xiàn)收到后,據(jù)當前鄰居緩存條目所處的不同狀態(tài),可能是事件4或事件8發(fā)生。無論是哪個事件發(fā)生,鄰居緩存條目狀態(tài)都會直接轉(zhuǎn)換為“Reachable”,此時被測實現(xiàn)上已建立測試節(jié)點的完整的鄰居緩存條目,雙方可以正常通信,進入具體測試執(zhí)行階段。若測試例中被測節(jié)點所在鏈路上存在默認路由器,則充當默認路由器的測試節(jié)點還需發(fā)送路由器宣告給被測節(jié)點,其中設(shè)置了默認路由器標志并帶有被測節(jié)點所在鏈路的在線前綴的前綴選項。
在任何狀態(tài)下執(zhí)行上述兩個步驟都可以使被測協(xié)議實現(xiàn)直接進入測試體開始的初始測試狀態(tài),因此這兩個步驟可以作為通用的測試例的前測試步部分,若有多個測試節(jié)點或一個測試節(jié)點的多個地址需要與被測節(jié)點通信,則重復(fù)執(zhí)行上述步驟。由于上述前測試步部分可以實現(xiàn)從空閑測試狀態(tài)和任意測試體結(jié)束狀態(tài)到測試體開始的初始測試狀態(tài)之間的轉(zhuǎn)換,在任何情況下都能保證測試體的順利執(zhí)行和測試目標的實現(xiàn),因此測試例的后測試步部分可以省略。實際執(zhí)行測試例時,第一個測試例開始于空閑測試狀態(tài),之后連續(xù)執(zhí)行的每個測試例開始于上一個測試例的測試體結(jié)束的測試狀態(tài)而結(jié)束于它自身的測試體結(jié)束的測試狀態(tài),最后一個測試例執(zhí)行結(jié)束后,根據(jù)鄰居發(fā)現(xiàn)協(xié)議中的鄰居不可達檢測機制,被測節(jié)點在一段時間內(nèi)發(fā)現(xiàn)所有測試節(jié)點已不可到達,將到達空閑測試狀態(tài)。這樣,在任意時刻可以執(zhí)行任意多個測試例,且各個測試例的測試體部分都能確保正確而獨立的執(zhí)行。
上述通用的前測試步部分的測試序列在實際操作時可以用一個通用算法生成,圖3表示了這個算法的流程圖。這樣可以得到IPv6協(xié)議測試例的測試序列生成過程先根據(jù)測試目標得到測試體的測試序列,再用前測試步的生成算法得到前測試步的測試序列,最后將前測試步的測試序列和測試體的測試序列順序組合成測試例的完整測試序列。圖4表示了這樣得到的一個IPv6協(xié)議測試例的完整測試序列的示意圖。
由此得到適用于IPv6協(xié)議的新的測試例結(jié)構(gòu),如圖5所示。新的測試例結(jié)構(gòu)僅包含前測試步和測試體兩個部分,測試體實現(xiàn)測試目標,前測試步實現(xiàn)保證測試體正確而獨立的執(zhí)行所需要的測試狀態(tài)轉(zhuǎn)換。選擇IPv6鄰居發(fā)現(xiàn)協(xié)議中規(guī)定的鄰居緩存條目的“——”狀態(tài)作為測試例的空閑測試狀態(tài),“Reachable”狀態(tài)作為測試例的初始測試狀態(tài)。測試例開始的測試狀態(tài)可以是空閑測試狀態(tài)(首次執(zhí)行時)或測試體結(jié)束的狀態(tài)(連續(xù)執(zhí)行時),測試例結(jié)束的測試狀態(tài)是測試體結(jié)束的狀態(tài)(連續(xù)執(zhí)行時)或空閑測試狀態(tài)(最后執(zhí)行時),一個測試例結(jié)束的測試狀態(tài)同時也是下一個測試例開始的測試狀態(tài)。生成的測試例組成前測試步部分測試序列的測試事件為以測試例中每個作為被測節(jié)點的鄰居與被測節(jié)點通信的節(jié)點地址為源地址依次向被測節(jié)點發(fā)送回應(yīng)請求、鄰居宣告,隨后測試例中被測節(jié)點所在鏈路上的默認路由器(若存在)向被測節(jié)點發(fā)送路由器宣告,其中設(shè)置了默認路由器標志并帶有被測節(jié)點所在鏈路的在線前綴的前綴選項。
權(quán)利要求
1.一種用于下一代互聯(lián)網(wǎng)協(xié)議(IPv6)的一致性測試例設(shè)計方法,其特征在于,對于除IPv6鄰居發(fā)現(xiàn)協(xié)議外的所有IPv6協(xié)議,根據(jù)對協(xié)議測試狀態(tài)及其轉(zhuǎn)換的研究得到生成測試例的前測試步測試序列的通用算法,采用這種算法生成前測試步的測試序列,依據(jù)對應(yīng)的測試目標得到測試體的測試序列,略去后測試步,得到新的IPv6協(xié)議一致性測試例結(jié)構(gòu)。
2.根據(jù)權(quán)利要求1所述的協(xié)議一致性測試例設(shè)計方法,其特征在于,根據(jù)協(xié)議內(nèi)容得到測試目標,根據(jù)測試目標設(shè)計測試例的實際拓撲結(jié)構(gòu),選擇測試方法,依據(jù)測試目標得到測試例的測試體的測試序列,采用給出的通用算法生成測試例的前測試步的測試序列,將前測試步與測試體組成完整的測試例。
3.根據(jù)權(quán)利要求2所述的協(xié)議一致性測試例設(shè)計方法,其特征在于,選擇IPv6鄰居發(fā)現(xiàn)協(xié)議中規(guī)定的鄰居緩存條目的“——”狀態(tài)作為測試例的空閑測試狀態(tài),“Reachable”狀態(tài)作為測試例的初始測試狀態(tài),測試例開始的測試狀態(tài)可以是空閑測試狀態(tài)(首次執(zhí)行時)或測試體結(jié)束的狀態(tài)(連續(xù)執(zhí)行時),測試例結(jié)束的測試狀態(tài)是測試體結(jié)束的狀態(tài)(連續(xù)執(zhí)行時)或空閑測試狀態(tài)(最后執(zhí)行時),一個測試例結(jié)束的測試狀態(tài)同時也是下一個測試例開始的測試狀態(tài)。
4.根據(jù)權(quán)利要求2所述的協(xié)議一致性測試例設(shè)計方法,其特征在于,得到的新的測試例結(jié)構(gòu)由前測試步和測試體兩部分組成,前測試步是從測試例開始的狀態(tài)到測試體開始的初始測試狀態(tài)之間的測試步的序列,測試體是實現(xiàn)測試目標的測試步的序列,測試例不包含后測試步。
5.根據(jù)權(quán)利要求2所述的協(xié)議一致性測試例設(shè)計方法,其特征在于,依據(jù)如下給出的通用算法生成前測試步的測試序列1)列出測試體中需要與被測節(jié)點通信的鄰居的地址列表;2)若地址列表為空,執(zhí)行步驟7),否則執(zhí)行步驟3);3)從地址列表中順序選擇一個地址;4)向前測試步的測試序列中添加如下測試事件以選中地址為源地址向被測節(jié)點發(fā)送回應(yīng)請求,要求被測節(jié)點回復(fù)回應(yīng)應(yīng)答;5)向前測試步的測試序列中添加如下測試事件以選中地址為源地址向被測節(jié)點發(fā)送請求的鄰居宣告,其中帶有測試例要求的鏈路層地址,要求覆蓋原緩存;6)從地址列表中去掉選中地址,重復(fù)執(zhí)行步驟2)-6)。7)向前測試步的測試序列中添加如下測試事件測試體中設(shè)置的被測節(jié)點所在鏈路上的默認路由器,若存在,發(fā)送路由器宣告給被測節(jié)點,其中設(shè)置了默認路由器標志,帶有被測節(jié)點所在鏈路的在線前綴的前綴選項。
6.根據(jù)權(quán)利要求2所述的協(xié)議一致性測試例設(shè)計方法,其特征在于,生成的測試例的前測試步的測試序列包含如下測試事件以測試例中每個作為被測節(jié)點的鄰居與被測節(jié)點通信的節(jié)點地址為源地址依次向被測節(jié)點發(fā)送回應(yīng)請求、鄰居宣告,隨后測試例中被測節(jié)點所在鏈路上的默認路由器,若存在,向被測節(jié)點發(fā)送路由器宣告,其中設(shè)置了默認路由器標志并帶有被測節(jié)點所在鏈路的在線前綴的前綴選項。
全文摘要
本發(fā)明涉及網(wǎng)絡(luò)協(xié)議測試技術(shù)領(lǐng)域,涉及下一代互聯(lián)網(wǎng)(IPv6)協(xié)議一致性測試例設(shè)計方法,得到了新的IPv6協(xié)議一致性測試例結(jié)構(gòu)。通過對IPv6協(xié)議測試狀態(tài)轉(zhuǎn)換的研究得到測試例的測試序列的新的生成方法,用給出的通用算法生成測試例的前測試步的測試序列,依據(jù)測試例對應(yīng)的測試目標得到測試例的測試體的測試序列,測試例不再包含后測試步。新的IPv6協(xié)議一致性測試例結(jié)構(gòu)由前測試步和測試體兩部分組成。這種方法適用于除IPv6鄰居發(fā)現(xiàn)協(xié)議外的所有IPv6協(xié)議。采用這種方法簡化了測試例的測試序列,縮短了測試例執(zhí)行時間,提高了測試效率。
文檔編號H04L12/26GK1540928SQ20031010437
公開日2004年10月27日 申請日期2003年10月27日 優(yōu)先權(quán)日2003年10月27日
發(fā)明者鄭紅霞, 張玉軍, 孫靜波, 李忠誠 申請人:中國科學院計算技術(shù)研究所