,,
(中國航空綜合技術(shù)研究所,北京 100028)
基于軟件仿真技術(shù)的外源性故障注入方法研究
高虎,李海峰,趙剛
(中國航空綜合技術(shù)研究所,北京100028)
針對當(dāng)前復(fù)雜系統(tǒng)測試性試驗中存在的無法模擬外部條件性存在的設(shè)備故障、外部輸入輸出故障模式單一等故障注入問題,定義了外源性故障的概念;針對外源性故障具有的功能邏輯和運行場景特性、故障源繁雜特性、模擬難度大成本高特性、總線交聯(lián)特性,總結(jié)了外源性故障注入的基本要求;提出了一種面向外總線復(fù)雜應(yīng)用數(shù)據(jù)仿真的外源性故障注入方法,面向總線應(yīng)用層數(shù)據(jù),從復(fù)雜系統(tǒng)的高級應(yīng)用邏輯出發(fā),模擬復(fù)雜系統(tǒng)交聯(lián)環(huán)境、使用方式等故障行為,建立自動化的實時仿真故障注入環(huán)境,通過全數(shù)字仿真模型模擬交聯(lián)環(huán)境的行為,進(jìn)一步通過模型輸入、輸出或模型參數(shù)的改變,實施總線高級行為的故障注入;最后闡述了測試性試驗中的外源性故障注入實施方案,分析了該方法的關(guān)鍵技術(shù)和環(huán)境構(gòu)建思路,制定了外源性故障注入試驗的實施流程。
測試性;故障注入;仿真技術(shù);外源性故障
裝備復(fù)雜系統(tǒng)往往具有功能性能復(fù)雜、外部輸入輸出條件不可遍歷、故障模式具有邏輯性和時序性等特點[1]。而目前國內(nèi)外已有的故障注入方法均主要針對硬件電路,按照一定的邏輯組合從管腳、導(dǎo)線等電路連接部位注入指定故障模式。一般可歸納為以下幾種方法:針對管腳等電勢進(jìn)行故障注入的方法,該方法可注入的故障模式少,覆蓋性差;通過后驅(qū)動進(jìn)行故障注入的方法,該方法通過直接改變注入點電流值達(dá)到修改邏輯電平的目的,在應(yīng)用時會受到實際負(fù)載的限制;針對專用總線進(jìn)行故障注入的方法,該方法主要局限于總線底層協(xié)議,如物理通路、總線鏈路、數(shù)據(jù)位、數(shù)據(jù)幀的故障注入;軟件故障注入方法,該方法局限于系統(tǒng)/設(shè)備自身軟/硬件失效,可信性差,隨意性強,且實施代價較高。
上述故障注入均面向單一的外部運行模式,未考慮系統(tǒng)/設(shè)備復(fù)雜行為和復(fù)雜工作條件的響應(yīng)。一方面,難以將復(fù)雜的、依賴外部激勵條件性存在的系統(tǒng)/設(shè)備內(nèi)在故障模式得到真實、有效的模擬;另一方面,無法模擬系統(tǒng)/設(shè)備外源故障模式,缺少針對系統(tǒng)/設(shè)備對外部輸入/輸出的各類異常、故障及危險情況的檢測、處理與隔離進(jìn)行驗證的有效手段。在目前已開展的型號測試性試驗工作中,軟件故障注入均僅作為備用手段,尚無實際應(yīng)用,而外部總線故障注入范圍也受到了很大局限,這也制約了復(fù)雜系統(tǒng)級裝備測試性試驗的開展[2]。
本文提出了一種面向外總線復(fù)雜應(yīng)用數(shù)據(jù)故障的外源性故障注入方法,通過仿真技術(shù)模擬外源性復(fù)雜功能、性能故障,可有效提高裝備軟件外部應(yīng)用數(shù)據(jù)故障的注入能力。
定義:受試系統(tǒng)以外的、與受試系統(tǒng)存在信息交互的交聯(lián)系統(tǒng)產(chǎn)生的故障,稱為受試系統(tǒng)的外源性故障。
受試系統(tǒng)作為裝備系統(tǒng)中的一部分,其外源性故障主要來自外部總線接口的輸入和輸出,外部總線接口的輸入和輸出的特點決定了復(fù)雜系統(tǒng)故障通常具有如下特點[3]:
1)外源性故障具有功能邏輯和運行場景特點。復(fù)雜系統(tǒng)的處理過程通常包含了復(fù)雜的邏輯或時序環(huán)節(jié),如軟件流程、復(fù)雜邏輯電路、狀態(tài)機等;復(fù)雜系統(tǒng)所要完成的系統(tǒng)任務(wù)非常繁多,覆蓋不同的工作狀態(tài)、飛機飛行階段以及外部環(huán)境條件,因此系統(tǒng)運行過程中所產(chǎn)生的故障也具有特定功能邏輯和運行場景激活的特點。
2)外源性故障具有故障源復(fù)雜繁多的特點。復(fù)雜系統(tǒng)集成了多項功能,通常會與多項外部設(shè)備相互交聯(lián),進(jìn)行數(shù)據(jù)交互與機構(gòu)控制等活動,并融合這些信息對外部交聯(lián)設(shè)備進(jìn)行監(jiān)控與管理;在這種高度交聯(lián)化的情況下,外部交聯(lián)設(shè)備各種控制和數(shù)據(jù)的異常變化,都會使研究對象產(chǎn)生不易預(yù)知的故障。
3)外源性故障的模擬難度大成本高。復(fù)雜系統(tǒng)交聯(lián)設(shè)備具有的實時性、耦合性以及存在閉環(huán)反饋等復(fù)雜特性,對復(fù)雜系統(tǒng)交聯(lián)環(huán)境故障行為的模擬難以接近真實使用場景的交聯(lián)環(huán)境。
4)外源性故障具有總線交聯(lián)特點。受試系統(tǒng)交聯(lián)設(shè)備引起的故障通過信息交互傳遞給受試系統(tǒng),使得雜系統(tǒng)總線故障具備了輸入輸出邏輯性強、交聯(lián)設(shè)備繁多和應(yīng)用場景復(fù)雜等的特性。
復(fù)雜系統(tǒng)故障注入即對復(fù)雜系統(tǒng)模擬故障行為,以實現(xiàn)對復(fù)雜系統(tǒng)某類故障處理行為的驗證。根據(jù)上述外源性故障的特點,在裝備測試性試驗中,對復(fù)雜系統(tǒng)的故障注入提出了以下的要求:
1)針對復(fù)雜系統(tǒng)總線應(yīng)用層功能邏輯故障的特點,需要提供總線數(shù)據(jù)內(nèi)容層面上的外部故障激勵施加方式,以及系統(tǒng)輸出對外部激勵響應(yīng)的采集、查看和分析;
2)針對復(fù)雜系統(tǒng)交聯(lián)環(huán)境繁多的特點,交聯(lián)設(shè)備具有的實時性、耦合性以及存在閉環(huán)反饋等復(fù)雜特性,對復(fù)雜系統(tǒng)交聯(lián)環(huán)境故障行為的模擬應(yīng)與盡可能接近真實使用場景的交聯(lián)環(huán)境建立總線故障激勵連接。
3)由于注入的故障往往受成本、安全性等因素的考慮,難以通過真實交聯(lián)設(shè)備進(jìn)行輸入,需要提供一套有效、便捷,實施代價小的交聯(lián)環(huán)境總線數(shù)據(jù)激勵和采集試驗方法,并建立相應(yīng)的試驗環(huán)境。
4)針對復(fù)雜系統(tǒng)狀態(tài)復(fù)雜、不可窮舉等特點,需要提供自動化的復(fù)雜系統(tǒng)故障注入手段。
根據(jù)外源性故障的特點及外源性故障注入要求,面向總線應(yīng)用層協(xié)議中具體傳輸?shù)臄?shù)據(jù)內(nèi)容,從復(fù)雜系統(tǒng)的高級邏輯應(yīng)用出發(fā),模擬復(fù)雜系統(tǒng)交聯(lián)環(huán)境、使用方式等仿真故障行為。而針對復(fù)雜系統(tǒng)總線故障注入對交聯(lián)設(shè)備場景和故障模擬的要求,需要通過仿真測試的手段,建立自動化的實時仿真故障注入環(huán)境,通過全數(shù)字仿真模型的運算模擬交聯(lián)環(huán)境的行為,進(jìn)一步通過模型輸入、輸出或模型參數(shù)的人為改變,實施相應(yīng)的總線高級行為故障注入。
外源性總線軟件故障注入基本原理是修改交聯(lián)設(shè)備軟件或仿真激勵環(huán)境軟件,模擬真實交聯(lián)設(shè)備無法達(dá)到或達(dá)到代價過高的故障狀態(tài),通過總線級的激勵作用于受試設(shè)備,實現(xiàn)故障注入。外源性總線故障注入不同于傳統(tǒng)意義的外部總線故障注入,主要從交聯(lián)設(shè)備軟件行為出發(fā),注入總線數(shù)據(jù)內(nèi)容、邏輯等應(yīng)用層故障。外源性總線故障注入的實現(xiàn)不能影響交聯(lián)設(shè)備的正常功能和性能,應(yīng)盡可能真實的模擬實裝環(huán)境下故障的特征。
將故障通過受試系統(tǒng)外部的交聯(lián)設(shè)備進(jìn)行注入是外源性故障注入的核心內(nèi)容,因此外源性故障注入的實施可包括以下兩中方案:
1)外源性直接故障注入方法:通過直接修改交聯(lián)設(shè)備軟件,并編譯、下載到交聯(lián)設(shè)備目標(biāo)芯片中,實施故障注入,故障注入環(huán)境包括故障注入計算機、編譯環(huán)境和下載設(shè)備,如圖1所示。
圖1 外源性總線直接故障注入原理
該方法在實施過程中與傳統(tǒng)的軟件故障注入較類似,所不同的是故障模式擴(kuò)大至受試系統(tǒng)外部,故障觸發(fā)方式僅支持運行中故障激活方式。
2)外源性總線仿真故障注入方法:通過建立交聯(lián)設(shè)備的仿真激勵環(huán)境,通過仿真激勵環(huán)境自動程控加載注入故障的模型、腳本或數(shù)據(jù),實施故障注入,故障注入環(huán)境包括仿真建模工具、故障注入設(shè)計工具和故障注入實施工具,見圖2。
圖2 外源性總線仿真故障注入原理
外源性總線仿真故障注入方法能夠更加符合復(fù)雜系統(tǒng)的特點及其對故障注入方法的要求,全面、有效的實現(xiàn)復(fù)雜系統(tǒng)的故障注入,是本文的關(guān)鍵技術(shù)。
針對外源性總線仿真故障注入方案,可采用如下關(guān)鍵技術(shù)作支撐:
1)真實的總線接口黑盒測試技術(shù)[4]。即通過復(fù)雜系統(tǒng)的外部總線和接口,向受試系統(tǒng)施加激勵,并查看受試系統(tǒng)通過外部總線的響應(yīng)。在該試驗技術(shù)中,將復(fù)雜系統(tǒng)當(dāng)成一個黑盒的整體,保證了受試產(chǎn)品試驗狀態(tài)的真實性和一致性,通過對黑盒整體的輸入到輸出的響應(yīng)的試驗,驗證設(shè)備包括故障處理能力在內(nèi)的宏觀功能的正確性。進(jìn)一步,依據(jù)試驗輸入條件中的故障模式策略,通過總線協(xié)議和數(shù)據(jù)內(nèi)容的變異,施加包含了試驗預(yù)期故障模式的輸入激勵,實現(xiàn)外部總線故障注入。
2)面向動態(tài)數(shù)據(jù)內(nèi)容的總線激勵技術(shù)[5]。即在外部總線故障注入過程中,不僅針對總線協(xié)議和物理連接,注入數(shù)據(jù)傳輸層及其底層的故障,如總線中斷、速率不匹配、數(shù)據(jù)反轉(zhuǎn)等。更重要的是,針對復(fù)雜系統(tǒng)的邏輯性特點,注入面向數(shù)據(jù)內(nèi)容的應(yīng)用層故障,即針對總線傳輸?shù)臄?shù)據(jù)內(nèi)容,如溫度、壓力、迎角、法相加速度等,的異常偏差,查看的不僅局限于受試設(shè)備對總線故障的處理能力,更重要的是驗證復(fù)雜受試系統(tǒng)核心功能對輸入的數(shù)據(jù)代表的交聯(lián)設(shè)備、運行環(huán)境、飛行環(huán)境等高層次異常的處理能力。而這類面向數(shù)據(jù)內(nèi)容的高層次的故障,往往不是一個孤立的單點數(shù)據(jù)變異,而是一組輸入元素融合在操作流程、運行場景或狀態(tài)遷移中的動態(tài)時序行為組合。因此,應(yīng)通過順序文件或腳本的形式對復(fù)雜系統(tǒng)的輸入數(shù)據(jù)元素動態(tài)關(guān)系進(jìn)行程序化的設(shè)計,并在這些動態(tài)輸入元素行為組合中,注入數(shù)值和時序兩個維度的故障,從而實現(xiàn)對復(fù)雜系統(tǒng)高層系外部總線故障的模擬。
3)實時仿真故障注入技術(shù)[6]。即建立高逼真度的復(fù)雜系統(tǒng)交聯(lián)環(huán)境全數(shù)字仿真平臺,通過數(shù)字仿真取代受試系統(tǒng)的真實外部交聯(lián)環(huán)境連接。
一方面,通過實時仿真故障注入技術(shù),實現(xiàn)了對受試產(chǎn)品外部接口、交聯(lián)環(huán)境和輸入輸出行為的仿真,全數(shù)字模型取代了物理設(shè)備,更有助于面向動態(tài)數(shù)據(jù)內(nèi)容的總線故障的模擬和施加;同時通過靈活的數(shù)學(xué)模型,擴(kuò)充了可注入故障的范圍,解決了故障注入過程中成本、效率的局限以及潛在的故障安全性風(fēng)險等方面的問題。另一方面,實時仿真故障注入技術(shù)依托數(shù)學(xué)模型強大的行為表達(dá)能力,理論上能夠模擬外部交聯(lián)環(huán)境全部的復(fù)雜行為,彌補了動態(tài)輸入數(shù)據(jù)元素序列僅能從輸入數(shù)值和時序兩個維度設(shè)置故障模式的不足。實時仿真故障注入技術(shù)將故障模式的表達(dá)范圍擴(kuò)大到輸入數(shù)值、輸出反饋、系統(tǒng)狀態(tài)、動態(tài)時序等多個維度,可通過模型輸入輸出、模型參數(shù)、模型結(jié)構(gòu)以及專用故障模塊等靈活的方式實現(xiàn)故障的模擬和施加,解決復(fù)雜系統(tǒng)交互性、反饋性等復(fù)雜特性的故障注入問題。
外源性總線仿真故障注入是面向復(fù)雜系統(tǒng)外源性總線故障注入的有效手段,故障注入人員可通過相關(guān)的支撐工具對系統(tǒng)的各種資源進(jìn)行配置,組織受試系統(tǒng)的輸入,來驅(qū)動受試系統(tǒng)運行,同時接收受試系統(tǒng)的輸出結(jié)果,從而對復(fù)雜系統(tǒng)進(jìn)行自動的、實時的、非侵入性的閉環(huán)故障注入[7]。
外源性總線仿真故障注入具有可重復(fù)性,借助工具平臺能完成手工注入由于時間或運行環(huán)境而無法進(jìn)行的故障模式,保證注入的完整性,此外自動故障注入還能保證當(dāng)復(fù)雜系統(tǒng)的功能擴(kuò)展時使其故障模式也隨之?dāng)U展,具有可擴(kuò)展性[8]。非侵入性保證受試系統(tǒng)自身不會因為故障注入而改變,以確保試驗的真實性;閉環(huán)故障可仿真復(fù)雜系統(tǒng)交聯(lián)環(huán)境的輸入信號、捕捉并觀察受試系統(tǒng)的響應(yīng)并對響應(yīng)進(jìn)行判斷。
基于軟件模擬的故障注入工具平臺,通過通用的、可定制的方式,建立復(fù)雜系統(tǒng)外部交聯(lián)環(huán)境接口模型,實現(xiàn)系統(tǒng)動態(tài)運行中故障激活條件的實時、自動化控制,提供內(nèi)源性軟件故障注入支撐;建立復(fù)雜系統(tǒng)外部交聯(lián)環(huán)境行為仿真模型,通過仿真模型的動態(tài)運行,實現(xiàn)對外部交聯(lián)環(huán)境故障和高級行為的模擬,提供外源性總線故障注入支撐。
針對復(fù)雜系統(tǒng)軟件故障模式復(fù)雜度高、接口種類豐富、交互性強、與功能耦合性強以及對時序要求高等特點,實時仿真故障注入環(huán)境采用分層設(shè)計結(jié)構(gòu)[9],如圖3所示。
圖3 實時仿真故障注入環(huán)境結(jié)構(gòu)圖
1)故障注入應(yīng)用層提供人機交互界面,實現(xiàn)軟件故障模式的編輯、仿真模型設(shè)計、接口配置、實時激勵與顯示、結(jié)果數(shù)據(jù)管理與分析等功能;通過Matlab/simulink等第三方通用建模工具,實現(xiàn)第三方仿真模型的編輯,并編譯成可供測試環(huán)境執(zhí)行的形式,在試驗核心層實現(xiàn)仿真模型的實施運行。
2)故障注入核心層采用實時嵌入式操作系統(tǒng),滿足復(fù)雜系統(tǒng)軟件故障的實時性要求,實現(xiàn)交互式仿真模型的實時運行、交聯(lián)環(huán)境激勵的產(chǎn)生、故障模式的自動施加、原始數(shù)據(jù)的實時采集;
3)故障注入驅(qū)動層實現(xiàn)數(shù)量和種類上滿足復(fù)雜系統(tǒng)要求的,包括RS-232/422/485、CAN、ARINC429、MIL-STD-1553B、AFDX、模擬量、開關(guān)量等常用航空接口的集成。
外源性總線仿真故障注入方法能把被測復(fù)雜系統(tǒng)和外部故障源物理地連接在一起,并進(jìn)行邏輯的描述,通過自動生成故障用例,仿真產(chǎn)生輸入驅(qū)動受試目標(biāo)系統(tǒng)運行,得到運行結(jié)果,并且在試驗后能對受試系統(tǒng)進(jìn)行分析和測試性評估等工作。
外源性總線仿真故障注入的具體工作過程為:
1)開始故障注入試驗前,首先進(jìn)行相關(guān)的系統(tǒng)配置,包括總線接口配置和仿真模型配置??偩€接口配置主要工作內(nèi)容有:選擇測試需要的受試系統(tǒng)外部總線接口,并且進(jìn)行接口通訊協(xié)議、數(shù)據(jù)格式等方面的配置,形成配置數(shù)據(jù)或配置文件。仿真模型配置主要工作內(nèi)容有:通過第三方建模工具,如matlab等建立仿真模型,采用第三方聯(lián)合編譯技術(shù),將仿真模型編譯成可在故障注入支撐平臺運行的模型文件,并且對其輸入/輸出和參數(shù)進(jìn)行設(shè)定,提取相關(guān)的輸入、輸出及參數(shù)信息,與故障注入支撐工具操作界面進(jìn)行數(shù)據(jù)綁定,實現(xiàn)仿真模型的實時控制。
2)利用試驗?zāi)_本或總線數(shù)據(jù)元素序列文件,生成包含故障信息的試驗?zāi)_本或試驗用例。
3)建立仿真故障注入環(huán)境,選擇構(gòu)建仿真故障注入環(huán)境的輸入輸出環(huán)境文件、試驗用例或腳本,以及仿真模型,并且通過編輯連接表,建立它們的連接關(guān)系。
4)執(zhí)行試驗,實施故障注入:將輸入輸出環(huán)境文件、試驗用例或腳本,以及仿真模型下發(fā)到實時試驗系統(tǒng),完成緩沖區(qū)初始化,實時測試任務(wù)初始化等。執(zhí)行測試性試驗,激活注入的故障。實施采集受試設(shè)備的外部總線輸出,并記錄。
5)試驗后處理,當(dāng)實時試驗完成后,進(jìn)行試驗后處理工作,包括:試驗過程回放,試驗結(jié)果事后分析、比較,測試性評估等。
本文提出了外源性故障的概念,并總結(jié)了復(fù)雜系統(tǒng)外源性故障的特點及注入的要求;在此基礎(chǔ)上給出了外源性故障注入的基本原理及總體方案,并提出了外源性總線仿真故障注入方案的關(guān)鍵技術(shù),研究故障注入環(huán)境的構(gòu)建方法并描述了外源性故障注入的實施流程。從實施層面能夠解決目前航空型號研制過程中缺乏系統(tǒng)測試性整體驗證的能力。
復(fù)雜系統(tǒng)的測試性試驗方法尤其是仿真技術(shù)在測試性試驗中的應(yīng)用尚處于起步階段,在航空電子迅速發(fā)展的今天,加強對該技術(shù)領(lǐng)域的研究對我國型號飛機研制過程中測試性驗證能力的提高具有非常重要的意義。
[1] 徐 萍,康 銳. 測試性試驗驗證中的故障注入系統(tǒng)框架研究[J]. 測控技術(shù), 2004, 23(8) :12-14.
[2] 孫峻朝,王建瑩,楊孝宗. 故障注入方法與工具的研究現(xiàn)狀[J]. 宇航學(xué)報, 2001, 22(1) :99-104.
[3] 彭俊杰,洪炳镕,袁成軍. 軟件實現(xiàn)的星載系統(tǒng)故障注入技術(shù)研究[J]. 哈爾濱工業(yè)大學(xué)學(xué)報,, 2004, 36(7) :934-936.
[4] JA Clark,DK Pradhan. Fault injection: a method for validating computer-system dependability[J]. Computer, 1995, 28(6) :47-56.
[5] 李璇君. 航空發(fā)動機數(shù)字控制器與航空電子綜合系統(tǒng)BIT技術(shù)研究[D]. 南京:南京航空航天大學(xué), 2001.
[6] R Natella,D Cotroneo,JA Duraes,HS Madeira. On Fault Representativeness of Software Fault Injection [J]. IEEE Transactions on Software Engineering, 2013, 39(1) :80-96.
[7] J Arlat,Y Crouzet,J Karlsson. Comparison of Physical and Software-Implemented Fault Injection Techniques[J]. IEEE Transactions on Computers, 2003, 52(9) :1115-1133.
[8] 石君友,李 鄭,劉 騮,等.自動控制故障注入設(shè)備的設(shè)計與實現(xiàn)[J]. 航空學(xué)報, 2007, 28(3) :556-560
[9] 劉 暢,劉 斌,阮 鐮. 航空電子軟件仿真測試環(huán)境軟件體系結(jié)構(gòu)研究[J]. 航空學(xué)報,2006,27(5):877-882.
ResearchonMethodofExogenousFaultInjectionBasedonSoftwareSimulationTechnology
Gao Hu,Li Haifeng, Zhao Gang
(China Aero-polytechnology Establishment, Beijing 100028, China)
There are many deficiencies in testability test of complex systems, such as the external conditional existence of equipment failure can not be modeled , the equipment failure mode of external input and output is too simple for the testability test. As a new approach to the problem, the concept of exogenous fault is defined. The characteristics and basic requirements of exogenous faults are summarized. Then an exogenous fault injection approach based on the application data simulation of external bus is proposed. From the advanced application logic of the complex system, this approach establishes an automated real-time simulation fault injection environment, simulates the behavior of cross-linked environment by full digital simulation model, change the input, output, or parameters of the model, and implement the fault injection of the advanced behavior of the bus. At last, the implementation scheme of exogenous fault injection in the test is described, the key technology and environment construction of the method are analyzed, and the implementation process of external fault injection test is developed.
testability; fault injection; simulation; exogenous failure
2017-03-04;
2017-03-24。
高 虎(1986-),男,河北石家莊人,碩士研究生,工程師,主要從事軟件故障注入、軟件測試方向的研究。
1671-4598(2017)09-0017-04
10.16526/j.cnki.11-4762/tp.2017.09.005
TP311.1
A