999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式系統(tǒng)故障注入技術研究

2022-04-12 04:09:22劉憲忠趙昶宇
科技與創(chuàng)新 2022年7期
關鍵詞:嵌入式故障方法

劉憲忠,趙昶宇

(1.海軍裝備部駐天津地區(qū)第二軍事代表室,天津 300308;2.天津津航計算技術研究所,天津 300308)

由于嵌入式系統(tǒng)需要軟件和硬件協(xié)同工作,因此,嵌入式系統(tǒng)的測試難度比傳統(tǒng)的純軟件測試要高得多。對于嵌入式系統(tǒng)來說,測試難度最大同時也是最容易出問題的部位在于對異常和故障的測試。這其中不僅包括軟件異常,還包括硬件故障,這些異常和故障通常在測試時很難被測試覆蓋到,這就會給嵌入式系統(tǒng)測試帶來不確定的隱患因素。

為了消除嵌入式系統(tǒng)測試中不穩(wěn)定的隱患因素,進一步提高測試的覆蓋性,尤其是提高對軟件異常和硬件故障處理的測試覆蓋性,可以采用故障注入的方法來模擬真實的軟件異常和硬件故障情況。在嵌入式系統(tǒng)中通過硬件或者軟件的手段,對被測試對象“注入”提前設計好的異常和故障測試用例,通過運行這些測試用例來測試和評估被測試軟件代碼的容錯性和異常處理能力。

本文對故障注入的原理進行了闡述,并列舉了幾種常用的基于故障注入測試方法。采用了故障注入的方法對嵌入式系統(tǒng)進行測試,能夠極大地提高測試效率和測試覆蓋率,從而有效提高系統(tǒng)可靠性。

1 故障注入原理

故障注入是指向被測試系統(tǒng)注入某些特定的故障樣本或用例,使得被測系統(tǒng)產(chǎn)生預期的故障現(xiàn)象的過程,它是驗證被測系統(tǒng)測試性水平的關鍵技術。

故障注入技術主要用于進行系統(tǒng)可靠性驗證,它根據(jù)建立的故障注入模型,通常采用人為的向待測系統(tǒng)輸入故障信息,加速待測系統(tǒng)故障或失效,并通過觀察和分析待測系統(tǒng)對輸入故障信息的反饋結果,對待測系統(tǒng)進行定量和定性的驗證和評價[1]。

故障注入技術的驗證過程通常需要依賴整個系統(tǒng)的原理、功能、特性,F(xiàn)MEA和FMECA的結果,領域專家的相關經(jīng)驗以及以往故障率數(shù)據(jù)等信息。在進行故障注入時,首先需要執(zhí)行故障注入者選擇故障模型,然后基于選擇的故障模型對被測試系統(tǒng)執(zhí)行故障注入活動,通過運行工作負載的目標系統(tǒng),獲取系統(tǒng)的運行狀態(tài),并對被測系統(tǒng)的反饋結果進行驗證評估。故障注入的原理如圖1所示。

圖1 故障注入原理

1.1 輸入和目標系統(tǒng)

嵌入式系統(tǒng)故障注入的輸入包括整個系統(tǒng)的原理、功能、特性,F(xiàn)MEA和FMECA的結果,領域專家的相關經(jīng)驗以及以往故障率數(shù)據(jù)等信息。執(zhí)行故障注入的測試人員不僅要提供故障注入模型和注入結果分析的度量,還要采取措施保證每次故障注入過程的完整。運行工作負載的目標系統(tǒng)可以是系統(tǒng)模擬模型,也可以是真實系統(tǒng)原型。

1.2 選擇故障模型

選擇故障模型的主要功能是確定產(chǎn)生故障的屬性,并將選擇的故障模型作為“執(zhí)行故障注入”環(huán)節(jié)的輸入。如果被選中的故障模型能夠最大限度覆蓋真實系統(tǒng)運行時的故障,則被測系統(tǒng)的反饋結果就會越精確。

故障模型的建立通常與目標系統(tǒng)類型、故障注入方式以及驗證評估的結果相關。其中,硬件故障模型的屬性分為故障類型、故障發(fā)生時間、故障持續(xù)時間以及故障位置等,故障發(fā)生時間可以根據(jù)給定的分布或者按照工作負載的運行狀態(tài)確定,故障持續(xù)時間包括瞬時、間歇和永久3種,故障位置與目標系統(tǒng)有關。軟件故障模型的建立主要依賴于專家的經(jīng)驗和測試結果,軟件故障注入用于測試被測系統(tǒng)的容錯機制。

由于測試是無止境的,因此必須采取策略從龐大的故障測試用例中選取一個測試子集完成故障注入,一般采用多級抽樣、分層抽樣或者典型抽樣的方法來進行故障測試用例的篩選。

