張雪豐 楊甲森 蘇舉 劉明潔 徐聰 張鑫宇
(1 中國科學(xué)院國家空間科學(xué)中心, 北京 100190) (2 中國科學(xué)院大學(xué), 北京 100049)
在以激勵-響應(yīng)為基本原理[1]的有效載荷地面綜合測試任務(wù)中,測試序列是任務(wù)執(zhí)行的直接驅(qū)動,也是有效載荷測試需求分析與測試任務(wù)執(zhí)行之間的橋梁。在自動化、智能化測試需求的驅(qū)動下,測試序列描述對象的范圍,正在從早期的控制指令、驅(qū)動時刻,拓展覆蓋到綜合判讀知識[2],順序、條件、循環(huán)等測試流程控制[3]。
測試序列建模是實現(xiàn)模型驅(qū)動測試系統(tǒng)研制的前提,圍繞測試序列建模與生成方法,眾多航天單位開展了相關(guān)研究并付諸于工程任務(wù)實踐。文獻[3]基于有向圖理論,采用簡單且易于理解的表格方式建立衛(wèi)星測試序列模型,并將其成功應(yīng)用于神舟飛船及多顆衛(wèi)星的測試任務(wù);文獻[4]亦基于開放數(shù)據(jù)庫互聯(lián)(Open Database Connectivity,ODBC)接口技術(shù),設(shè)計快速、智能的測試序列自動化生成方法,研制測試序列生成軟件并將之應(yīng)用于載人航天任務(wù);文獻[5]采用組態(tài)方式實現(xiàn)圖形化測試序列建模,成功應(yīng)用于嫦娥四號、實踐十號任務(wù)。上述文獻測試序列建模與生成方法,個性化特征突出,工程實用性強。其缺點在于:①未能實現(xiàn)模型規(guī)范化、標準化,不利于設(shè)備研制、總體集成、測試、國際合作等多航天單位間的信息交換。②對判讀知識、測試流程控制的表達不足,難以實現(xiàn)模型對測試系統(tǒng)研制的直接驅(qū)動。
基于可擴展標記語言的遙測遙控信息交換(XML Telemetry & Command Exchange,XTCE)標準,采用XML Schema對航天器遙測和遙控數(shù)據(jù)格式、處理方法等進行了詳細且規(guī)范化的描述[6],以其通用性和擴展性,在遙控指令生成[7]、遙測數(shù)據(jù)處理[8-9]等方面得到廣泛應(yīng)用,同時也為以遙測、遙控為基礎(chǔ)元素的測試序列標準化建模提供了可能。
本文面向航天單位間信息交換、模型驅(qū)動測試系統(tǒng)研制需求,在分析測試序列內(nèi)容的基礎(chǔ)上,以現(xiàn)有XTCE標準為基礎(chǔ),對測試序列中的控制指令、判讀知識、測試流程進行建模,提出面向測試序列的XML Schema。以該方法建模輸出的測試序列模型為基礎(chǔ),構(gòu)建測試序列執(zhí)行、綜合數(shù)據(jù)判讀、載荷運行狀態(tài)監(jiān)視等測試軟件的工程實踐結(jié)果表明:模型驅(qū)動的測試軟件面向不同測試需求可實現(xiàn)靈活重構(gòu),可有效減少測試系統(tǒng)開發(fā)成本、降低開發(fā)風險。
測試序列是在分析有效載荷等被測對象測試需求的基礎(chǔ)上,以測試大綱為綱領(lǐng)性文件,依據(jù)測試細則,對測試過程中需要執(zhí)行的遙控與注入指令、驅(qū)動時刻、預(yù)期結(jié)果、流程控制等元素進行描述的文件,是測試運行過程中的執(zhí)行文件,也是自動化測試過程中不可或缺的文件[10]。
一個典型的測試序列見表1(僅示例,非工程實際)。測試序列包含內(nèi)容說明如下。
(1)遙控、遙測是構(gòu)成測試序列的基礎(chǔ)數(shù)據(jù)。有效載荷的測試過程,是對被測對象施加外部激勵得到響應(yīng),通過分析激勵與響應(yīng)得出測試結(jié)論的過程。作為“激勵”的遙控指令與作為“響應(yīng)”的遙測數(shù)據(jù),必然是構(gòu)成測試序列的基礎(chǔ),這也是已具備遙控、遙測元數(shù)據(jù)模型基礎(chǔ)的XTCE標準,對測試序列建模具有先天優(yōu)勢的原因。
(2)測試序列中預(yù)期結(jié)果通常以判讀知識的形式體現(xiàn),判讀知識將遙控指令與遙測數(shù)據(jù)有效關(guān)聯(lián)。指令執(zhí)行的預(yù)期結(jié)果以電壓、電流、溫度、注入計數(shù)、載荷運行模式等遙測數(shù)據(jù)改變的形式呈現(xiàn),這些改變的特征包括更新為預(yù)定數(shù)值、更新至某預(yù)設(shè)區(qū)間、更新前后變化量在某預(yù)設(shè)區(qū)間等。如表1中“載荷控制器主份開”指令執(zhí)行后,遙測參數(shù)“一次電流”的增加量將在區(qū)間[0.37,0.39]。
(3)測試執(zhí)行的路徑包含順序、條件、循環(huán)等多種結(jié)構(gòu)。其中順序結(jié)構(gòu)表示測試步驟按時間順序依次執(zhí)行;條件結(jié)構(gòu)表示測試步驟執(zhí)行后根據(jù)條件選擇后續(xù)路徑分支;循環(huán)結(jié)構(gòu)表示測試步驟執(zhí)行后根據(jù)條件進行跳轉(zhuǎn),直到滿足某條件后終止。如表1中,執(zhí)行步驟7后將跳轉(zhuǎn)至步驟4,直到循環(huán)20次結(jié)束。
(4)測試的激勵不全是單指令形式,實際測試中,將若干條指令按照一定邏輯包裝起來并分配特定序號,稱為事件表。事件表中包裝的事件亦可作為測試激勵的一種,類似編程語言中的子函數(shù)調(diào)用。如表1步驟8,“中分相機模式表注入”即為步驟4~7的順序封裝,該事件激勵下遙測數(shù)據(jù)的響應(yīng)與步驟4~7全部執(zhí)行的響應(yīng)一致。
綜上,一個好的測試序列模型,需要既能支持遙測、遙控基礎(chǔ)數(shù)據(jù)的描述,同時也要支持判讀知識、測試執(zhí)行路徑多種結(jié)構(gòu)的表達,其表達方式以“可直接驅(qū)動測試系統(tǒng)研制”為宜,另外模型還要能夠支持事件的嵌套封裝。
XTCE以標準化語言對航天器遙測遙控數(shù)據(jù)進行描述,具有明顯層次化結(jié)構(gòu),易于擴展和集成。XTCE定義了遙控元數(shù)據(jù)、遙測元數(shù)據(jù)以及通用數(shù)據(jù)類型[11-13]。其中遙測元數(shù)據(jù)是對航天器遙測數(shù)據(jù)的描述,定義參數(shù)類型、參數(shù)、數(shù)據(jù)流、算法、容器、消息等內(nèi)容,如圖1所示。遙控元數(shù)據(jù)是對航天器遙控數(shù)據(jù)的描述,含有參數(shù)類型、參數(shù)、消息、數(shù)據(jù)流、算法、數(shù)據(jù)段類型和元指令,如圖2所示,其中元指令是對遙控指令的進一步描述。

