• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      通用接口協(xié)議測試工具設(shè)計*

      2018-11-07 02:22:16易冬陽韓春艷
      通信技術(shù) 2018年11期
      關(guān)鍵詞:測試工具狀態(tài)機測試用例

      趙 鑫,岳 青,易冬陽,韓春艷

      (成都國信安信息產(chǎn)業(yè)基地有限公司,四川 成都 610000)

      0 引 言

      接口測試是測試系統(tǒng)組件間接口的一種測試,主要用于檢測外部系統(tǒng)與系統(tǒng)之間以及內(nèi)部各個子系統(tǒng)之間的交互點。測試的重點是要檢查數(shù)據(jù)的交換、傳遞和控制管理過程,以及系統(tǒng)間的相互邏輯依賴關(guān)系等。嵌入式系統(tǒng)在開展接口測試和密碼綜合性測試時[1],主要受到兩個因素影響。一是被測接口的通信協(xié)議各異,發(fā)送和接收的協(xié)議數(shù)據(jù)需結(jié)合通信協(xié)議,人工逐個字節(jié)地比對協(xié)議數(shù)據(jù)內(nèi)容,才能清楚數(shù)據(jù)內(nèi)容含義,同時響應數(shù)據(jù)需編寫相應的測試代碼進行測試。該方式對測試人員專業(yè)編程設(shè)計能力有較高要求,同時受測試周期長、測試資源占用率高的影響,對整體的測試任務(wù)形成了技術(shù)和效率瓶頸。二是被測系統(tǒng)的設(shè)備接口形態(tài)不同,更換被測設(shè)備需要同時更換測試設(shè)備,“一測一換”增加了測試的繁瑣度。

      通用接口協(xié)議測試工具以“一對多”“集成化”“自動化”為目標,使用可配置的XML文件格式描述通信接口協(xié)議,并利用PXI總線易擴展、熱插拔、高可靠性的特性進行設(shè)計,實現(xiàn)了對E1、K、RS232C、RS422、USB3.0、以太網(wǎng)接口及相關(guān)協(xié)議的一致性測試和接口性能的可靠性測試。針對不同接口的測試,只需讀取配置完成的XML格式的接口協(xié)議和用例流程驅(qū)動配置文件,就可進行字節(jié)級別的協(xié)議數(shù)據(jù)解析和自動應答,整體壓縮了測試周期,簡化了測試環(huán)境,突破了效率瓶頸。

      1 系統(tǒng)架構(gòu)

      通用接口協(xié)議測試工具總體分為三部分——上位機、下位機和接口驅(qū)動程序。通用接口協(xié)議測試工具設(shè)計過程采用模塊化、層次化、可擴展的設(shè)計理念,構(gòu)建了靈活開放的技術(shù)體系架構(gòu)。當后期新增測試對象時,只需制作新接口模塊適配單元和編制新的協(xié)議,編寫狀態(tài)機操作代碼,就可完成新接口的測試。工具系統(tǒng)架構(gòu)如圖1所示。

      圖1 工具系統(tǒng)架構(gòu)

      1.1 上位機設(shè)計

      上位機的運行環(huán)境為Window7,運行框架為.net FrameWork 4.0,采用C#語言開發(fā)。上位機技術(shù)框架的選擇基于兩點:一是Windows 7包含.NET Framework4.0托管代碼編程模型,上位機的運行無需安裝其他Windows組件;二是C#是一種面向?qū)ο蟮恼Z言,可以用來構(gòu)建在.NET Framework上運行的各種應用程序。它與Windows軟件(Win32 DLL)交互,可以通過一個“互操作”的過程來實現(xiàn)。

      上位機總體分為5個部分——界面管理模塊、用例驅(qū)動器、載荷生成器、協(xié)議解析器和結(jié)果分析器,模塊關(guān)系如圖2所示。

      圖2 上位機模塊關(guān)系

      上位機各模塊工作以用例驅(qū)動器為核心。用例驅(qū)動器、協(xié)議解析器、結(jié)果分析器三個核心模塊使用了可擴展標記語言(XML)描述其存儲結(jié)構(gòu)??蓴U展標記語言(XML)具有可擴展性、結(jié)構(gòu)化和靈活性,同時具備定義嚴格、語法明確、表示方便等特點[2],使得XML語言非常適合用來描述三個核心模塊。用XML語言描述和組織測試用例,用例驅(qū)動器讀取用例文件驅(qū)動測試流程運行,能夠使測試數(shù)據(jù)、測試流程、接口協(xié)議相分離,有利于測試數(shù)據(jù)的維護與重用。

      界面管理模塊主要以圖形化的界面提供給用戶使用,包括接口協(xié)議編輯、用例編輯、載荷數(shù)據(jù)管理和測試結(jié)果顯示等功能。

      載荷生成器用于生成流程中使用的載荷,載荷根據(jù)指定的協(xié)議模板填充到測試數(shù)據(jù)指定位置。載荷生成有兩種方式:一是由用戶定義生成規(guī)則(隨機或是重復);二是直接導入測試數(shù)據(jù)文件。載荷支持4種格式:二進制、十六進制、八進制、BCD碼。

      1.2 接口驅(qū)動程序設(shè)計

      上位機和下位機的通信依賴于接口驅(qū)動程序。接口驅(qū)動程序使用C++語言編寫,編譯生成動態(tài)鏈接庫提供給上位機調(diào)用。動態(tài)鏈接庫負責上位機和下位機通信專有協(xié)議數(shù)據(jù)解析,包括5個接口——設(shè)備卡檢測、設(shè)備卡打開、發(fā)送數(shù)據(jù)、接收數(shù)據(jù)、設(shè)備卡關(guān)閉。

      1.3 下位機設(shè)計

      下位機是通用多接口協(xié)議的測試設(shè)備,包括零槽、機箱和接口協(xié)議測試卡。設(shè)計框圖如圖3所示。

      圖3 下位機總體設(shè)計

      零槽和接口協(xié)議測試卡通過機箱背板的CPCI接口進行通信。零槽為主控制板,搭載Windows7操作系統(tǒng)和控制軟件。機箱為設(shè)備供電,并提供分別與零槽和接口協(xié)議測試卡通信連接的CPCI接口。接口協(xié)議測試卡提供被測設(shè)備電源進行協(xié)議通信、數(shù)據(jù)處理和控制軟件進行交互。

      零槽包括第一PXI總線[3]模塊、主控模塊、USB接口模塊和以太網(wǎng)接口模塊。第一PXI總線模塊通過CPCI接口與機箱背板連接;主控模塊通過印刷電路與第一PXI總線模塊、USB接口模塊和以太網(wǎng)接口模塊的輸入輸出端相連,主控模塊采用Windows7操作系統(tǒng),安裝控制軟件;USB接口模塊通過USB口與外部設(shè)備連接;以太網(wǎng)模塊接口模塊通過以太網(wǎng)口實現(xiàn)網(wǎng)絡(luò)訪問,實現(xiàn)10/100/1 000 Mb/s自適應。

      接口協(xié)議測試卡包括第二PXI總線模塊、數(shù)據(jù)處理與接口控制模塊、接口模塊和電源模塊。第二PXI總線模塊通過CPCI接口與機箱背板連接;數(shù)據(jù)處理與接口控制模塊包括接口配置單元和數(shù)據(jù)處理單元,接口配置單元和數(shù)據(jù)處理單元通過印刷電路與接口模塊相連;接口配置單元設(shè)置當前測試所需接口類型和通信速率,數(shù)據(jù)處理單元將數(shù)據(jù)進行臨時存儲,然后封裝處理后發(fā)送,確保正常通信;接口模塊包括異步串行接口單元、同步串行接口單元、IO控制接口單元、總線接口單元、顯示屏接口單元、自定義鍵盤接口單元、音頻接口單元和基帶接口單元;接口模塊的一端通過定制線纜與被測設(shè)備連接,另一端通過印刷電路與數(shù)據(jù)處理與接口控制模塊連接;電源模塊通過印刷電路與CPIO接口連接,將機箱電源轉(zhuǎn)換為+5 V、+12 V、5 V、-10 V、-12 V五種電源,由定制線纜連接至被測設(shè)備[4]。

      2 關(guān)鍵技術(shù)實現(xiàn)

      2.1 接口協(xié)議模板實現(xiàn)

      接口協(xié)議模板使用XML語言描述,用戶在界面管理模塊實現(xiàn)自定義。接口協(xié)議模板定義如圖4所示。

      圖4 接口協(xié)議模板

      標簽 1:<ProtocolTemplet></ProtocolTemplet> 模板開始和結(jié)束標記。

      name表示模板名稱。

      tstart=”1”表示載荷的開始位置(開始字節(jié)),tend=”0”表示載荷的結(jié)束位置(結(jié)束字節(jié))。

      標簽2:<P></P>關(guān)鍵字定義協(xié)議的組成。

      length用十進制表示長度,以字節(jié)為單位。Length是必須定義項,如果不具備,那么必須包含MaxLength和MinLength的定義。

      type表示類型,必須定義。Type有三種類型:FixValue(固定值)、CalcValue(計算值)和InputValue(輸入值)。

      name表示名稱,必須定義,且不重復。

      inputtype表示輸入類型。當type=”InputValue”時,定義輸入項類型。

      Inputtype有三個取值:LongInput(長文本)、ShortInput(短文本)和FileInput(文件導入)。

      rule表示計算值規(guī)則,當type=”CalcValue” 時,必須定義rule。

      rule有3種取值:FrameCount(計算幀長)、DataCount(計算target目標長度)和CRC(使用動態(tài)鏈接庫計算target目標校驗碼)。

      當 type=”CalcValue”、rule=”CRC” 時,DllName=”動態(tài)鏈接庫路徑”,F(xiàn)uncName=”函數(shù)名稱”。

      target目標標簽只針對rule為DataCount/CRC時生效。

      target為CRC時,可以計算一個區(qū)間的CRC,用target=”name3-name4”表示。

      2.2 測試用例實現(xiàn)

      測試用例主要包含用例基本信息配置、狀態(tài)機節(jié)點、配置協(xié)議和狀態(tài)機配置4個主要部分。測試用例配置示意圖如圖5所示。

      測試用例設(shè)計時,每一個狀態(tài)節(jié)點均包含一個狀態(tài)機。設(shè)計三要素為——事件、轉(zhuǎn)換狀態(tài)和操作。本設(shè)計中定義見表1。

      圖5 測試用例配置

      表1 狀態(tài)機設(shè)計要素定義

      狀態(tài)機支持的函數(shù)定義參見表2。

      所有狀態(tài)機完成定義后,形成最終的測試用例。每一測試用例使用XML格式的文件存儲,便于后續(xù)修改。

      2.3 結(jié)果分析器模板實現(xiàn)

      結(jié)果分析器模板使用XML語言描述,用于自動解析有特殊含義的載荷,方便結(jié)果顯示,易于閱讀。結(jié)果分析器模板定義如圖6所示。

      標簽說明:

      標 簽 1:<ResultDictionary></ResultDictionary>結(jié)果分析模板的開始和結(jié)束標記。

      標簽2:<Rule></Rule>字典規(guī)則,用于判斷當前接收數(shù)據(jù)所匹配的規(guī)則,并獲取對應規(guī)則下的值。

      Condition匹配當前規(guī)則的條件,如果子節(jié)點含有Conditions,則不響應此條件。值類型OP表示取包含專有協(xié)議的數(shù)據(jù)包,IP表示取專有協(xié)議的載荷。

      表2 狀態(tài)機函數(shù)定義

      圖6 結(jié)果分析器模板

      Result匹配當前規(guī)則且當前規(guī)則的子節(jié)點規(guī)則均未匹配,則將其作為接收數(shù)據(jù)所匹配的結(jié)果。

      標簽3:<param></param>:是<Rule>子節(jié)點,表示規(guī)則結(jié)果的參數(shù)。結(jié)果中含有{0},則對應替換第一個param子節(jié)點,以此類推。

      value表示當前參數(shù)對應的值。

      Constants表示對value值進行常數(shù)匹配轉(zhuǎn)換。

      標 簽 4:<Conditions></Conditions> 是 <Rule>子節(jié)點,表示當前規(guī)則的條件,與Rule的condition屬性多選一,優(yōu)先級策略是后一個Conditions優(yōu)先級大于前一個Conditions,大于Rule的condition屬性優(yōu)先級。

      Mer表示規(guī)則判斷條件,值為OR則子屬性的condition之間成立按照或條件匹配,值為AND則子屬性的condition之間成立按照且條件匹配。

      標簽5:<Condition></Condition>是<Conditions>子節(jié)點。

      exp表示當前節(jié)點的規(guī)則。

      標簽 6:<Constants></Constants> 是字典結(jié)果中定義的常量,通過指定key替換常量值。

      name常量集合名:定義當前常量集合的名稱,便于字典結(jié)果直接引用。

      標簽 7:<Constant></Constant> 是 <Constants> 子節(jié)點,定義常量集合下的一個常量name-value的映射。

      Name為常量名,常量關(guān)鍵值為key。

      value為常量對應的值。

      2.4 接口驅(qū)動程序設(shè)計實現(xiàn)

      接口驅(qū)動程序包含5個接口,使用靜態(tài)方式調(diào)用。

      (1)端口查詢:通過端口號查詢設(shè)備在線情況。

      接 口 函 數(shù):public static extern intLdxc_DeviceFind(UInt16 DeviceNumber)

      參數(shù)說明:DeviceNumber為設(shè)備端口號。

      (2)設(shè)備打開:初始化打開板卡端口對應的設(shè)備。

      接口函數(shù):public static extern int Ldxc_DeviceInit(uint index,ref uint device)

      參數(shù)說明:index為設(shè)備端口號;device為獲取設(shè)備連接詳情實體對象。

      (3)設(shè)備編號:通過端口號查詢設(shè)備編號。

      接 口 函 數(shù):public static extern int Ldxc_DeviceID(uint device,byte[]buffer)

      參數(shù)說明:device為查詢目標設(shè)備;buffer為存儲設(shè)備編號字節(jié)數(shù)組。

      (4)設(shè)備關(guān)閉:通過端口號查詢設(shè)備信息。

      接口函數(shù):public static extern int Ldxc_DeviceQuit(uint device)

      參數(shù)說明:device為關(guān)閉目標設(shè)備。

      (5)數(shù)據(jù)讀取:讀取指定目標的數(shù)據(jù)。

      接口函數(shù):public static extern int Ldxc_read(uint device,byte[] buffer,ref int len)

      參數(shù)說明:device為讀取目標設(shè)備;buffer為讀取內(nèi)容;len為數(shù)據(jù)長度。

      (6)數(shù)據(jù)發(fā)送:向指定目標發(fā)送數(shù)據(jù)。

      接口函數(shù):public static extern int Ldxc_write(uint device,byte[] buffer,int len)

      參數(shù)說明:device為發(fā)送目標設(shè)備;buffer為發(fā)送內(nèi)容;len為發(fā)送長度。

      3 結(jié) 語

      嵌入式系統(tǒng)現(xiàn)有接口測試方法存在測試數(shù)據(jù)不易模擬和分析、硬件接口形態(tài)各異、多數(shù)測試需“一測一換”等問題,嚴重影響測試效率和準確性。因此,從上位機和下位機兩個方面設(shè)計實現(xiàn)了通用多接口協(xié)議測試工具。本測試工具軟件系統(tǒng)設(shè)計使用XML可標記擴展語言描述和存儲“用例驅(qū)動器”“協(xié)議解析器”“結(jié)果解析器”三個核心模塊,能夠使測試數(shù)據(jù)、測試流程、接口協(xié)議相分離;硬件方面使用PXI總線易擴展、熱插拔、高可靠性的特性進行設(shè)計,實現(xiàn)了對E1、K、RS232C、RS422、USB3.0、以太網(wǎng)接口等多接口的集成,同時預留了CPCI-E卡便于后期新增接口類型。該測試工具不僅能大幅提高接口測試測試效率,簡化測試環(huán)境,且具備通用型和擴展性。

      今后可考慮擴充接口協(xié)議模型,增強其適應性,并將測試工具和測試管理過程相結(jié)合,把簡單的測試結(jié)果輸出文件轉(zhuǎn)換為符合測試規(guī)范的測試報告文檔集。

      猜你喜歡
      測試工具狀態(tài)機測試用例
      邊緣智力兒童及其智力測試工具的研究進展
      基于SmartUnit的安全通信系統(tǒng)單元測試用例自動生成
      基于有限狀態(tài)機的交會對接飛行任務(wù)規(guī)劃方法
      Http并發(fā)連接測試工具
      基于混合遺傳算法的回歸測試用例集最小化研究
      福祿克推出先進的連接式測試工具系統(tǒng)
      基于依賴結(jié)構(gòu)的測試用例優(yōu)先級技術(shù)
      FPGA設(shè)計中狀態(tài)機安全性研究
      黑龍江科學(2011年2期)2011-03-14 00:39:36
      基于反熔絲FPGA的有限狀態(tài)機加固設(shè)計
      軟件回歸測試用例選取方法研究
      霞浦县| 昌乐县| 湖州市| 睢宁县| 衡阳市| 清河县| 叙永县| 木兰县| 宁远县| 东源县| 建德市| 健康| 抚宁县| 会东县| 固原市| 玉田县| 泰顺县| 金阳县| 确山县| 上饶县| 泸水县| 阿尔山市| 沙田区| 中山市| 皋兰县| 东明县| 开封市| 曲周县| 江华| 辛集市| 山阴县| 新干县| 绥化市| 东乡| 中西区| 漯河市| 绥宁县| 长泰县| 新绛县| 合川市| 衡水市|