1.3 執(zhí)行故障注入

在當前步驟中需要將上一步驟中選擇的故障模型轉變?yōu)榭勺⑷氲墓收闲问剑⑦x擇適當?shù)姆椒▽⒐收霞⑷肽繕讼到y(tǒng)中。故障注入方法的選擇與目標系統(tǒng)的類型密切相關,若目標系統(tǒng)是系統(tǒng)模擬模型,可針對目標系統(tǒng)模擬層次的不同選用不同級別的注入方法,這種模擬注入的方式能夠測試到真實系統(tǒng)原型無法覆蓋的內部功能,實現(xiàn)對被測系統(tǒng)的精確注入監(jiān)控。若目標系統(tǒng)是真實系統(tǒng)原型,可采取基于軟硬件的物理故障注入方法,用來評估系統(tǒng)原型的可信性和驗證被測系統(tǒng)的容錯性。

1.4 獲取系統(tǒng)狀態(tài)和驗證評估結果

獲取系統(tǒng)狀態(tài)和驗證評估結果是一次完整的故障注入活動中向測試人員提供被測系統(tǒng)反饋結果的最后步驟。在該步驟中需要測試人員判斷是否終止驗證評估,其判斷依據(jù)包括是否滿足置信區(qū)間、測試得到的概率分布是否穩(wěn)定以及測試參數(shù)是否超過設定閾值等。若終止驗證評估,則需驗證評估分析所有的測試結果,反饋被測系統(tǒng)測試結果。通常采用概率統(tǒng)計的方法進行測試結果的驗證評估和分析。

2 故障注入技術分類

按照故障注入方法的不同將故障注入技術分為基于硬件的故障注入、基于模擬的故障注入和基于軟件的故障注入。故障注入技術分類如圖2所示。

圖2 故障注入技術分類圖

基于硬件的故障注入是指在被測系統(tǒng)的硬件中加入額外的硬件電路。該方法適用于對某些原型系統(tǒng)的可信性進行研究。基于硬件故障注入的位置將該方法分為接觸式和非接觸式2種。接觸式故障注入方法可采取直接與被測系統(tǒng)電路的引腳相連接的方式,或是在被測系統(tǒng)芯片內部植入對應的故障模塊。該方法的優(yōu)點在于無需對被測系統(tǒng)進行修改和建模驗證,即可實現(xiàn)對被測系統(tǒng)的永久性故障注入。缺點是容易造成系統(tǒng)硬件損壞,增加了硬件設計的結構復雜性和芯片設計難度。非接觸式故障注入方法中故障注入器和被測系統(tǒng)之間沒有物理連接,因此,它無法準確把握故障注入的時間和位置。

基于模擬的故障注入是指在被測系統(tǒng)開發(fā)設計階段通過建立解析和模擬模型來獲取被測系統(tǒng)中大多數(shù)可信性度量信息,通常在功能級別測試系統(tǒng)的各種性能是否滿足要求。模擬模型可實現(xiàn)對被測系統(tǒng)的細節(jié)設計的模擬,這樣便于對注入故障進行精確監(jiān)控。基于功能級別的模擬故障注入可將故障注入到被測系統(tǒng)的CPU、通信部件、存儲部件或軟件模塊上,因此,需要對被注入的部件或模塊分別建立不同的故障模型。該方法一般應用于系統(tǒng)早期設計階段,能夠較好地模擬內存Bit位翻轉和硬件寄存器故障,缺點是建模難度和工作量較大,且容易產(chǎn)生“組合爆炸”問題。

基于軟件的故障注入是指在無需額外硬件設備輔助的情況下,通過設置程序指令或修改被測系統(tǒng)的內存來模擬被測系統(tǒng)CPU、內存、寄存器或網(wǎng)絡硬件故障,通過在軟件編譯前調整軟件結構或是運行時改變程序變量或狀態(tài)來模擬系統(tǒng)軟件故障[2]。該方法可以在被測系統(tǒng)的操作系統(tǒng)中設計故障注入層,或者直接將故障注入到應用程序中,它既能模擬部分硬件故障,也能設計軟件方面的故障。該方法的最大優(yōu)點是故障注入成本低,易于實現(xiàn),并且不會破壞被測系統(tǒng)的硬件環(huán)境。但是也存在著缺點,比如只能對軟件能夠訪問的位置或部件進行故障注入,有時會改變被測系統(tǒng)原始軟件結構,干擾被測系統(tǒng)軟件運行,還有就是時間精度和分辨率較小,導致無法準確捕捉到異常和錯誤情況等。根據(jù)故障注入的時機將將基于軟件的故障注入方法分為編譯時故障注入和運行時故障注入2種。編譯時故障注入是指在被測系統(tǒng)的程序目標碼被加載執(zhí)行前,將軟件故障注入到程序源代碼中以模擬被測系統(tǒng)軟硬件故障。它需修改被測系統(tǒng)的軟件源代碼,當被測系統(tǒng)的軟件運行后,則不會受到外界干擾,缺點是無法實現(xiàn)故障的實時模擬。運行時故障是指當被測系統(tǒng)中的軟件運行后,采用特定方式將故障注入被測系統(tǒng)中。它無需修改被測系統(tǒng)的軟件源代碼,可以實時模擬軟硬件故障,缺點是無法模擬永久性故障。

