摘要 通信網(wǎng)絡(luò)在其發(fā)展過程中規(guī)模越來越大,涉及到的通信設(shè)備也越來越多。如何保證通信設(shè)備尤其是計算機網(wǎng)絡(luò)設(shè)備之間的互連互通,成為通信發(fā)展的一個重要環(huán)節(jié),其關(guān)鍵就是協(xié)議測試技術(shù)。首先介紹互操作性測試與協(xié)議一致性測試之間關(guān)系,進而介紹互操作性測試的整體架構(gòu)和如何編制互操作性測試規(guī)范,最后詳細敘述互操作性測試步驟。
測試技術(shù)是通信網(wǎng)絡(luò)平穩(wěn)運行和迅速發(fā)展的重要保證。隨著通信網(wǎng)絡(luò)的快速發(fā)展,通信網(wǎng)絡(luò)規(guī)模越來越大,其中涉及到的通信設(shè)備也越來越多。如何保證通信設(shè)備尤其是計算機網(wǎng)絡(luò)設(shè)備之間的互連互通,促進通信事業(yè)的發(fā)展,協(xié)議測試技術(shù)是一項關(guān)鍵技術(shù)和有力保證。
目前,協(xié)議測試就是為保證通信設(shè)備可以正確實現(xiàn)通信協(xié)議,并可以和遵守相同通信協(xié)議的通信設(shè)備達到互通。協(xié)議測試均為黑盒測試,并不檢查協(xié)議代碼,而是根據(jù)通信協(xié)議來觀察被測協(xié)議實現(xiàn)的外部行為。協(xié)議測試主要包括協(xié)議一致性測試(Conformance Testing)和互操作性測試(Interoperability Testing)。
一致性測試主要是確定被測實現(xiàn)(IUT,Implementation Under Test)是否與標(biāo)準(zhǔn)規(guī)定一致。通常利用一組測試案例序列,在一定的網(wǎng)絡(luò)環(huán)境下,對被測實現(xiàn)進行黑盒測試來比較IUT的實際輸出與預(yù)期輸出的異同,從而判定IUT是否與協(xié)議描述一致;ゲ僮餍詼y試評價被測實現(xiàn)與連接相似實現(xiàn)之間在網(wǎng)絡(luò)操作環(huán)境中是否能夠正確的交互并且完成協(xié)議標(biāo)準(zhǔn)中規(guī)定的功能,從而確定被測設(shè)備是否支持所需要的功能。一致性測試和互操作性測試在協(xié)議測試中都非常重要,并且可以在一定程度上相互驗證,但二者并不是完全一樣的測試方法。一致性測試是確定被測實現(xiàn)是否與標(biāo)準(zhǔn)規(guī)定一致,而互操作性測試是確定被測設(shè)備是否完成要求的功能。但是,二者對于協(xié)議測試都是非常重要的,它們是互為驗證、互為補充的關(guān)系。文章重點介紹協(xié)議測試中的互操作性測試。
1、互操作性測試
互操作性測試采用最多的形式,是測試單位選擇經(jīng)互操作認可的設(shè)備來與被測設(shè)備進行互操作性測試,認可的設(shè)備可能是終端設(shè)備、網(wǎng)絡(luò)設(shè)備或者應(yīng)用軟件,也可能是一個單獨設(shè)備或者若干設(shè)備的組合(圖1)。
圖1 互操作性測試拓撲
以下對互操作性測試中的每個實體進行簡要介紹。
被測設(shè)備:被測設(shè)備是互操作性測試的被測試對象,也可以是終端用戶設(shè)備、網(wǎng)絡(luò)設(shè)備,或是應(yīng)用軟件。被測設(shè)備可以由設(shè)備的任意個組成元素部分構(gòu)成,可能是物理設(shè)備、軟件包或者兩個以上軟件包的集合,而最簡單的被測對象是單個設(shè)備。被測設(shè)備的配置通常由設(shè)備提供商來提供。為了保證被測設(shè)備測試的準(zhǔn)確性,建議除了互操作性測試以外,同時也增加協(xié)議一致性測試。
認可設(shè)備:互操作性測試和協(xié)議一致性測試的最大不同,是在測試拓撲中認可設(shè)備替代了測試儀表。認可設(shè)備就是與被測設(shè)備連接互通、由其它設(shè)備提供商提供且已經(jīng)被認為是合格的設(shè)備。在互操作性測試中,認可設(shè)備可能是一個或多個,也可以是終端用戶設(shè)備、網(wǎng)絡(luò)設(shè)備,或應(yīng)用軟件。作為測試中的重要設(shè)備,認可設(shè)備需要有嚴(yán)格的判定程序。實際上,在認可設(shè)備被確定之前,也作為被測設(shè)備進行過全面的互操作性測試,只有成功通過所有測試項目以后,才可以成為認可設(shè)備;ゲ僮餍圆⒉灰蟊粶y設(shè)備和所有潛在的認可設(shè)備都可以互通,但是互通的認可設(shè)備越多,互操作性也越好。在這里,怎么認定第一個認可設(shè)備成為關(guān)鍵。在新技術(shù)發(fā)展初期,并沒有一個認可設(shè)備。故此第一個認可設(shè)備的選擇必然涉及到特定測試計劃中的兩個被測設(shè)備。只有兩個設(shè)備可以完全互通,這時兩個設(shè)備都成為認可設(shè)備,并可以隨后認定更多的認可設(shè)備。但是,建議最初的兩個設(shè)備一定要經(jīng)過嚴(yán)格的一致性測試。
測試驅(qū)動者:互操作性測試涉及在功能層次的控制和觀查,通常都是通過端點設(shè)備的用戶來完成,稱為測試驅(qū)動者。測試驅(qū)動者既可以是人,也可以是相應(yīng)軟件。為了保證測試的有效性和連續(xù)性,測試驅(qū)動者最好是執(zhí)行特定測試步驟的自動測試設(shè)備。
測試協(xié)調(diào)者:互操作性測試需要設(shè)備之間的同步,測試協(xié)調(diào)者的責(zé)任就是保證測試驅(qū)動者的同步。測試協(xié)調(diào)者僅是一個邏輯概念,可能就是測試驅(qū)動者。
測試項目:互操作性測試項目的制定極為關(guān)鍵,一般由互操作測試者根據(jù)所關(guān)注的測試功能要點進行制定。另外,測試驅(qū)動者所執(zhí)行的測試驅(qū)動工作也完全基于測試項目要求來進行。
測試報告:完成具體測試以后,根據(jù)測試項目要求給定測試結(jié)果(一般只有“通過”、“未通過”和“不確定”等)。對于“不確定”對應(yīng)的項目,可能需要進一步分析或者設(shè)計互操作性項目來進行測試。
測試日志:測試日志用于記錄詳細的測試過程,以便配合測試報告進行具體的結(jié)果分析。尤其對于“未通過”和“不確定”項目,一定要根據(jù)測試日志進行深入的分析。
2、互操作性測試規(guī)范開發(fā)
開發(fā)互操作性測試規(guī)范類似于制定一致性測試規(guī)范,只不過這個過程通常由互操作測試者根據(jù)所關(guān)注測試功能要點進行制定,是互操作性測試中最重要的部分。相應(yīng)流程如圖2。
圖2 互操作性測試規(guī)范制定流程
指定抽象測試架構(gòu):指定抽象測試架構(gòu)是為適合特定測試套的測試計劃而提供通常架構(gòu)。早期定義這個架構(gòu)有助于提供以后特定測試項目架構(gòu)。抽象測試架構(gòu)可以以圖、表、文字的形式清晰地指定被測設(shè)備、認可設(shè)備、通信方式和設(shè)備類型等。
互操作功能聲明:主要用于指出被測設(shè)備必須支持的標(biāo)準(zhǔn)功能,同時標(biāo)明任選功能。盡管互操作功能聲明本身不是互操作性測試的一個必要部分,但是有利于后續(xù)開發(fā)互操作性測試規(guī)范。
開發(fā)測試套架構(gòu):根據(jù)測試需求把互操作性測試劃分為不同的測試組,并具體確定每個測試組所需要測試的內(nèi)容,當(dāng)然這種劃分依賴于具體測試內(nèi)容。
寫測試目的:清晰標(biāo)明每個測試項目所要測試的目的,這樣才能明確下面測試項目要完成的任務(wù)。
寫測試項目:對于一些需要測試條件或測試狀態(tài)的測試項目,在寫測試項目之前必須明確這些測試條件或者測試狀態(tài),然后寫詳細的測試步驟,詳細描述為滿足測試目的而進行的具體測試步驟。測試步驟的描述必須清晰而不能含糊其詞。對于一些測試還必須有后測試步驟,使被測設(shè)備和認可設(shè)備回復(fù)初始狀態(tài)。利用測試V5協(xié)議對前測試步驟、測試步驟、后測試步驟的描述非常細致。
驗證測試項目:檢查整個測試套是否合理,是否有錯誤,是否滿足測試目的。
完成前面所有步驟,形成文本,即完成了整個互操作性測試規(guī)范的開發(fā)。接下來,就是如何具體進行互操作性測試。
3、互操作性測試的過程
互操作性測試過程和一致性測試過程類似,同樣包括三個步驟,即測試準(zhǔn)備、具體測試和測試報告。具體流程如圖3。
圖3 互操作性測試流程
測試準(zhǔn)備:在正式開始測試前,首先需要進行設(shè)備初始配置以滿足抽象測試架構(gòu)。這些配置可能需要設(shè)備制造商支持,并保證被測設(shè)備與認可設(shè)備之間正常連接。
測試計劃:根據(jù)設(shè)備的具體情況選擇需要測試的項目、項目測試順序等。
具體測試:根據(jù)測試項目要求進行相應(yīng)的測試。主要包括兩類:手動測試和自動測試。測試完全按照測試項目要求進行。
測試報告:總結(jié)整個測試活動,并且清晰表明設(shè)備是否滿足相應(yīng)測試項目的要求。測試報告中必須包括廠家信息、設(shè)備信息和測試信息。
其實,互操作性測試過程除了測試使用規(guī)范、測試設(shè)備和測試驅(qū)動與一致性測試不同以外,其它基本上與一致性測試類似。另外,互操作性測試和協(xié)議一致性測試還是有很大的差別。實際測試中,一致性測試通過也并不能保證互操作性測試一定可以通過。最根本的原因是一致性使用標(biāo)準(zhǔn)規(guī)定,絕對完整和正確是不現(xiàn)實的,其中也包含各個標(biāo)準(zhǔn)制定人和制定單位理解不同。具體如下:
(1)標(biāo)準(zhǔn)方面
●標(biāo)準(zhǔn)中錯誤與含糊的內(nèi)容;
●標(biāo)準(zhǔn)本身的兼容性問題。
(2)實施方面
●如編程方面的人為錯誤;
●對于通信標(biāo)準(zhǔn)的不同理解;
●標(biāo)準(zhǔn)本身允許不同選項。
(3)技術(shù)方面
●設(shè)備兼容性問題;
●設(shè)備配置問題。
當(dāng)然,互操作性測試僅僅可以證實被測系統(tǒng)中不同設(shè)備之間的互操作能力,而不能證實設(shè)備是否符合標(biāo)準(zhǔn),因為互操作性測試根本就不關(guān)心協(xié)議細節(jié)。故此,互操作性測試不可能替代一致性測試。其實,協(xié)議一致性測試和互操作性測試是互為驗證、互為補充的關(guān)系,只要把兩者合理的結(jié)合才能完成完整的協(xié)議測試。
當(dāng)然,互操作性協(xié)議測試遠非文章描述的那么簡單。文章介紹的僅僅是理論方法,真正到實際測試還需要結(jié)合具體的測試案例來提出更加具體的測試項目和測試方法。
在過去通信業(yè)的發(fā)展中,國際標(biāo)準(zhǔn)組織主要關(guān)注協(xié)議一致性測試,但是隨著通信技術(shù)的不斷發(fā)展,新的協(xié)議越來越復(fù)雜,協(xié)議一致性測試工作遇到了很多困難。所以互操性測試相關(guān)研究也越來越受到重視。ETSI、ITU-T、ISO等國際組織都開展了相應(yīng)的研究工作。目前,互操作性測試在商業(yè)測試中已經(jīng)有很廣泛的應(yīng)用,但是理論化、標(biāo)準(zhǔn)化的工作還有待進一步深入。