圖2 XTCE遙控元數(shù)據(jù)模型
2.2.1 事件的定義
借鑒包應(yīng)用標準(Packet Utilization Standard,PUS)中事件的概念[14],本文將測試過程中一條或多條可能重復(fù)執(zhí)行的遙控或注入指令,按照順序、條件、循環(huán)等控制邏輯組織形成的序列稱為一個事件,如圖3所示。從事件的定義可見,一個事件包含一條指令或多條指令,某一事件可與其他指令或事件一起,組成更大的事件,亦即事件是支持嵌套封裝的。事件與事件、指令之間的聚合關(guān)系,便于在測試序列執(zhí)行過程中,將整個序列全部拆分為“指令”這一基本可執(zhí)行單元的組合,有效減少測試序列執(zhí)行軟件多級數(shù)據(jù)管理帶來的復(fù)雜度。

圖3 事件統(tǒng)一建模語言類圖
如圖3所示,事件的定義是以“指令”為基礎(chǔ)的。每條“指令”除了包含常規(guī)的執(zhí)行時間(含絕對時間、相對時間)、當前執(zhí)行指令(XTCE標準元指令類型)之外,為了描述指令執(zhí)行的順序、循環(huán)、條件等路徑結(jié)構(gòu)、指令執(zhí)行判讀知識,還定義了后置指令集合、分支條件集合,以及判讀知識集合。其中后置指令集合與分支條件集合的元素分別是XTCE標準元指令、知識(見2.2.2節(jié)),兩個集合元素數(shù)量一致,以實現(xiàn)后置指令與分支條件的一一映射。判讀知識集合元素用于判定指令是否成功,或指令執(zhí)行后載荷運行狀態(tài)是否正常。只有在集合中所有知識均滿足的情況下,該指令才判定為執(zhí)行成功或載荷運行狀態(tài)正常。
2.2.2 知識的定義
將測試過程中,用于判定遙控或注入指令是否執(zhí)行、星載設(shè)備當前狀態(tài)是否正常的判據(jù)稱為知識。其中載荷狀態(tài)判據(jù)表現(xiàn)為一個或多個遙測參數(shù)的條件表達式組合,遙控或注入指令是否執(zhí)行的判據(jù)表現(xiàn)為遙控指令與一個或多個遙測參數(shù)的關(guān)聯(lián),如圖4所示。

