專利名稱:含有復(fù)雜計算過程協(xié)議的一致性測試框架及其方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算過程協(xié)議工程技術(shù)領(lǐng)域,特別是一種含有復(fù)雜計算過程協(xié)議的一致性測試框架及其方法,其適用對象是被測協(xié)議中含有復(fù)雜的計算過程。
背景技術(shù):
協(xié)議一致性測試是協(xié)議工程學(xué)的一個重要分支,其目的是通過實驗的方法發(fā)現(xiàn)被測協(xié)議實現(xiàn)(Implementation Under Test,IUT)在功能和邏輯方面的錯誤。研究協(xié)議一致性測試的原因在于協(xié)議標(biāo)準(zhǔn)目前基本上是使用自然語言描述的,實現(xiàn)者對于協(xié)議標(biāo)準(zhǔn)的不同理解會導(dǎo)致不同的協(xié)議實現(xiàn),有時甚至?xí)清e誤的實現(xiàn),因此需要一種有效的方法來對協(xié)議實現(xiàn)進(jìn)行驗證和判別。對于測試人員而言,被測協(xié)議實現(xiàn)的內(nèi)部邏輯結(jié)構(gòu)是不見的,因此一致性測試是一種黑盒測試。
國際標(biāo)準(zhǔn)ISO/IEC9646定義了一致性測試的方法和框架,用于測試一個聲稱實現(xiàn)了某一OSI協(xié)議的產(chǎn)品與其協(xié)議標(biāo)準(zhǔn)的一致性,該標(biāo)準(zhǔn)主要是面向測試實踐,用于指導(dǎo)測試實踐。該標(biāo)準(zhǔn)推薦了一種用于描述抽象測試集的樹表結(jié)合表示法(the tree and tabular combined notation,下面一律使用TTCN),同時給出了通用的一致性測試框架,即采用TTCN描述抽象測試集,由執(zhí)行系統(tǒng)(一般是TTCN的執(zhí)行器,采用解釋執(zhí)行或者編譯執(zhí)行的方式)按照抽象測試集規(guī)定的行為對特定協(xié)議實現(xiàn)進(jìn)行測試。這種標(biāo)準(zhǔn)測試框架的主要特征可以從兩個方面進(jìn)行說明·測試集和執(zhí)行系統(tǒng)完全獨立測試集采用TTCN描述,執(zhí)行系統(tǒng)是TTCN的執(zhí)行器,任何用TTCN描述的抽象測試集都可以輸入到執(zhí)行系統(tǒng)中執(zhí)行;測試集對執(zhí)行系統(tǒng)完全透明;·與測試有關(guān)的所有內(nèi)容都采用TTCN進(jìn)行描述在這種測試框架中,與測試有關(guān)的所有內(nèi)容包括測試數(shù)據(jù)、計算過程、測試行為、測試判定等完全采用TTCN描述,抽象測試集包容一切;一致性測試是一個復(fù)雜的過程,被測協(xié)議的類型多種多樣,應(yīng)該根據(jù)被測協(xié)議的具體特點和測試需求選用適當(dāng)?shù)臏y試技術(shù),這樣才能夠花費最少的測試代價、達(dá)到最高的測試效率。ISO/IEC9646中定義的這種測試框架沒有考慮被測協(xié)議的特點,在兼顧通用性的同時不可避免地會在某些特定協(xié)議的測試中無能為力,在測試含有復(fù)雜計算過程的協(xié)議時就會遇到這個問題。
一致性測試是通過執(zhí)行系統(tǒng)與被測系統(tǒng)之間的通信完成的,在這個過程中,執(zhí)行系統(tǒng)需要向被測系統(tǒng)發(fā)送合適的測試數(shù)據(jù)包,同時對被測系統(tǒng)返回的數(shù)據(jù)包進(jìn)行判定,在此基礎(chǔ)上,得出被測實現(xiàn)是否一致性的結(jié)論。執(zhí)行系統(tǒng)雖然不是被測協(xié)議的一個完整實現(xiàn),但它應(yīng)該能夠模擬被測協(xié)議的絕大部分行為,特別是應(yīng)該能夠構(gòu)造出被測協(xié)議中所有可能的數(shù)據(jù)包,包括正確數(shù)據(jù)包和錯誤數(shù)據(jù)包。對于含有復(fù)雜計算過程的被測協(xié)議來說,構(gòu)造測試數(shù)據(jù)包和對接收到的數(shù)據(jù)包進(jìn)行判定都需要進(jìn)行很復(fù)雜的計算。TTCN中定義了支持計算的語法格式,能夠滿足簡單計算的需求,但是對于特別復(fù)雜的計算過程(例如采用很復(fù)雜的加密算法對整個原始數(shù)據(jù)包進(jìn)行加密等操作)則無能為力,因此標(biāo)準(zhǔn)測試框架不能夠?qū)袕?fù)雜計算過程的協(xié)議進(jìn)行高效率的測試。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種含有復(fù)雜計算過程協(xié)議的一致性測試框架及其方法。
分析協(xié)議特點,明確測試需求是開展有效測試活動的前提。測試描述法和執(zhí)行系統(tǒng)是一致性測試中的兩大要素,在標(biāo)準(zhǔn)測試框架中,測試集與執(zhí)行系統(tǒng)完全獨立,與測試有關(guān)的所有信息(包括計算過程),都用測試描述法進(jìn)行描述,測試描述法(TTCN)及執(zhí)行系統(tǒng)是通用的,與被測協(xié)議的特點無關(guān)(見圖1)。一般來說,文本格式的測試描述法很難描述復(fù)雜的計算過程,如果測試描述法不能夠描述復(fù)雜的計算過程,則這種測試框架不能夠滿足含有復(fù)雜計算過程協(xié)議的測試需求。
打破標(biāo)準(zhǔn)的測試集和執(zhí)行系統(tǒng)完全獨立的測試框架,在此提出測試描述法和執(zhí)行系統(tǒng)互動的方式對含有復(fù)雜計算過程的協(xié)議進(jìn)行一致性測試。測試描述法一般是文本或者腳本語言,描述復(fù)雜計算過程較為困難;執(zhí)行系統(tǒng)一般采用高級編程語言實現(xiàn),而高級編程語言可以實現(xiàn)任意復(fù)雜的計算過程。把這兩者的特點結(jié)合起來,由測試描述法指定計算屬性,而把計算過程內(nèi)嵌到執(zhí)行系統(tǒng)中進(jìn)行實現(xiàn),則能夠滿足含有復(fù)雜計算過程協(xié)議的測試需求(見圖2)。由于具體協(xié)議中可能用到的計算過程都是有限的,采用測試描述法和執(zhí)行系統(tǒng)互動的方式實現(xiàn)計算功能,測試描述法以文本方式給出有關(guān)的參數(shù)和算法等計算屬性,真正的計算過程內(nèi)嵌到執(zhí)行系統(tǒng)中實現(xiàn)。這種測試框架可以實現(xiàn)任意復(fù)雜的計算過程,能夠滿足對復(fù)雜計算的測試需求。下面把協(xié)議測試中可能遇到的計算需求分為三類,分別介紹測試描述法和執(zhí)行系統(tǒng)互動的解決方案1.默認(rèn)的計算類型這種計算類型不需要測試人員顯示地進(jìn)行描述,完全由執(zhí)行系統(tǒng)在必要時自動調(diào)用相應(yīng)的計算模塊完成。對被測協(xié)議來說,在特定的可以靜態(tài)確定的環(huán)境下,總是應(yīng)該調(diào)用這種計算過程。最常見的這種計算類型的代表為報頭中校驗和字段的計算,對某種報頭來說,校驗和的計算方法是完全確定的、校驗和的填充位置也是完全確定的,如果報頭的其它字段已經(jīng)賦值,則校驗和就可以唯一確定。在設(shè)計測試描述法時,規(guī)定報頭的描述格式,可以預(yù)留校驗和字段的編輯接口(用于測試被測協(xié)議實現(xiàn)對錯誤校驗和的處理),也可以不預(yù)留而由執(zhí)行系統(tǒng)自動計算并填充。執(zhí)行系統(tǒng)中實現(xiàn)了對校驗和字段的計算過程以及調(diào)用格式,在執(zhí)行系統(tǒng)讀取報頭描述時能夠自動調(diào)用計算過程,從而得到最終完整的二進(jìn)制流格式的測試數(shù)據(jù);2.可靜態(tài)確定的計算類型這種計算類型需要測試人員靜態(tài)地進(jìn)行指定。對被測協(xié)議來說,在同等條件下計算某些特定字段的值可能存在不止一種算法或計算過程,那么就需要在執(zhí)行系統(tǒng)中實現(xiàn)所有可能的計算過程。在對該協(xié)議進(jìn)行一致性測試的過程中,在構(gòu)建測試數(shù)據(jù)包或者對被測系統(tǒng)返回的數(shù)據(jù)進(jìn)行判定時,可以預(yù)先靜態(tài)確定采用何種計算過程。如果在某一條件下存在多種計算過程,在設(shè)計測試描述法時,可以預(yù)留指定計算過程的編輯接口。在設(shè)計測試集時,采用這個編輯接口指定計算過程,執(zhí)行系統(tǒng)會據(jù)此調(diào)用適當(dāng)?shù)挠嬎氵^程。舉例來說,互聯(lián)網(wǎng)安全協(xié)議IPSec是互聯(lián)網(wǎng)工程任務(wù)組IETF專門為保護(hù)網(wǎng)絡(luò)層通信而設(shè)計的安全協(xié)議,其中定義了身份認(rèn)證報頭AH,身份認(rèn)證報頭AH的格式是固定的,但計算其中驗證字段采用的算法是不固定的(任意符合特定輸入輸出條件的哈希算法都是可以的,但目前較常用的包括HMAC-MD5-96、HMAC-SHA1-96等)。在對IPSec協(xié)議進(jìn)行測試時,在執(zhí)行系統(tǒng)中實現(xiàn)所有的認(rèn)證算法,在測試描述法中定義的AH報頭描述中除了所有字段的編輯接口外,再加上一個指定認(rèn)證算法的字段,以文本名字的方式指定該報頭中計算驗證字段采用的算法;在對接受到的數(shù)據(jù)進(jìn)行判定時,指定驗證算法的方式與之類似。在發(fā)送/接收數(shù)據(jù)時,執(zhí)行系統(tǒng)會按照指定信息調(diào)用計算模塊實現(xiàn)計算過程;3.動態(tài)確定的計算類型這種計算類型比較特殊,其特征是與計算有關(guān)的參數(shù)、甚至計算過程都不能事先完全確定,需要在測試執(zhí)行過程中根據(jù)中間執(zhí)行結(jié)果才能確定,對存在這種計算類型的協(xié)議進(jìn)行一致性測試十分困難。協(xié)議測試中對計算能力的需求通過三個屬性進(jìn)行描述計算過程(即算法)、輸入?yún)?shù)、輸出值,一旦前兩個屬性確定,則輸出值唯一確定。對于執(zhí)行中才能確定的計算類型,計算過程和輸入?yún)?shù)都不能事先確定,應(yīng)該根據(jù)動態(tài)的執(zhí)行情況才能確定。可以采用兩種方式實現(xiàn)這種計算類型,其共同點在于真正的計算過程由執(zhí)行系統(tǒng)實現(xiàn),差別在于確定計算屬性(計算過程和輸入?yún)?shù))的過程是采用測試描述法描述、還是內(nèi)嵌到執(zhí)行系統(tǒng)中·測試描述法確定計算屬性在設(shè)計測試集時,采用測試描述法對中間的執(zhí)行情況進(jìn)行判定,根據(jù)不同的分支情況分別確定不同的計算屬性、調(diào)用不同的計算過程;這種方式要求測試描述法具備較強(qiáng)的分支描述能力,設(shè)計測試集時需要考慮全面,測試集較為龐大;·執(zhí)行系統(tǒng)確定計算屬性在設(shè)計測試集時,把與確定計算屬性有關(guān)的信息都定義為測試集的全局參數(shù),根據(jù)執(zhí)行情況對這些參數(shù)賦值,把根據(jù)這些全局參數(shù)確定計算屬性的任務(wù)放到執(zhí)行系統(tǒng)中實現(xiàn);其優(yōu)點在于測試集中只對能夠描述中間執(zhí)行結(jié)果的參數(shù)賦值,
對測時描述法的要求較為簡單,簡化了測試集的設(shè)計;缺點在于在靈活性上不如上一種方式;這種測試框架的主要特點在于打破了標(biāo)準(zhǔn)測試框架中測試集與執(zhí)行系統(tǒng)完全獨立的測試結(jié)構(gòu),而是采用測試描述法和執(zhí)行系統(tǒng)互動的方式實現(xiàn)對含有復(fù)雜計算過程協(xié)議的一致性測試。其要點在于不是完全采用測試描述法描述計算過程,而是把復(fù)雜計算過程的實現(xiàn)內(nèi)嵌到執(zhí)行系統(tǒng)中,測試集中只需要采用測試描述法在適當(dāng)?shù)牡胤街付ㄓ嬎銓傩约纯?。這種測試框架的實現(xiàn)需要根據(jù)被測協(xié)議特點設(shè)計測試描述法,并進(jìn)而實現(xiàn)執(zhí)行系統(tǒng)。在實際的一致性測試中,關(guān)于測試描述法的設(shè)計,可以采用兩種途徑實現(xiàn)1.完全從頭設(shè)計全新的測試描述法當(dāng)前常用的是設(shè)計文本方式的測試描述法,根據(jù)被測協(xié)議特點,完全采用文本方式描述測試集;2.在現(xiàn)有的測試描述法的基礎(chǔ)上,設(shè)計新的測試描述法TTCN是國際標(biāo)準(zhǔn)推薦的測試描述法,但它實在是太龐大了,實現(xiàn)TTCN的執(zhí)行器是一項相當(dāng)復(fù)雜的工作,對某種具體協(xié)議進(jìn)行一致性測試沒必要采用完整的TTCN;根據(jù)協(xié)議特點,去掉TTCN中一些不需要的部分、補(bǔ)充必要的部分,形成新的測試描述法,這種方式是當(dāng)前最常用的設(shè)計測試描述法的方法;在這種測試框架結(jié)構(gòu)中,測試描述法與被測協(xié)議息息相關(guān),而執(zhí)行系統(tǒng)是測試描述法的解釋/編譯執(zhí)行器;在設(shè)計完成測試描述法的基礎(chǔ)上,需要實現(xiàn)支持該描述法的執(zhí)行系統(tǒng),其中實現(xiàn)了被測協(xié)議中可能用到的所有的計算過程。
圖1描述了標(biāo)準(zhǔn)測試框架實現(xiàn)計算功能的方式。
圖2描述了本發(fā)明提出的測試框架實現(xiàn)計算功能的方式。
圖3給出了采用本發(fā)明對含有復(fù)雜計算過程的協(xié)議進(jìn)行一致性測試的流程圖。
具體實施例方式
圖1描述了標(biāo)準(zhǔn)測試框架,在這種測試框架中,完全采用測試描述法描述抽象測試集;完整的計算過程包含在測試集中,完全采用測試描述法描述計算過程。這種測試框架結(jié)構(gòu)的主要特征是測試集和執(zhí)行系統(tǒng)完全獨立,測試集描述語言的計算描述能力有限,很難用于對含有復(fù)雜計算過程協(xié)議的測試。
圖2描述了本發(fā)明提出的測試框架,在這種測試框架中,計算過程內(nèi)嵌到執(zhí)行系統(tǒng)中實現(xiàn);測試集中僅采用測試描述法指定計算屬性,真正的計算過程由執(zhí)行系統(tǒng)實現(xiàn)。這種測試框架的特征在于測試集不再與執(zhí)行系統(tǒng)分離、而是相互配合來實現(xiàn)復(fù)雜的計算過程。
圖3描述了采用本發(fā)明對含有復(fù)雜計算過程的協(xié)議進(jìn)行一致性測試的流程圖。共包括以下步驟·步驟S1,分析協(xié)議標(biāo)準(zhǔn),按照本發(fā)明所指出的方式對被測協(xié)議中的計算過程進(jìn)行分類;·步驟S2,根據(jù)協(xié)議標(biāo)準(zhǔn)、結(jié)合協(xié)議中的計算過程,設(shè)計測試描述法;·步驟S3,實現(xiàn)與被測協(xié)議相關(guān)的計算模塊;·步驟S4,采用編譯/解釋執(zhí)行的方式,實現(xiàn)針對測試描述法的測試執(zhí)行系統(tǒng),執(zhí)行系統(tǒng)中需要引進(jìn)計算模塊;·步驟S5,根據(jù)協(xié)議標(biāo)準(zhǔn),設(shè)計測試序列;采用測試描述法描述測試序列,得到抽象測試集;·步驟S6,把抽象測試集加載到測試執(zhí)行系統(tǒng)中,通過與具體被測協(xié)議實現(xiàn)的交互進(jìn)行測試;·步驟S7,生成針對具體被測協(xié)議實現(xiàn)的測試報告。
說明測試框架(Testing Framework)是協(xié)議一致性測試領(lǐng)域的標(biāo)準(zhǔn)術(shù)語,本發(fā)明給出了一種新的測試框架,可用于對含有復(fù)雜計算過程的協(xié)議進(jìn)行一致性測試。
權(quán)利要求
1.一種用于測試含有復(fù)雜計算過程協(xié)議的一致性測試框架,其特征在于,采用測試描述法和執(zhí)行系統(tǒng)互動的方式實現(xiàn)計算功能,而不像標(biāo)準(zhǔn)測試框架中測試集和執(zhí)行系統(tǒng)獨立、完全采用測試描述法實現(xiàn)計算功能。
2.根據(jù)權(quán)利要求1所述的用于測試含有復(fù)雜計算過程協(xié)議的一致性測試框架,其特征在于,由測試描述法指定算法名稱、輸入?yún)?shù)等計算屬性,把具體的計算過程內(nèi)嵌到執(zhí)行系統(tǒng)中實現(xiàn),采用這種方式可以實現(xiàn)任意復(fù)雜的計算過程。
3.根據(jù)權(quán)利要求1所述的用于測試含有復(fù)雜計算過程協(xié)議的一致性測試框架,其特征在于,把協(xié)議測試中可能遇到的計算需求分為三種類型,給出了采用這種測試框架對這三種計算類型進(jìn)行測試的實現(xiàn)方式。
4.根據(jù)權(quán)利要求3所述的用于測試含有復(fù)雜計算過程協(xié)議的一致性測試框架,其特征在于,三種類型是包括默認(rèn)的計算類型、可靜態(tài)確定的計算類型、動態(tài)確定的計算類型。
5.一種用于測試含有復(fù)雜計算過程協(xié)議的一致性測試的方法,其步驟如下步驟S1,分析協(xié)議標(biāo)準(zhǔn),按照本發(fā)明所指出的方式對被測協(xié)議中的計算過程進(jìn)行分類;步驟S2,根據(jù)協(xié)議標(biāo)準(zhǔn)、結(jié)合協(xié)議中的計算過程,設(shè)計測試描述法;步驟S3,實現(xiàn)與被測協(xié)議相關(guān)的計算模塊;步驟S4,采用編譯/解釋執(zhí)行的方式,實現(xiàn)針對測試描述法的測試執(zhí)行系統(tǒng),執(zhí)行系統(tǒng)中需要引進(jìn)計算模塊;步驟S5,根據(jù)協(xié)議標(biāo)準(zhǔn),設(shè)計測試序列;采用測試描述法描述測試序列,得到抽象測試集;步驟S6,把抽象測試集加載到測試執(zhí)行系統(tǒng)中,通過與具體被測協(xié)議實現(xiàn)的交互進(jìn)行測試;步驟S7,生成針對具體被測協(xié)議實現(xiàn)的測試報告。
全文摘要
本發(fā)明涉及計算過程協(xié)議工程技術(shù)領(lǐng)域,特別是一種含有復(fù)雜計算過程協(xié)議的一致性測試框架及其方法,打破了標(biāo)準(zhǔn)測試框架中測試集和執(zhí)行系統(tǒng)獨立、完全采用測試描述法實現(xiàn)計算功能的方式,采用測試描述法和執(zhí)行系統(tǒng)互動的方式實現(xiàn)計算功能,由測試描述法指定算法名稱、輸入?yún)?shù)等計算屬性,把計算過程的實現(xiàn)內(nèi)嵌到執(zhí)行系統(tǒng)中。把協(xié)議測試中可能遇到的計算需求分為三種類型,包括默認(rèn)的計算類型、可靜態(tài)確定的計算類型、動態(tài)確定的計算類型,分別給出了在這種測試框架下針對這三種計算類型的測試解決方案。這種測試框架可以實現(xiàn)任意復(fù)雜的計算過程,能夠滿足對含有復(fù)雜計算過程協(xié)議的測試需求。
文檔編號G06F11/00GK1564135SQ20041003151
公開日2005年1月12日 申請日期2004年3月19日 優(yōu)先權(quán)日2004年3月19日
發(fā)明者張玉軍, 李忠誠 申請人:中國科學(xué)院計算技術(shù)研究所