彭 琿,張曉娜,張 翔,李曉利
(復(fù)雜電磁環(huán)境效應(yīng)國家重點(diǎn)實(shí)驗(yàn)室,河南 洛陽 471003)
傳統(tǒng)的機(jī)載顯示器嵌入式軟件測試方法是一個型號研制一套專用的測試設(shè)備和配套的測試軟件。當(dāng)型號越來越多時,就需要越來越多的適用于不同型號的測試設(shè)備,而且不同測試設(shè)備研發(fā)由于技術(shù)繼承性較弱而導(dǎo)致成本難以降低,同時還需要開發(fā)多套不同的測試軟件。對測試人員而言,還必須花時間熟練掌握各種測試設(shè)備和測試軟件,學(xué)習(xí)成本和時間成本成倍增加。
面對上述問題,國內(nèi)外從事機(jī)載顯示器嵌入式軟件開發(fā)與測試的研究人員,一直在研究設(shè)計(jì)一套基于接口的嵌入式軟件通用測試方案。本文研究了嵌入式軟件測試環(huán)境通用開發(fā)平臺ETest的架構(gòu),設(shè)計(jì)實(shí)現(xiàn)了針對1553B總線接口測試的半實(shí)物仿真測試環(huán)境。
為了滿足嵌入式系統(tǒng)測試實(shí)時性要求,嵌入式系統(tǒng)測試環(huán)境開發(fā)平臺ETest采用主流的上下位機(jī)架構(gòu),如圖1所示。
圖1 ETest體系架構(gòu)圖
測試主機(jī)上的軟件主要完成測試設(shè)計(jì)、測試監(jiān)控與分析等;實(shí)時處理機(jī)上的軟件主要完成測試運(yùn)行。ETest的主要軟件包括測試設(shè)計(jì)軟件、測試執(zhí)行服務(wù)軟件、測試執(zhí)行客戶端軟件、設(shè)備資源管理軟件以及測試輔助軟件工具包等。
其設(shè)計(jì)目標(biāo)主要包括:
(1)支持對測評任務(wù)的管理,可以進(jìn)行圖形化建模,支持仿真模型的開發(fā)、調(diào)試、編譯和下載等,可以根據(jù)需要加載數(shù)據(jù)源文件,并進(jìn)行測試腳本的設(shè)計(jì)和實(shí)現(xiàn);
(2)提供測試運(yùn)行所需的軟件資源,實(shí)現(xiàn)仿真模型的加載和運(yùn)行、測試腳本的執(zhí)行、測試數(shù)據(jù)的接收和發(fā)送、測評任務(wù)的調(diào)度等;
(3)不但可以使用多種控件實(shí)時查看測試狀態(tài)及被測系統(tǒng)收發(fā)的數(shù)據(jù),還可以實(shí)時發(fā)送在線腳本,同時能對軟件測試中產(chǎn)生的測試數(shù)據(jù)進(jìn)行事后分析。
為了開展對機(jī)載顯示器嵌入式軟件的全面測試,需要在ETest測試主機(jī)上仿真模擬外圍的各種接口設(shè)備和傳感器的信息交換過程,同時利用集成在實(shí)時處理機(jī)上的各種接口卡,模擬產(chǎn)生這些接口設(shè)備和傳感器的物理信號,并與被測件進(jìn)行交互,驅(qū)動被測件內(nèi)部嵌入式軟件的運(yùn)行。測試主機(jī)通過實(shí)時處理機(jī)控制操作這些模擬設(shè)備,發(fā)出指令到被測試的機(jī)載顯示器,并接收被測機(jī)載顯示器的反饋指令。
基于1553B總線的機(jī)載顯示器嵌入式軟件測試環(huán)境如圖2所示。
圖2 基于1553B總線的機(jī)載顯示器嵌入式軟件測試環(huán)境
在軟件平臺方面,ETest設(shè)計(jì)實(shí)現(xiàn)了通用的測試環(huán)境,主要包括測試主機(jī)和實(shí)時處理機(jī)。測試主機(jī)軟件主要包括測試任務(wù)管理、仿真模型設(shè)計(jì)、數(shù)據(jù)源加載、測試腳本設(shè)計(jì)和實(shí)現(xiàn)等主要模塊;實(shí)時處理機(jī)軟件主要包括測試運(yùn)行控制、測試腳本解釋、實(shí)時數(shù)據(jù)處理、接口驅(qū)動等主要功能模塊;測試監(jiān)控軟件主要實(shí)現(xiàn)測試監(jiān)控、測試數(shù)據(jù)收集、測試結(jié)果分析、在線腳本發(fā)送等功能。
測試前,進(jìn)行測試任務(wù)的管理、交聯(lián)環(huán)境模型的建立、數(shù)據(jù)源模型的加載、測試腳本的編寫、顯示面板的構(gòu)建、收集數(shù)據(jù)的定制;測試中,進(jìn)行測試運(yùn)行控制、實(shí)時數(shù)據(jù)處理、數(shù)據(jù)收集、測試監(jiān)控、在線腳本發(fā)送、測試腳本解釋等;測試后,進(jìn)行測試結(jié)果分析、數(shù)據(jù)回放和圖形化分析。
測試交聯(lián)環(huán)境設(shè)計(jì)就是在測試主機(jī)上利用測試設(shè)計(jì)軟件建立被測設(shè)備外圍交聯(lián)環(huán)境,主要進(jìn)行外圍交聯(lián)設(shè)備的仿真、接口協(xié)議和仿真通道的配置、仿真通道和物理通道的映射等?;?553B總線的機(jī)載顯示器的測試交聯(lián)環(huán)境建模如圖3所示。
圖3 基于1553B總線的機(jī)載顯示器嵌入式軟件測試交聯(lián)環(huán)境
ETest提供數(shù)據(jù)協(xié)議描述語言DPD描述應(yīng)用層協(xié)議。協(xié)議由字段組成,字段提供了位、字節(jié)、字符串、數(shù)組、校驗(yàn)等多種類型。應(yīng)用層協(xié)議由接口控制文件詳細(xì)描述,每一個具體項(xiàng)目都會制定特定的接口控制文件。
圖形監(jiān)控設(shè)計(jì)是用來在用例執(zhí)行的輸入用例數(shù)據(jù)和顯示測試結(jié)果數(shù)據(jù)的。監(jiān)控種類常用的有按鈕、開關(guān)、bull燈、文本編輯框、儀表盤、數(shù)字表、曲線圖等。
腳本設(shè)計(jì)就是用例設(shè)計(jì),以實(shí)現(xiàn)自動化測試。腳本采用Python語言編寫。在腳本中直接引用協(xié)議字段,進(jìn)行賦值等操作;直接用ETest提供的協(xié)議讀寫API,實(shí)現(xiàn)協(xié)議的自動組包和解包操作。腳本可進(jìn)行輸入輸出信息的打印輸出,可以打開并執(zhí)行監(jiān)控。
完成測試準(zhǔn)備后,在上位機(jī)上啟動測試,實(shí)時處理機(jī)運(yùn)行實(shí)時測試用例并向上位機(jī)反饋測試數(shù)據(jù)。本文中,共模擬了機(jī)載顯示器設(shè)備的1553B、AD、DA、DI、DO、視頻、電源接口等多種接口,模擬了與機(jī)載顯示器設(shè)備有信息/信號交互關(guān)系的計(jì)算機(jī)、開關(guān)量、程控電源、數(shù)字視頻模塊、模擬視頻模塊、模擬量和非標(biāo)設(shè)備、串口設(shè)備等多種外部設(shè)備,總共完成了14種接口協(xié)議的正常、異常、邊界測試,發(fā)現(xiàn)被測機(jī)載顯示器嵌入式軟件設(shè)計(jì)缺陷3個、內(nèi)存溢出缺陷2個,有效提高了被測試機(jī)載顯示器的穩(wěn)定性可靠性。
本文深入分析了利用ETest構(gòu)建機(jī)載顯示器嵌入式軟件測試環(huán)境的關(guān)鍵技術(shù)問題。通過執(zhí)行機(jī)載1553B總線顯示器嵌入式軟件的測試結(jié)果表明,本研究設(shè)計(jì)的ETest可用于開發(fā)基于不同類型接口的嵌入式軟件測試,實(shí)現(xiàn)對被測件實(shí)時、動態(tài)、閉環(huán)、非侵入式的自動化測試。