本文重點闡述基于軟件的故障注入方法及其在工程中的實際應用。

3 嵌入式系統(tǒng)故障注入方法

嵌入式系統(tǒng)中常用的基于軟件的故障注入方法有修改軟件源程序法、基于開發(fā)環(huán)境故障注入、設備驅動故障注入和其他故障注入方法。

3.1 修改軟件源程序實現(xiàn)故障注入

通過修改軟件源程序進行故障注入是目前最常用的注入故障方法。這種方法的最大優(yōu)點是無需借助外部資源和測試工具,同時也無需在軟件源程序中設置斷點,只需修改源程序中進入并執(zhí)行異常處理的判斷條件,即可實現(xiàn)對故障的靈活注入[3]。但是該方法也存在以下不足。

對嵌入式系統(tǒng)進行故障注入時,需要軟件測試人員和軟件設計人員同時在場,軟件測試人員需在軟件設計人員的指導下完成源程序修改和故障注入工作。該方法在處理和時序相關的故障注入時,需要對源程序進行較大的改動,極有可能在改動源程序時產(chǎn)生新的系統(tǒng)故障。基于不同的故障注入模式,需要修改并生成多個版本的軟件源程序,增加了軟件版本管理的工作量和復雜程度。

3.2 基于開發(fā)環(huán)境的故障注入方法

在嵌入式系統(tǒng)軟件的編碼和調試階段,通常基于軟件開發(fā)環(huán)境對系統(tǒng)進行故障注入。在開發(fā)環(huán)境中通過設置調試斷點的方式,或者在開發(fā)環(huán)境和目標機之間建立網(wǎng)絡連接的方式來修改嵌入式系統(tǒng)軟件內存或者寄存器狀態(tài)。該方法最大的優(yōu)點是無需修改嵌入式軟件源程序,在進行故障注入時可以極大地減少軟件設計人員的占用率。該方法也存在以下的局限性和不足。

該方法在利用通用的軟件開發(fā)環(huán)境對具有同步功能的嵌入式余度系統(tǒng)進行故障注入時,具有較大的局限性。通過開發(fā)環(huán)境進行系統(tǒng)故障注入,通常不能保證故障注入的連續(xù)執(zhí)行,而且無法處理多線程或者中斷程序的故障注入。由于該方法不能對目標機進行連續(xù)故障注入測試,因此,采用該方法得到的故障注入結果不能夠真實反映嵌入式系統(tǒng)在實際工作時對故障的反饋狀態(tài)。

3.3 基于驅動的故障注入方法

當嵌入式系統(tǒng)軟件包含底層驅動模塊軟件時,通常可通過底層驅動模塊軟件向嵌入式系統(tǒng)應用層軟件注入故障。該方法需要在底層驅動模塊軟件中預留故障注入測試接口,通過故障注入工具向底層驅動模塊軟件中注入故障。該方法最大的優(yōu)點是無需改動嵌入式系統(tǒng)應用層軟件源程序,也不會對被測試嵌入式系統(tǒng)應用層軟件的工作負載產(chǎn)生影響,該方法生成的故障更加接近真實硬件產(chǎn)生的故障。該方法最大的不足是由于需要在底層驅動模塊軟件中預留故障注入測試接口,在對系統(tǒng)進行故障注入前需要投入較大工作量[4]。

3.4 其他故障注入方法

其他的故障注入方法包括超時觸發(fā)法、異常或陷阱觸發(fā)法和代碼插入觸發(fā)法等。

超時觸發(fā)法。該方法采用硬件或者軟件定時器觸發(fā)故障注入。該定時器預先設定好定時時間,當定時時間到后產(chǎn)生中斷信號,在中斷處理程序中激活故障注入。該方法無需修改被測系統(tǒng)的軟件源代碼或者工作負載。由于定時時間可以任意設定,因此,該方法可能會對被測試的嵌入式系統(tǒng)產(chǎn)生不可預知的故障影響和行為,尤其適用于模擬瞬時故障或者間隔式硬件故障。