圖4 知識統(tǒng)一建模語言類圖
知識的屬性包含與之關(guān)聯(lián)的指令、遙測、判讀規(guī)則等元素。其中判讀規(guī)則包括5種類型。
(1)定值類型:指令c執(zhí)行后,與之相關(guān)聯(lián)的遙測參數(shù)yi將變化為定值vinew,即
yi(c)=vinew
(1)
(2)區(qū)間類型:指令c執(zhí)行后,與之相關(guān)聯(lián)的遙測變量yi將變化為某區(qū)間的值[vimin,vimax],即
yi(c)=vimin+ε(vimax-vimin)
(2)
式中:ε為0到1之間的隨機數(shù)。
(3)增量數(shù)值類型:指令c執(zhí)行前對應(yīng)時刻t1,執(zhí)行后對應(yīng)時刻t2,與之相關(guān)聯(lián)的遙測變量yi的數(shù)值變換之差為定值vi,即
yi(c,t2)-yi(c,t1)=vi
(3)
(4)增量區(qū)間類型:指令c執(zhí)行前對應(yīng)時刻t1,執(zhí)行后對應(yīng)時刻t2,與之相關(guān)聯(lián)的遙測變量yi的數(shù)值變換之差在區(qū)間[vimin,vimax]之間,即
yi(c,t2)-yi(c,t1)=vimin+ε(vimax-vimin)
(4)
(5)多變量線性相關(guān)類型:指令c執(zhí)行后,與之相關(guān)聯(lián)的多個遙測參數(shù)y0(c),y1(c),…,yn(c)之間有線性相關(guān)關(guān)系,ki為遙測變量yi的系數(shù),即
(5)
2.2.3 測試序列模型
XTCE標準已有的遙測、遙控元數(shù)據(jù)模型和基本數(shù)據(jù)類型比較完備地給出了遙測參數(shù)、遙控指令、基本數(shù)據(jù)類型和相關(guān)算法的定義。為了覆蓋測試序列中的判讀知識、流程控制,擴展出的測試序列數(shù)據(jù)模型由名稱、附加信息、遙控數(shù)據(jù)、遙測數(shù)據(jù)、知識元數(shù)據(jù)、事件元數(shù)據(jù)組成,如圖5所示(圖5中灰色陰影部分為XTCE固有內(nèi)容,無陰影部分為本文擴展內(nèi)容)。

