?
目前, 我國網絡產品檢測的技術水平和能力與國際上存在較大差距,協議一致性測試產品的設計大多停留在測試方法的理論研究上,在協議測試的通用平臺方面還缺乏較好的解決方案。
1 網絡協議一致性測試概述
網絡協議的一致性測試是一種功能性的黑盒測試,通常包括靜態測試和動態測試兩類。靜態測試是指協議實現者向測試方提交“協議實現一致性聲明”與協議中的靜態一致性要求相比較,動態測試是運行測試集對DUT(Device under Test)進行測試。
協議一致陛測試包括三個階段:第一階段是測試生成,為特定協議產生獨立于所有協議實現的抽象測試集;第二階段是測試實現,把抽象測試集中的測試例轉換成可執行的測試例;第三階段為測試執行,在特定的DUT上執行測試用例。
通用網絡協議一致性測試平臺用于動態測試,也分為三個階段:第一階段是對一個指定的協議生成一個測試套集,根據協議的要求,這個測試套集可以在實現前對收發雙方進行的交互進行完全設定,或者在某些需要雙方互動(字段值需要對方的數據來進行填寫)的字段給出一個變量。第二階段是按照這個測試套集對被測設備的協議實現(DUT)進行黑盒測試;第三個階段是通過比較DUT的實際輸出與預期輸出的異同,從而實現網絡協議的一致性測試。
通用平臺對各個不同的協議可支持生成不同的測試套集,分別進行測試和一致性對比。
2 通用平臺組成
通用平臺由控制臺、測試機兩部分組成。其中控制臺負責配置測試套集的策略、測試結果的統計分析及人機交互;測試機負責生成或接收測試套集,然后生成測試流發送到被測設備;并從被測設備接收測試數據;然后將數據返回控制臺。如圖1所示。
?
2.1 控制臺
控制臺硬件可以是一臺PC機,其網卡與測試機控制口相連。在高層通過人機對話界面,對協議、算法及網絡參數進行配置,對測試套集生成模式及使用方式等進行策略設置;通過驅動程序與測試機進行通信,向測試機輸入測試套集的參數配置,并接收測試機輸出的結果;并對測試結果進行統計分析。
軟件模塊包括界面模塊、協議接口模塊、算法接口模塊、網絡接口模塊、通信模塊、統計分析模塊。
2.2 測試機
2.2.1 硬件組成
測試機硬件采用高性能、高可靠性、高穩定性的嵌入式多核處理器平臺。配置高速100M、1000M自適應以太網口,可擴展的大容量DDR2內存和大容量的Flash空間。硬件框圖如圖2所示,多核處理器平臺的核心部件為CPU、CPLD和FPGA。
?
CPU主要用于接收來自控制機的網絡、協議、算法參數并生成實現網絡協議的測試套集,它可以直接對被測設備發送或者接收測試流,或者通過自定義總線將測試套集存儲在SRAM中,以實現快速的測試;它還實現對外圍配套器件的控制,包括DDR、Flash、噪聲、日歷時鐘以及譯碼等。CPU的PCI總線轉換出一個網絡,作為測試機的控制口,與控制機進行通信。CPU的串口總線接出一個RS232串口。
CPLD主要用于CPU啟動、數據總線的譯碼、FPGA邏輯配置等處理。
FPGA主要用于網絡接口處理和測試流發送、接收。首先,它提供兩個軟MAC核與PHY芯片相連實現DUT的發送和接收網口;其次,它提供另外兩個軟MAC核可以允許CPU直接與DUT進行發送接收測試流;也可以調用外部SRAM實現測試流發送接收等操作。FPGA和CPU之間有兩種不同的通訊接口,一種是數據總線接口,用于傳輸基本配置信息、狀態信息和SRAM數據;一種是RGMII網口接口,用于傳輸測試流數據。
2.2.2 軟件組成
CPU軟件使用裁剪的定制LINUX操作系統,內核版本2.6以上,配IPv4協議棧等。CPU要實現的軟件功能比較多,軟件模塊有以下幾個:
(1)與控制機的通信模塊:負責接收來自控制機的網絡、協議、算法參數以及其他命令,并回送測試結果。
(2)算法實現模塊:實現協議中需要的算法。
(3)套集生成模塊:這是實現一個協議所需要的IP包的集合,包括發送的IP包和接收的IP包。每個不同的協議將產生定制的套集。每個套集的主要流程就是生成指定的某個協議所需IP包的過程。但是在協議的實現上,會按照協議的要求對相應的字段進行邊界測試、正確性和錯誤測試。并體現在不同的測試流里。
(4)測試流發送模塊:將存儲在SRAM里的測試流發送至DUT。
(5)測試流接收模塊:接收DUT發出的響應流,存儲在SRAM里。
(6)結果的協議分析模塊:CPU接收到測試流后,將其按照協議要求拆分成各個字段,并與協議進行比對分析。并將結果發送到與控制機的通信模塊。
在發送IP包和接收IP包有關聯的情況下,比如IV向量由接收包傳遞過來后才能確定下一包發送的內容,必須由CPU直接進行測試。
在協議比較簡單,發送IP包和接收IP包沒有關聯的情況下,可以將測試套集裝載在SRAM里,由FPGA進行測試。這種情況下,也可以測試DUT的性能。
3 工作流程與測試內容
協議一致性測試的主要過程包括:標準測試套集生成、測試執行、結果分析三個部分。標準測試套集是通過分析協議來確定要測試的各個方面,從而產生測試用例的集合;測試執行為測試用例的運行過程;接收數據分析是對測試結果進行分析,從而得到協議實現與協議說明是否一致的判決。如圖3所示。
?
協議一致性測試的內容包括三個方面:一是協議格式、完整性的一致性測試,能夠正確識別收到的協議,并且按照協議做出正確的響應,響應的格式要與協議一致。二是測試協議中包含的算法的正確性。要能夠正確地加密和解密相應的信息。三是要對協議的實現過程包括握手、協商等進行一致性測試。
4 測試套集的生成方法
測試套集的生成方法理論上有可達性分析與測試序列兩種。可達性分析是從一個初始狀態出發,生成并檢查系統能夠到達的所有狀態。測試序列方法是針對FSM中的單個轉移生成的測試子序列,再將這些測試子序列連接起來作為完整的測試序列。
通用平臺對測試套集的生成方法不作限定。因為網絡協議千差萬別,套用某一個方法是不現實的。因此不論什么方法,即使是手工方法,只要能夠正確地詮釋協議,生成的測試套集符合套集接口要求都可以直接輸入到平臺上實施測試。套集可以是完整的協議測試,也可以是某個協議測試套集的一部分。這樣大大方便了協議測試套集的調試與測試。
通用平臺也提供了一種測試套集的生成方法。就是將協議的分析過程體現在控制機的界面上,在界面上對協議進行分割,確定轉移點和子序列,并給出子序列的數據范圍。然后CPU的套集生成軟件將這些轉移點和子序列通過組合連接起來,形成測試套集。
5 結束語
在協議一致性測試的需求越來越迫切的同時,協議的功能越來越強,復雜性也越來越高,使得測試難度越來越大。通用平臺的硬件設計為以后協議的發展做好了可持續發展的基礎,而軟件設計也將提供開源和穩定的接口以供協議的發展,增加對協議的支持。
評論
查看更多