摘 要:為簡化對空間有效載荷這一復(fù)雜系統(tǒng)的集成測試工作,引入基于模型的系統(tǒng)工程(model-based sytems engineering, MBSE)思想,提出一種基于系統(tǒng)建模語言(system modeling language, SysML)的測試路徑自動生成方法。所提方法所需的信息全部來源于載荷設(shè)備在數(shù)字設(shè)計階段所構(gòu)建的SysML數(shù)字模型。首先,對載荷的SysML活動圖進行預(yù)處理;之后,根據(jù)載荷運行特性與活動圖特性構(gòu)建測試路徑搜索模型,并以此提出改進蟻群算法以搜索全部測試路徑;最后,基于SysML用例圖在全部測試路徑中進一步進行搜索,從而獲取指定功能的測試路徑。以空間燃燒科學(xué)實驗載荷為例展示所提方法的詳細過程,并對算法性能進行分析。在200次重復(fù)實驗中,所提方法所得測試路徑的覆蓋率達到100%,最大迭代次數(shù)為27。實驗結(jié)果表明,所提方法不會產(chǎn)生大量的無效測試路徑,大大提高測試路徑規(guī)劃工作的效率。
關(guān)鍵詞: 系統(tǒng)建模語言; 測試路徑生成; 蟻群算法; 空間有效載荷
中圖分類號: V 416.8 文獻標志碼: A""" DOI:10.12305/j.issn.1001-506X.2024.10.19
Method for automatic generation of space effective payload test paths based on SysML
JIN Xin1, HE Yufeng1,*
(1. Technology and Engineering Center for Space Utilization, Chinese Academy of Sciences, Beijing 100094, China;
2. University of Chinese Academy of Sciences, Beijing 100049, China)
Abstract: To simplify the integration testing of the complex system of space effective payloads, a method for automatically generating test paths based on system modeling language (SysML) is proposed by introducing the concept of model-based systems engineering (MBSE). The required information is all derived from the SysML digital models constructed during the digital design stage of the payload. Firstly, the SysML activity diagram of the payload is preprocessed. Secondly, the test path search model is constructed based on the characteristics of the payload and the activity diagram, and an improved ant colony algorithm is proposed to search for all the test paths. Finally, based on the SysML use case diagram, a further search is performed among all the test paths to obtain the test paths for the specified functions. The detailed procedure of the proposed method is demonstrated with the example of a space combustion science experiment payload, and the performance of the proposed algorithm is analyzed. In 200 repeated experiments, the coverage rate of the test paths obtained by the proposed method is 100%, and the maximum number of iterations is 27. The experimental result showes that the proposed method can bring the efficiency of test paths planning to the next level without the generation of a large amount of unefficient test paths.
Keywords: system modeling language (SysML); test path generation; ant colony algorithm; space effective payload
0 引 言
空間有效載荷系統(tǒng)是完成航天任務(wù)的重要分系統(tǒng),一般由專業(yè)儀器設(shè)備、信息裝置、電能配給設(shè)備等組成。隨著空間任務(wù)的不斷深化,系統(tǒng)逐漸復(fù)雜,系統(tǒng)故障率也隨之增大[14],所以為保證空間有效載荷的安全運行,測試工作越來越重要[510]。在測試工作中,測試用例起指導(dǎo)作用,而測試路徑又是其中的關(guān)鍵。然而,有效載荷各模塊在工作上同時具有關(guān)聯(lián)性和獨立性,在行動的執(zhí)行上又同時具有順序性和并發(fā)性,所以測試路徑的確定十分繁瑣,依靠傳統(tǒng)人工編寫方式的缺點逐漸顯露,如高耗時、不準確、高度依賴測試人員經(jīng)驗等。
為解決上述問題,開發(fā)自動化的測試技術(shù)是十分必要的[9,1112]。在國內(nèi)的載人航天工程中,測試人員從神舟一號開始按模塊化結(jié)構(gòu)開發(fā)自動化測試系統(tǒng),逐漸發(fā)展出現(xiàn)有的總控測試設(shè)備(overall check out equipment, OCOE)分系統(tǒng)專用測試設(shè)備(special check out equipment, SCOE)兩級分布式測試系統(tǒng)[1314]。國外多個國家也開發(fā)了航天領(lǐng)域的自動測試系統(tǒng),如美國的EPOCH(Extended Planning and Operations Concept for Hazardous Systems)-2000、法國的ETOL(European Test and Operations Language)和歐洲航天局的SCOS(Spacecraft Control and Operations System)-2000等。然而,目前的國內(nèi)外測試系統(tǒng)都因缺少對被測設(shè)備的行為等特性的恰當描述而不能十分有效地規(guī)劃測試路徑。對此,國內(nèi)在航天的軟件測試方面已經(jīng)引入基于模型的測試方法[1517],其中包括使用統(tǒng)一建模語言(unified modeling language, UML)對軟件進行測試路徑生成,但在硬件設(shè)備的功能測試方面卻沒有足夠的探索。對象管理組織(Object Management Group, OMG)基于UML開發(fā)了適用于系統(tǒng)工程的系統(tǒng)建模語言(system modeling language, SysML),其可以規(guī)范完整地描述系統(tǒng)的行為[1822]。因此,本文選擇引入SysML進行建模,并基于此開發(fā)有效載荷的測試路徑自動生成技術(shù)。
目前,在其他領(lǐng)域中已經(jīng)有一些基于SysML的測試方法的研究[2330],通常是對被測系統(tǒng)活動圖的所有分支進行搜索從而生成所有測試路徑。研究表明,一般的搜索方法即可完成搜索,但當活動圖中存在回路結(jié)構(gòu)時,一些傳統(tǒng)的搜索方法則會失效,如深度優(yōu)先搜索(depth first search, DFS)算法會因回路結(jié)構(gòu)而不斷擴展節(jié)點,從而陷入無限循環(huán)。對此,Li等[25,28]提出對回路結(jié)構(gòu)進行預(yù)先拆解的方法。該類方法是有效的,但是對于模塊間耦合關(guān)系十分復(fù)雜的系統(tǒng)來說,在拆解過程中極易發(fā)生錯誤,這將導(dǎo)致無效甚至錯誤測試路徑的生成。為克服該問題,本文提出一種改進蟻群算法,以在無需拆解模型的情況下完成對全部路徑的搜索。此外,本文還引入例圖模型進一步實現(xiàn)指定功能測試路徑的生成。
綜上所述,本文提出一種基于SysML數(shù)字模型的空間有效載荷測試路徑自動生成方法,該方法能夠為空間有效載荷提供有效的測試路徑規(guī)劃,從而提高測試效率,降低時間與人力成本,滿足簡化高復(fù)雜性系統(tǒng)集成測試工作的需求。
1 基于SysML的空間有效載荷建模
1.1 空間有效載荷的特點
空間有效載荷系統(tǒng)是龐大的復(fù)雜系統(tǒng),其關(guān)鍵組成部分有配電器、實驗裝置和信息裝置,每個實驗載荷內(nèi)部又由供電單元、實驗單元和信息單元組成,如圖1所示。
隨著空間應(yīng)用任務(wù)涉及領(lǐng)域的不斷擴大,需要執(zhí)行的任務(wù)類型也逐漸豐富,有效載荷的類型也隨之多樣化,其參數(shù)往往涉及到多種學(xué)科,包括光、電、熱、流體、通信等,又由于其運行時各模塊之間的復(fù)雜關(guān)聯(lián)性,采用SysML來對其建立模型以簡化問題是十分優(yōu)良的選擇。
1.2 空間有效載荷建模
SysML是由OMG對UML2.0的子集進行重用和擴展而提出的系統(tǒng)工程標準建模語言,為系統(tǒng)建模者提供了如圖2所示的9種圖的完整語義[3132]。
活動圖是一種行為圖,是系統(tǒng)的一種動態(tài)視圖,其可以說明行為和事件隨著時間推移的發(fā)生序列。因此,本文通過活動圖對有效載荷的可執(zhí)行行動及其順序進行建模描述,并以活動圖模型作為測試路徑生成的基礎(chǔ)模型。繪制活動圖所需的常用基本元件及其在有效載荷建模中所表達的含義如表1所示。
用例圖可以說明系統(tǒng)提供的服務(wù)信息以及利益相關(guān)者的信息,通過建立用例圖模型可以描述空間有效載荷內(nèi)各模塊子系統(tǒng)與其所負責執(zhí)行的功能之間的關(guān)聯(lián)關(guān)系以及各功能間的包含關(guān)系。繪制用例圖的常用基本元件及其在有效載荷建模中所表達的含義如表2所示。
1.3 SysML模型信息交互
常用的支持SysML建模的工具有EA(enterprise architect)、Rhapsody、MagicDraw等[32],其均支持將SysML模型導(dǎo)出為可擴展標記語言(extensible makeup language, XML)標準格式文件的交互方式。
XML文件中存儲了SysML模型中所有元件的名稱、坐標、幾何形狀、連接關(guān)系、從屬關(guān)系等信息,此外還賦予了每一個元件一個獨有的身份碼xmi.id。因此,通過讀取XML文件就可以準確地獲取模型的構(gòu)成信息。
2 測試路徑生成方法
2.1 測試路徑生成邏輯
圖3展示了測試路徑生成的整體邏輯流程:首先,讀取載荷的SysML活動圖模型;然后,預(yù)處理活動圖模型,得到簡化模型和黑盒行動;之后,分別對簡化模型和黑盒行動搜索所有測試路徑,并將結(jié)果合并,從而獲取載荷完整的全部測試路徑。生成的全部測試路徑將被儲存,當需要對特定功能進行測試時,則需要先讀取載荷的SysML用例圖模型,然后根據(jù)讀取的信息從全部測試路徑表中選取匹配的功能測試路徑。
2.2 SysML模型信息提取
第1.3節(jié)介紹了目前常見的SysML建模工具所支持的模型信息交互方式,可以將SysML模型文件轉(zhuǎn)化并導(dǎo)出為XML格式文件。針對導(dǎo)出的XML文件,采用文檔對象模型(document object model, DOM)解析技術(shù)對其進行解析,從而完成對SysML用例圖模型和活動圖模型中所蘊含的信息的提取,并將其中的關(guān)鍵信息分別整理為如表3和表4所示的信息列表,這些信息列表將支撐后文中測試路徑搜索模型的搭建和搜索規(guī)則的設(shè)置。
2.3 活動圖模型預(yù)處理
活動圖有時會包含如圖4所示的分叉匯合并發(fā)結(jié)構(gòu),其與回路結(jié)構(gòu)不同,是相對獨立的,并且有明顯的起始和終止標識,即成對的分叉節(jié)點和匯合節(jié)點,所以可以很容易且完整地將一個并發(fā)結(jié)構(gòu)分離出來。對于活動圖中的分叉匯合并發(fā)結(jié)構(gòu),可以先將其按圖4所示的過程簡化為一個等效的黑盒行動E,然后分別對等效處理后的簡化模型和黑盒行動內(nèi)部進行測試路徑搜索,最后將其結(jié)果進行組合合并,即可得到全部測試路徑[2528]。
2.4 簡化模型的全部測試路徑搜索
簡化模型中往往會包含回路結(jié)構(gòu),對此類模型進行全部測試路徑的搜索是本文的研究重點,詳細的內(nèi)容將在第3節(jié)中介紹。
2.5 黑盒行動內(nèi)部測試路徑搜索
黑盒行動內(nèi)部需要獨立于簡化模型進行測試路徑的搜索。對此,本文在保持結(jié)構(gòu)中控制流所限制的順序邏輯的情況下,采用完全排列算法來生成測試路徑[28]。
2.6 全部測試路徑生成
在分別獲取簡化模型和黑盒行動內(nèi)部的全部測試路徑后,將由黑盒行動得到的測試路徑以組合的方式替換由簡化模型得到的測試路徑中的黑盒行動,至此就得到空間有效載荷完整的全部測試路徑。
2.7 功能測試路徑生成
在實際的空間有效載荷的測試任務(wù)中,出于對時間成本的考慮,測試人員并不會嚴格執(zhí)行每一條測試路徑,而是針對關(guān)鍵的功能展開測試工作,因此需要從全部測試路徑中選取出與待測功能對應(yīng)的功能測試路徑。
根據(jù)第1.2節(jié),通過用例圖描述有效載荷的功能與執(zhí)行模塊間的關(guān)聯(lián)關(guān)系以及功能間的包含關(guān)系。因此,可以通過用例圖模型獲知執(zhí)行待測功能的所有模塊,之后只需將僅包含這些模塊所具有的行動的路徑從全部測試路徑表中篩選出來,即可得到對應(yīng)的功能測試路徑。
3 簡化模型的全部測試路徑搜索
3.1 簡化模型的測試路徑搜索模型構(gòu)建
基于SysML活動圖模型的全部測試路徑搜索問題可以具體化為對初始節(jié)點到結(jié)束節(jié)點之間所有符合設(shè)備運行邏輯的通路的搜索問題,可以近似地將其類比為對單一出入口迷宮的求解問題,但求解的目標不再僅僅是尋找到一條路徑,而是尋找到所有滿足約束條件的路徑。因此,本文所構(gòu)建的測試路徑搜索模型為由SysML活動圖中的元件按其在圖5中的幾何位置映射得到有向圖迷宮,映射關(guān)系如圖5所示,幾何位置信息由表4中的節(jié)點列表獲取。
由前文可知,簡化模型的測試路徑搜索問題已經(jīng)轉(zhuǎn)化為帶約束的幾何路徑搜索問題。而蟻群算法恰恰被廣泛應(yīng)用于最短路徑的規(guī)劃問題,與傳統(tǒng)遍歷搜索算法相比,蟻群算法能在更短的時間內(nèi)完成路徑的求解。因此,本文選擇對基本蟻群算法進行改進,使其適用于搜索簡化模型全部測試路徑的應(yīng)用場景。由于在改進后的算法中,螞蟻由原本分泌信息素的特征變成消耗信息素的特征,因此稱其為反蟻群算法。
搜索時的約束條件如下:① 測試路徑需符合載荷設(shè)備內(nèi)各模塊的實際運行邏輯限制,否則為無效測試路徑;② 測試路徑需要在滿足測試需求的情況下,盡量簡短,即含有的無關(guān)或重復(fù)節(jié)點的數(shù)量最小。
3.2 反蟻群算法搜索測試路徑的邏輯流程
圖6展示了反蟻群算法搜索測試路徑的邏輯流程:首先,輸入表4所示的信息和測試路徑搜索簡化模型,并設(shè)置初始化信息。然后,逐個放置每一只螞蟻在起始點,根據(jù)反蟻群算法轉(zhuǎn)移決策策略逐步將其轉(zhuǎn)移至終止點,每次轉(zhuǎn)移均會消耗路徑上的信息素。每當?shù)竭_終點的螞蟻數(shù)量達到蟻群個體總數(shù)NumAnt時,選取符合約束的路徑組成該次迭代的測試路徑表。比較所有已獲取的測試路徑表,根據(jù)目標和約束選取最優(yōu)測試路徑表;當最優(yōu)測試路徑表不再改變時,終止迭代計算,此時的最優(yōu)測試路徑表即為生成的全部測試路徑表。
3.3 初始化信息設(shè)置
(1) 起始點和終止點設(shè)置
將表4中初始結(jié)束節(jié)點列表中存儲的初始行動節(jié)點和結(jié)束行動節(jié)點分別設(shè)置為螞蟻的起始點和終止點。
(2) 啟發(fā)式信息
在基本蟻群算法中,為了鼓勵對最短路徑的搜索,將每次轉(zhuǎn)移路程的倒數(shù)設(shè)置為啟發(fā)式信息。然而,本文目的是要實現(xiàn)測試路徑的全覆蓋搜索,為了避免遺漏邊緣的行動節(jié)點,本文將啟發(fā)式信息設(shè)置為各節(jié)點到終點的距離:
ηi=diEnd(1)
式中:diEnd表示第i節(jié)點到終止點的直線距離。
3.4 轉(zhuǎn)移決策策略
(1) 禁忌表和可達表設(shè)置
在執(zhí)行空間有效載荷的某些功能時,存在先執(zhí)行一個模塊的部分行動后需暫時切換至其他模塊執(zhí)行行動、再切換回原模塊執(zhí)行剩余行動的情況。在活動圖中,是否切換行動由決斷節(jié)點判斷決定,但由于決斷節(jié)點的判斷條件沒有嚴格的語義規(guī)范,所以在測試路徑自動搜索過程中難以讓計算機自動化地通過決斷節(jié)點的判斷條件來正確地選擇下一步執(zhí)行的行動,因此有時會造成無效測試路徑的產(chǎn)生。例如:假設(shè)某活動圖模型中,B模塊執(zhí)行行動的過程中可切換至A模塊的關(guān)機行動。此時,若缺乏決斷節(jié)點的判斷,就可能生成在A模塊未被執(zhí)行開機行動的情況下執(zhí)行關(guān)機行動的無效路徑。
為了解決上述問題,本文設(shè)置螞蟻搜索的禁忌表,螞蟻在特定情況下被禁止到達禁忌表內(nèi)的節(jié)點。禁忌表的設(shè)置規(guī)則是:當螞蟻沒有途經(jīng)過泳道起始節(jié)點列表中的激活節(jié)點時,該泳道列表內(nèi)的行動節(jié)點均被寫入禁忌表中,直至螞蟻經(jīng)過激活節(jié)點時,該激活節(jié)點所在的泳道內(nèi)的行動節(jié)點均被從禁忌表中刪除。激活節(jié)點的設(shè)置需要依據(jù)安全運行準則和設(shè)備的運行邏輯。
在引入禁忌表后,螞蟻在某節(jié)點的實際可達節(jié)點為當前節(jié)點對應(yīng)的可訪問列表的子列表刪除其與禁忌表中共有的節(jié)點后得到的結(jié)果,稱這些節(jié)點的集合為當前節(jié)點的搜索可達表。
(2) 決策機制
由于搜索可達表的引入,需對螞蟻在當前節(jié)點的決策機制進行修改。
對基本蟻群算法的轉(zhuǎn)移概率計算公式[33]進行修改,修改后螞蟻m在k時刻從節(jié)點i向節(jié)點j轉(zhuǎn)移的概率計算公式如下:
Pmij=[τij]α·[ηi]β∑j∈allowik[τij]α·[ηi]β, j∈allowik
0, jallowik(2)
式中:ηi為啟發(fā)函數(shù);τij為信息素濃度值;α為信息素重要程度因子;β為啟發(fā)函數(shù)重要程度因子;allowik為在k時刻i節(jié)點的搜索可達表。
在計算得到當前節(jié)點向搜索可達表中所有節(jié)點轉(zhuǎn)移的概率后,引入輪盤賭的方法來最終選擇下一訪問的行動節(jié)點,具體如下。
首先,計算螞蟻m由當前節(jié)點i選擇前往搜索可達表中各節(jié)點的選擇概率:
p(j)=Pmij∑lNlnPmiln, ln∈allowim,k(3)
式中:j為搜索可達表中的某個節(jié)點;Pmij表示螞蟻m由i向j的轉(zhuǎn)移概率;ln為搜索可達表中的第n個節(jié)點;N為搜索可達表中節(jié)點的總數(shù)。
然后,計算每個節(jié)點j的累積概率和數(shù)組A:
qj=∑jl1p(ln), ln∈allowim,k(4)
Aj=qj-randj(5)
式中:randj為由j個0~1之間的隨機數(shù)按從小到大排列組成的隨機數(shù)組。
最后,A中第一個大于零的數(shù)對應(yīng)的節(jié)點即為下一個轉(zhuǎn)移節(jié)點。
引入輪盤賭算法來輔助決策是為了在決策中引入一定的隨機性,從而盡量避免一些偏執(zhí)的決策。這些偏執(zhí)決策是由一些在多個功能中都需要被執(zhí)行的節(jié)點造成的。引入一定的隨機性后,偏執(zhí)決策的概率會被降低,以此來鼓勵螞蟻對更多未探索的路徑進行搜索。
3.5 信息素更新方式
(1) 信息素負反饋更新機制
基本蟻群算法中信息素的更新是正反饋機制,即每只螞蟻增強途經(jīng)路徑上的信息素濃度,這有助于搜索最短路徑[33]。然而,本文的目標是探索出全覆蓋測試路徑,所以根據(jù)第3.4節(jié)所提出的轉(zhuǎn)移決策策略,為了鼓勵螞蟻對未途經(jīng)過的路徑進行探索,將更新方式修改為負反饋機制,即螞蟻途經(jīng)過的路徑的信息素會被減少n%,同時信息揮發(fā)因子的影響由減少信息素濃度修改為增加信息素濃度,得到反蟻群算法信息素更新公式如下:
τij(k+1)=(1+ρ)τij(k)+Δτij(k)(6)
Δτij(k)=-n%·τij(k), 當螞蟻經(jīng)過i到j(luò)
0, 其他(7)
式中:τij(k)為當前i到j(luò)路徑上的信息素濃度;τij(k+1)為更新后i到j(luò)路徑上的信息素濃度;ρ∈(0,1)為信息素揮發(fā)因子;Δτij(k)表示在k時刻螞蟻對i到j(luò)路徑上信息素濃度的影響。
(2) 信息素實時更新
在基本蟻群算法中,當一代蟻群中的所有螞蟻全部到達終點后才會更新信息素。為了滿足本文任務(wù)需求,將更新方式修改為每當一只螞蟻完成一次轉(zhuǎn)移后就更新該次轉(zhuǎn)移路段上的信息素。這使得每只螞蟻自身和之前螞蟻的歷史途經(jīng)路徑均會影響到該螞蟻當前的轉(zhuǎn)移決策,從而引導(dǎo)其沿未探索過的路徑進行轉(zhuǎn)移,同時也能夠引導(dǎo)螞蟻不會無限次地進入回路結(jié)構(gòu)。
3.6 最優(yōu)測試路徑列表構(gòu)建
為了構(gòu)建滿足約束條件的最優(yōu)測試路徑表,需要在每次迭代結(jié)束后對搜索到的路徑列表進行兩次處理。
(1) 在每一代蟻群搜索得到的測試路徑表測試路徑t中,若有多條測試行動節(jié)點覆蓋相同的路徑,則只保留最短的一條路經(jīng)。
(2) 每當產(chǎn)生新一代的測試路徑表t時,將其與之前的所有測試路徑進行比較,若其所具有的路徑條數(shù)最多且總途經(jīng)節(jié)點數(shù)最少,則將其記為最優(yōu)測試路徑表。
3.7 終止條件設(shè)置
反蟻群算法的搜索終止條件如下。
(1) 每一代蟻群搜索的終止條件:該代蟻群中的所有螞蟻均到達終止點。
(2) 迭代的終止條件:隨著迭代次數(shù)的增加,最優(yōu)測試路徑表不再改變。
3.8 反蟻群算法優(yōu)勢分析
以圖7所示的一個單回路結(jié)構(gòu)為例,定性地闡述反蟻群算法的優(yōu)勢。根據(jù)前文的介紹,對該結(jié)構(gòu)的測試路徑搜索就是要找出S0到S1之間的所有通路。
若采用傳統(tǒng)DFS進行測試路徑的搜索,搜索的過程會出現(xiàn)如圖8所示的情況:無限次擴展A節(jié)點,即不斷重復(fù)步驟1和步驟2。這將導(dǎo)致測試路徑的搜索過程無法終止。DFS可以通過設(shè)置檢測循環(huán)來避免無限擴展,即當進行到步驟3時,將這一步擴展出的重復(fù)節(jié)點A剪去,但是該方法在避免了DFS陷入無限擴展的同時,使得回路結(jié)構(gòu)中的行動節(jié)點被忽視,因此該方法不適用于求解有效載荷測試路徑的搜索問題。
然而,本文所提出的反蟻群算法可以解決上述問題。在對圖7模型進行搜索時,假設(shè)第一只螞蟻隨機選擇了沿S0、L0、A、L1、L3、B、L4、A、L1轉(zhuǎn)移并到達決策點,此時路徑L0、L1、L3和L4上的信息素已經(jīng)被減弱,由于所有路徑上的初始信息素濃度是一致的,因此此時L2的信息素濃度會大于L3,這就導(dǎo)致該螞蟻會有更大的概率選擇L2路徑走出回路結(jié)構(gòu),即使該螞蟻由于輪盤賭引入的隨機性而繼續(xù)選擇了L2,這也會進一步減小L2路徑上信息素的濃度,從而降低螞蟻下一次選擇L2的概率,鼓勵其走出回路結(jié)構(gòu)。雖然該方法下有小概率出現(xiàn)螞蟻重復(fù)進入回路結(jié)構(gòu)的情況,但是這些含有重復(fù)冗余的路徑會在第3.6節(jié)所提及的處理流程中被與其具有同樣測試節(jié)點覆蓋情況但所含節(jié)點數(shù)量最少(即僅經(jīng)過一次回路結(jié)構(gòu))的路徑替代。
4 實例驗證
4.1 空間燃燒科學(xué)實驗載荷組成
圖9為SysML模塊定義圖,展示了空間燃燒科學(xué)實驗載荷的關(guān)鍵組成??臻g燃燒科學(xué)實驗載荷主要由3個單元組成:信息單元、實驗單元和供電單元。其中,實驗單元根據(jù)燃燒實驗任務(wù)需求設(shè)計,由6個模塊組成:光學(xué)診斷模塊、燃燒模塊、過濾模塊、氮氣模塊、燃料劑模塊和氧化劑模塊。
4.2 空間燃燒科學(xué)實驗載荷SysML模型
圖10為空間燃燒科學(xué)實驗載荷的SysML活動圖,其詳細地描述了空間燃燒科學(xué)實驗載荷的可執(zhí)行行動,其中每一個泳道均與圖9中的模塊對應(yīng)。圖10不僅展示了圖9中各模塊負責執(zhí)行的行動,也展示了各模塊之間在運行時的切換邏輯。
燃燒科學(xué)實驗載荷執(zhí)行一次點火實驗的過程可簡述如下:燃燒實驗裝置啟動,燃燒實驗單元加電,燃燒信息單元工作,光學(xué)診斷設(shè)備(相機)配置,氮氣系統(tǒng)開啟并自檢,燃料劑開始供給并按需配置,氮氣系統(tǒng)按需進行環(huán)境稀釋,氧化劑開始供給并按需配置,相機開始采集圖像,電熱絲移動至點火點,電熱絲點火,電熱絲復(fù)位,相機停止采集,燃料劑停止供給并關(guān)閉閥門,氧化劑停止供給并關(guān)閉閥門,氮氣系統(tǒng)關(guān)閉并斷電,過濾模塊將燃燒室內(nèi)殘留廢氣過濾,相機將采集信息轉(zhuǎn)存至硬盤,相機斷電,信息單元停止數(shù)據(jù)采集,信息單元將數(shù)據(jù)下行,燃燒裝置斷電。
從上述點火實驗的過程可以看出,在一次燃燒點火實驗中,氮氣系統(tǒng)的部分行動被多次執(zhí)行,存在回路結(jié)構(gòu)。此外,多個模塊所具有的行動也并不是一次性連續(xù)地被全部執(zhí)行,而是存在模塊間切換執(zhí)行的情況。因此,該模型適用于驗證本文所提方法的有效性。
圖11為空間燃燒科學(xué)實驗載荷的用例圖,其展示了該實驗載荷具有的主要功能及其與執(zhí)行模塊的對應(yīng)關(guān)系,其中在集成測試中須測試的關(guān)鍵功能有:配置氮氣、配置氧化劑、配置燃料劑、配置燃燒實驗氣體環(huán)境、觀察實驗情況和實施燃燒點火實驗。
4.3 SysML活動圖預(yù)處理
圖12所示是圖10中活動圖的簡化過程,將其中光學(xué)診斷模塊中的兩處分叉匯合并發(fā)結(jié)構(gòu)分別用F1和F2兩個黑盒行動代替。
為了方便后文中的闡述,對所有的行動進行了編號,如表5所示。
4.4 全部測試生成
首先,根據(jù)第3節(jié)介紹的方法對燃燒科學(xué)實驗載荷的活動圖簡化模型進行全部測試路徑的搜索,得到的結(jié)果如下。
(1) A1→A3→A18→A19→A20→A21→A22→A23→A16→A17→A4→A2。
(2) A1→A3→A4→A2。
(3) A1→A3→A24→A25→A26→A27→A28→A29→A16→A17 →A4→A2。
(4) A1→A3→A30→A31→A32→A33→A24→A25→A26→A27→A28→A29→A34→A35→A36→A37→A16→A17→A4→A2。
(5) A1→A3→A5→A6→A7→A4→A2。
(6) A1→A3→A5→F1→A8→A11→A12→A13→A14→A15→A9→A10→F2→A6→A7→A4→A2。
(7) A1→A3→A30→A31→A32→A33→A34→A35→A36→A18→A19→A20→A21→A22→A23→A31→A32→A33→A24→A25→A26→A27→A28→A29→A34→A35→A36→A37→A16→A17→A4→A2。
(8) A1→A3→A5→F1→A8→A9→A10→F2→A6→A7→A4→A2。
(9) A1→A3→A30→A31→A32→A33→A34→A35→A36→A37→A16→A17 →A4→A2。
(10) A1→A3→A30→A31→A32→A33→A34→A35→A36→A18→A19→A20→A21→A22→A23→A31→A32→A33→A34→A35→A36→A37→A16→A17→A4→A2。
(11) A1→A3→A5→F1→A30→A31→A32→A33→A34→A35→A36→A18→A19→A20→A31→A32→A33→A24→A25→A26→A8→A9→A21→A22→A23→A27→A28→A29→A34→A35→A36→A37→A16→A17→A10→F2→A6→A7→A4→A2。
(12) A1→A3→A5→F1→A30→A31→A32→A33→A34→A35→A36→A18→A19→A20→A31→A32→A33→A24→A25→A26→A8→A11→A12→A13→A14→A15→A9→A21→A22→A23→A27→A28→A29→A34→A35→A36→A37→A16→A17→A10→F2→A6→A7→A4→A2。
然后,通過完全排列算法對黑盒行動F1和F2進行測試路徑的搜索,得到的結(jié)果如下。
F1:
(1) 相機1加電→相機1配置→相機2加電→相機2配置。
(2) 相機1加電→相機2加電→相機1配置→相機2配置。
(3) 相機1加電→相機2加電→相機2配置→相機1配置。
(4) 相機2加電→相機2配置→相機1加電→相機1配置。
(5) 相機2加電→相機1加電→相機2配置→相機1配置。
(6) 相機2加電→相機1加電→相機1配置→相機2配置。
F2:
(1) 相機1斷電→相機2斷電。
(2) 相機2斷電→相機1斷電。
將黑盒行動F1和F2的全部測試路徑以排列組合的方式并入到簡化模型的全部測試路徑當中,得到的結(jié)果即為完整的測試路徑。
4.5 特定功能測試路徑生成
以“配置氮氣”和“實施燃燒點火實驗”兩個功能為例展示空間燃燒科學(xué)實驗載荷特定功能測試路徑的生成過程。
(1) “配置氮氣”測試路徑生成
根據(jù)圖11所示的用例圖模型可知支持供給功能的模塊有氮氣模塊、供電單元和過濾模塊。再根據(jù)圖10所示的活動圖模型可知這些模塊包含的行動有A3、A4、A16、A17、A30、A31、A32、A33、A34、A35、A36、A37。從全部測試路徑中匹配出僅含有這些行動節(jié)點以及初始節(jié)點A1和結(jié)束節(jié)點A2的路徑,就得到了氮氣供給功能的測試路徑,結(jié)果為路徑(9)。
(2) “實施燃燒點火實驗”測試路徑生成
根據(jù)用例圖模型可知“實施燃燒點火實驗”功能包含3個下一級子功能:“配置燃燒實驗氣體環(huán)境”“觀察實驗情況”和“執(zhí)行燃燒操作”,繼續(xù)查找用例圖可知實施燃燒點火實驗包含全部子功能,所以需要載荷內(nèi)所有模塊參與執(zhí)行。最終得到的“實施燃燒點火實驗”的功能測試路徑為路徑(12)與黑盒行動F1、F2路徑的組合合并結(jié)果。
4.6 算法性能分析
為了研究本文所提出的反蟻群算法對全部測試路徑搜索算法的性能,本文進行了200次重復(fù)實驗。
對搜索到的測試路徑進行了仔細的檢查,結(jié)果表明每一次重復(fù)實驗得到的最優(yōu)測試路徑表都100%覆蓋了所有的有效測試路徑。終止搜索的迭代次數(shù)分布情況如圖13所示,其中需要迭代10次以內(nèi)的占61.0%,最大的迭代次數(shù)為27。
最終生成的測試路徑總數(shù)為12×6×2=144條,而若采用遍歷每個決斷節(jié)點的每個支路的方式,得到的路徑總數(shù)會達到184 320(5×2×2×2×2×2×2×2×2×3×2×2)條,其中包含了大量的無效測試路徑。
結(jié)果表明,所提算法是可行且有效的,其不會生成無效測試路徑的能力大幅地縮減了測試路徑規(guī)劃工作的時間成本。
5 結(jié) 論
本文針對由于空間有效載荷的系統(tǒng)復(fù)雜性而導(dǎo)致的測試路徑編寫任務(wù)繁瑣問題,提出了一種基于SysML數(shù)字模型的測試路徑自動生成方法,主要貢獻可以概括如下:
(1) 提出基于數(shù)字模型實現(xiàn)測試路徑自動化生成的流程,其僅需要依靠空間有效載荷設(shè)備產(chǎn)品在數(shù)字設(shè)計階段所繪制的SysML圖作為模型,無需額外地為了測試路徑的生成而專門建立新模型,減輕了測試工作的負擔;
(2) 針對傳統(tǒng)搜索算法無法對含有回路結(jié)構(gòu)的模型進行測試路徑搜索的問題,提出反蟻群算法,滿足了在不拆解回路結(jié)構(gòu)的情況下就能夠搜索測試路徑的需求,避免了結(jié)構(gòu)拆解可能導(dǎo)致的錯誤;
(3) 所提方法能夠?qū)崿F(xiàn)100%的測試覆蓋率,并且不會產(chǎn)生大量的無效測試路徑,大大提高測試路徑規(guī)劃工作的效率。
參考文獻
[1] GUIBAUD A, LEGROS G, CONSALVI J L, et al. Fire safety in spacecraft: past incidents and deep space challenges[J]. Acta Astronautica, 202 195: 344354.
[2] CLARK J B. Human spaceflight accidents: the USSR/Russian space program[M]∥YOUNG L R, SUTTON J P. Handbook of bioastronautics. Cham: Springer, 2021.
[3] BARRATT M R, BAKER E S, POOL S L. Principles of clinical medicine for space flight[M]. New York: Springer, 2019.
[4] CLARK J B. Human space flight mishaps and incidents: an overview[M]∥YOUNG L R, SUTTON J P. Handbook of bioas-tronautics. Cham: Springer, 2021.
[5] 呂笑慰, 王華茂, 閆金棟. 基于狀態(tài)圖的航天器測試用例設(shè)計[J]. 航天器工程, 2014, 23(6): 135140.
LYU X W, WANG H M, YAN J D. Research of statecharts-based test case design in spacecraft test[J]. Spacecraft Engineering, 2014, 23(6): 135140.
[6] SOTO L, LEWIS K, SWETERLITSCH J. Ground testing of an oxygen concentrator in a simulated International Space Station (ISS) cabin environment[C]∥Proc.of the International Confe-rence on Environmental Systems, 2023.
[7] JI X Y, LI Y Z, LIU G Q, et al. A brief review of ground and flight failures of Chinese spacecraft[J]. Progress in Aerospace Sciences, 2019, 107: 1929.
[8] MANG J L, QIU Z L, PAN W T, et al. GGTS: FPGA-based general ground test system for space-borne equipment[C]∥Proc.of the IEEE 6th International Conference on Computer and Communication Systems, 2021: 976981.
[9] WANG Y, LU X J, ZOU S C, et al. Satellite communication ground test system based on computer simulation technology[C]∥Proc.of the IEEE 3rd International Conference on Electronic Technology, Communication and Information, 2023: 18171820.
[10] MA Y X, SI C M, XING J J, et al. Ground test equipment and method for disturbance characteristics of space manipulator operations[C]∥Proc.of the 41st Chinese Control Conference, 2022: 59015904.
[11] 閆金棟, 王華茂, 李大明, 等. 基于系統(tǒng)工程的航天器專業(yè)化測試模式探索與實踐[J]. 航天器工程, 2017, 26(5): 99108.
YAN J D, WANG H M, LI D M, et al. Exploration and practice on spacecraft specialization test mode based on systems engineering[J]. Spacecraft Engineering, 2017, 26(5): 99108.
[12] XU Z F, PENG K, LI Z, et al. Design and implementation of automatic test system for multi-cabin joint test of space station[C]∥Proc.of the 34th Chinese Control and Decision Conference, 2022: 53475352.
[13] 潘順良, 趙吉明, 呂曄, 等. 我國載人航天器綜合測試技術(shù)[J]. 航天器工程, 202 31(6): 184190.
PAN S L, ZHAO J M, LYU Y, et al. China manned spacecraft integrated test technology[J]. Spacecraft Engineering, 202 31(6): 184190.
[14] YI R R, ZHANG Y L, ZHANG Z Y, et al. Research on mo-dular intelligent automatic test system for spacecraft[C]∥Proc.of the Chinese Automation Congress, 2017: 35503553.
[15] 王子豪. 基于需求模型的航天軟件測試自動化方法研究[D]. 北京: 中國運載火箭技術(shù)研究院, 2019.
WANG Z H. Research on test automation method of aerospace software based on requirement model[D]. Beijing: China Aca-demy of Launch Vehicle Technology, 2019.
[16] 殷永峰, 鄭本燾, 陸民燕, 等. 基于UML實時擴展的嵌入式軟件測試用例生成技術(shù)[J]. 系統(tǒng)工程與電子技術(shù), 201 33(3): 694699.
YIN Y F, ZHENG B T, LU M Y, et al. Research on embedded software test case generation based on real time extended UML[J]. Systems Engineering and Electronics, 201 33(3): 694699.
[17] TIAN Y, YIN B B, LI C L. A model-based test cases generation method for spacecraft software[C]∥Proc.of the 8th International Conference on Dependable Systems and Their Applications, 2021: 373382.
[18] BORKY J M, BRADLEY T H. Model based reliability systems engineering[M]. Switzerland: Springer International Publishing AG, 2019.
[19] ZHENG X C, HU X D, LU J, et al. An aircraft assembly process formalism and verification method based on semantic modeling and MBSE[J]. Advanced Engineering Informatics, 2024, 60: 102412.
[20] DELSING J, KULCSAR G, HAUGEN . SysML modeling of service-oriented system-of-systems[J]. Innovations in Systems and Software Engineering, 2024, 20: 269285.
[21] KESKIN B, SALMAN B, KOSEOGLU O. Architecting a BIM-based digital twin platform for airport asset management: a model-based system engineering with SysML approach[J]. Journal of Construction Engineering and Management, 202 148(5): 4022020.
[22] CHEN F F, ZHAO Y R, LI Z. Research on software test case generation based on SysML[C]∥Proc.of the International Symposium on Intelligent Robotics and Systems, 2023: 173177.
[23] YANG X Y, ZHANG J, ZHOU S, et al. Generating test scenarios using SysML activity diagram[C]∥Proc.of the 8th International Conference on Dependable Systems and their Applications, 2021: 257264.
[24] BROWN G, JAIN A. Model-based test engineering-increasing the value test provides in the wide world of digital engineering[C]∥Proc.of the IEEE Autotestcon, 2023.
[25] LI H Y, WANG M, XIAO G, et al. Verification and test case development method based on civil aircraft operation scenario[J]. Aerospace Systems, 202 5(1): 6574.
[26] BACHMANN T, WAL D V D, BIJL M V D, et al. Translating EULYNX SysML models into symbolic transition systems for model-based testing of railway signaling systems[C]∥Proc.of the IEEE Conference on Software Testing, Verification and Validation, 2022: 355364.
[27] OUERDI N, AZIZI M, LANET J L, et al. EMV card: generation of test cases based on SysML models[J]. IERI Procedia, 2013, 4: 133138.
[28] YIN Y F, XU Y Q, MIAO W K, et al. An automated test case generation approach based on activity diagrams of SysML[J]. International Journal of Performability Engineering, 2017, 13(6): 922936.
[29] XU Y Q, WU L B. An automatic test case generation method based on SysML activity diagram[C]∥Proc.of the IOP Confe-rence Series: Materials Science and Engineering, 2019.
[30] GAUTHIER J M. Test generation for RTES from SysML models: context, motivations and research proposal[C]∥Proc.of the IEEE 6th International Conference on Software Testing, Verification and Validation, 2013: 503504.
[31] EDITH P. SysML distilled: a brief guide to the systems modeling language[J]. Insight, 2015, 17(2): 63.
[32] FRIEDENTHAL S, MOORE A, STEINER R. A practical guide to SysML: the systems modeling language[M]. San Fransisco: Morgan Kaufmann, 2014.
[33] DORIGO M, BIRATTARI M, STUTZLE T. Ant colony optimization[J]. IEEE Computational Intelligence Magazine, 2006, 1(4): 2839.
作者簡介
金 鑫(1998—),男,碩士研究生,主要研究方向為航天器智能測試技術(shù)、故障診斷。
賀宇峰(1979—),男,研究員,博士,主要研究方向為計算機應(yīng)用、自動測試。