圖5 測試序列統(tǒng)一建模語言類圖
其中,名稱用于描述測試序列的名稱、版本等信息;附加信息包含測試序列的測試對象、測試目的、被測載荷計數(shù)、發(fā)送指令計數(shù)、判定遙測計數(shù)等信息;遙控數(shù)據(jù)引用XTCE遙控元數(shù)據(jù),用于描述當前測試序列使用的指令信息,其中指令名稱為該指令唯一標識;遙測數(shù)據(jù)引用XTCE遙測元數(shù)據(jù),用于描述當前測試涉及的遙測參數(shù),其中參數(shù)名稱為該參數(shù)唯一標識;知識元數(shù)據(jù)是判讀知識的集合,判讀知識是在遙測參數(shù)、遙控元指令的基礎(chǔ)上構(gòu)建的,知識的類型主要包含2.2.2節(jié)所述的5種;事件元數(shù)據(jù)是事件的集合,事件包含一條或多條指令,以分支條件、后置指令等元素將指令或事件組織為測試序列,其中各指令之間通過指令標識符、后置指令、分支條件構(gòu)成順序、條件、循環(huán)等多種結(jié)構(gòu)。
上述描述信息所建立的測試序列模型通過引用XTCE遙測、遙控元數(shù)據(jù)的形式支持遙測、遙控基礎(chǔ)元素的描述,定義知識元數(shù)據(jù)支持判讀知識的表達,定義事件元數(shù)據(jù)支持測試執(zhí)行路徑的表達,同時考慮了事件的嵌套封裝,較好地滿足了第1節(jié)中評判一個“好”的測試序列模型的標準。
2.3.1 模型Schema文件設(shè)計
模型以XML Schema形式表達,引用現(xiàn)有XTCE模型的遙測元數(shù)據(jù)模型和遙控元數(shù)據(jù)模型,在建立Schema文件時需要進行相應(yīng)標注以示引用。本文使用類型命名(NamedTypes)方法建立模型,以增加模型所定義元素的可重用性。將測試序列模型的命名空間命名為XML Test Sequence,簡稱XTS,模型主要代碼如圖6所示。

圖6 測試序列模型主要代碼
XTS模型定義了主元素“TestSequence”,以類型命名的方式進一步定義其內(nèi)容,TestSequence類型是以命名描述(即名稱)為基礎(chǔ)的擴展,除名稱外還含有附加信息、遙測數(shù)據(jù)、遙控數(shù)據(jù)、知識元數(shù)據(jù)、事件元數(shù)據(jù)。由于遙測數(shù)據(jù)和遙控數(shù)據(jù)引用了XTCE遙測元數(shù)據(jù)、遙控元數(shù)據(jù),在XTS模型中沒有進一步定義,知識元數(shù)據(jù)和事件元數(shù)據(jù)則在XTS模型中定義。XTS模型主要分為4個部分,上述代碼展示了XTS模型的頂層結(jié)構(gòu),剩余3個部分分別為知識模型、事件模型和通用類型集合。通用類型集合中定義了一些通用類型,例如“時間類型”,該類型規(guī)定時間有相對時間和絕對時間兩種格式。知識模型定義知識元數(shù)據(jù)以及知識模型相關(guān)的類型數(shù)據(jù)。事件模型定義事件元數(shù)據(jù)以及事件模型相關(guān)的類型數(shù)據(jù)。
2.3.2 測試序列模型實例
以表1所示測試序列為例,表1中包含了順序、條件、循環(huán)結(jié)構(gòu),使用本文設(shè)計的測試序列模型對表1的測試序列進行描述如圖7所示,圖7中用到的指令和參數(shù)是對表1中的各指令和參數(shù)的簡單標識,以指令名稱的形式表示指令標識,以參數(shù)名稱的形式表示參數(shù)標識。