異常或陷阱觸發(fā)法。該方法采用硬件異常或者軟件陷阱來觸發(fā)故障注入。與超時觸發(fā)方法不同,它不用設置定時器就能利用硬件異常或軟件陷阱在任意時間或條件下實施故障注入。當發(fā)生硬件異常或是執(zhí)行軟件陷阱時,調用中斷服務程序激活故障注入。

代碼插入觸發(fā)法。該方法是在被測系統(tǒng)運行時,在不改變被測系統(tǒng)原始軟件源代碼的情況下,在原始軟件源代碼的某條特定代碼之前動態(tài)的插入新的指令并執(zhí)行故障注入。這些動態(tài)插入的新指令作為被測系統(tǒng)軟件源代碼的一部分。通常情況下,被測系統(tǒng)是在特定的工作模式下采用代碼插入觸發(fā)法執(zhí)行故障注入,在被測系統(tǒng)正常的工作模式下一般不采用這種方法[5]。

4 結束語

本文闡述的基于軟件的故障注入方法具有對硬件資源依賴較少,簡單易用,并且具有良好的可擴展性,可在系統(tǒng)設計的任何階段采用該方法來測試系統(tǒng)中的未知故障,并提高系統(tǒng)的健壯性和可靠性。

隨著計算機技術在嵌入式系統(tǒng)中的不斷發(fā)展和廣泛應用,尤其是在航空和航天等安全關鍵技術領域的深入推廣,人們對嵌入式系統(tǒng)的可靠性提出了越來越高的要求。目前國內嵌入式系統(tǒng)的故障注入技術仍處于不斷探索和發(fā)展過程中,尤其在一些軍用領域還沒有通用的故障注入設備,無法高效完成裝備的測試性驗證試驗。所以完善和優(yōu)化故障注入方法,研究通用的故障注入設備,將成為所有科研人員的努力方向。

猜你喜歡
嵌入式故障方法
故障一點通
搭建基于Qt的嵌入式開發(fā)平臺
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
奔馳R320車ABS、ESP故障燈異常點亮
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
故障一點通
江淮車故障3例
Altera加入嵌入式視覺聯(lián)盟
主站蜘蛛池模板: 日本午夜精品一本在线观看 | 中文字幕免费视频| 亚卅精品无码久久毛片乌克兰| 久久99国产综合精品女同| 最新亚洲人成网站在线观看| 亚洲品质国产精品无码| 三级国产在线观看| 国产无码精品在线| 免费网站成人亚洲| 国产黄网永久免费| 亚洲天堂网站在线| 91福利免费| 国产另类乱子伦精品免费女| 久久久精品久久久久三级| 日韩黄色大片免费看| 亚洲福利网址| 午夜无码一区二区三区在线app| 国产大片喷水在线在线视频| 亚洲欧美不卡视频| 第九色区aⅴ天堂久久香| 久草热视频在线| 中文字幕在线不卡视频| 欧美色综合网站| 在线视频亚洲欧美| 亚州AV秘 一区二区三区| 精品免费在线视频| 亚洲成aⅴ人在线观看| 极品国产一区二区三区| 日韩无码黄色网站| 国产精品3p视频| 国产91熟女高潮一区二区| 91黄色在线观看| 中文字幕在线播放不卡| 国产成人免费高清AⅤ| 国产精品专区第1页| 青青草原国产| 亚洲香蕉久久| 亚洲va视频| 57pao国产成视频免费播放| jizz在线观看| 亚洲福利视频一区二区| 日韩av高清无码一区二区三区| 欧美曰批视频免费播放免费| 高清无码手机在线观看| 97青青青国产在线播放| 免费a在线观看播放| 一区二区无码在线视频| 波多野结衣一区二区三视频| 一本大道香蕉久中文在线播放| 美女国产在线| 亚洲无码高清免费视频亚洲| 中文字幕久久亚洲一区| aa级毛片毛片免费观看久| 国产理论一区| 中文成人在线视频| a色毛片免费视频| 国产99免费视频| 最新日韩AV网址在线观看| 成人免费一级片| 亚洲精品免费网站| 亚洲精品波多野结衣| 国产传媒一区二区三区四区五区| 国产一级在线观看www色| 久久伊伊香蕉综合精品| 亚洲国产一成久久精品国产成人综合| a毛片在线| 午夜电影在线观看国产1区| www.亚洲一区二区三区| 一本久道久久综合多人| 久久国产拍爱| 亚洲欧洲自拍拍偷午夜色无码| 在线日韩一区二区| 亚洲一区网站| 亚洲国产精品无码AV| 国产成人亚洲毛片| 毛片视频网址| 亚洲福利网址| 日本一本在线视频| 国产精品网址你懂的| 国产乱子伦精品视频| 午夜福利亚洲精品| 亚洲免费毛片|