圖7 測試序列模型生成文件示例
以本文方法建模輸出的測試序列模型為驅(qū)動,設(shè)計有效載荷地面綜合測試系統(tǒng)如圖8所示。得益于本文方法對測試流程控制、指令判讀知識描述的規(guī)范化,測試軟件可直接將方法生成的測試序列模型轉(zhuǎn)換為軟件內(nèi)部數(shù)據(jù)結(jié)構(gòu)、邏輯控制,驅(qū)動測試軟件針對不同測試序列模型的靈活重構(gòu),有效解決傳統(tǒng)自然語言描述方法中,不同建模人員對同一信息描述存在差異,導(dǎo)致計算機無法提取確定信息的問題。與測試序列模型相關(guān)的軟件主要包括測試序列執(zhí)行、綜合數(shù)據(jù)判讀、載荷狀態(tài)監(jiān)視等3個軟件。其中測試序列執(zhí)行軟件關(guān)注模型中的事件及構(gòu)成事件的指令,依據(jù)指令執(zhí)行時間、分支條件、后置指令逐條發(fā)送指令碼字;綜合數(shù)據(jù)判讀軟件關(guān)注判讀知識,并根據(jù)遙控、遙測數(shù)據(jù)判定目前測試數(shù)據(jù)與知識的符合性;載荷狀態(tài)監(jiān)視軟件關(guān)注知識關(guān)聯(lián)的遙控、遙測數(shù)據(jù),將具有強關(guān)聯(lián)關(guān)系的遙控指令、遙測參數(shù)采用鏈表方式進行管理,以二者關(guān)聯(lián)的方式將其呈現(xiàn)給載荷用戶。

圖8 模型驅(qū)動測試系統(tǒng)軟件架構(gòu)設(shè)計
目前,基于XTCE標準擴展測試序列模型驅(qū)動的有效載荷地面綜合測試系統(tǒng)已經(jīng)應(yīng)用于天問一號環(huán)繞器、著陸巡視器的測試任務(wù)中,正在應(yīng)用于天問二號等后續(xù)深空探測任務(wù),與傳統(tǒng)方法相比其特點見表2。工程實踐結(jié)果表明:采用本文方法模型的有效載荷地面綜合測試系統(tǒng),測試序列執(zhí)行、綜合數(shù)據(jù)判讀、載荷狀態(tài)監(jiān)視等3個軟件代碼無需更改即可支持不同型號任務(wù),可有效減少測試系統(tǒng)的開發(fā)成本,提升測試系統(tǒng)可靠性。

表2 本文測試序列模型特點
現(xiàn)有XTCE規(guī)范為以遙測、遙控為基礎(chǔ)數(shù)據(jù)的測試序列標準化建模提供了可能。本文在系統(tǒng)梳理測試序列建模內(nèi)容的前提下,引入“知識元數(shù)據(jù)”、“事件元數(shù)據(jù)”概念,對測試序列中的判讀知識、測試流程控制進行了建模。工程實踐結(jié)果表明:本文方法輸出模型驅(qū)動的測試序列執(zhí)行、綜合數(shù)據(jù)判讀、載荷狀態(tài)監(jiān)視軟件,可實現(xiàn)對不同測試需求的快速響應(yīng)。后續(xù)可開展工作如下。
(1)進一步豐富測試序列包含知識的類型?,F(xiàn)有工作關(guān)注指令判讀和遙測判讀知識,尚未包含諸如遙測數(shù)據(jù)統(tǒng)計特征(如均值、極值、方差等)判讀知識、指令間約束(如成對匹配、先后順序約束等)知識等。
(2)基于測試序列建模方法,研制測試序列編輯工具軟件,對遙測參數(shù)、注入指令、判讀知識、流程控制等測試序列相關(guān)組成提供輔助編輯工具,使其不僅支持XML文件格式檢查,同時支持數(shù)據(jù)內(nèi)容一致性的檢查,亦可支持生成對應(yīng)XML文件的文本表格文件,用于測試細則的評審和測試報告的編寫。
(3)經(jīng)歷多型號任務(wù)后,查漏補缺,進一步提升模型驅(qū)動有效載荷地面綜合測試系統(tǒng)的可重構(gòu)、可重用。