《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于軟件故障注入的嵌入式系統魯棒性測試
基于軟件故障注入的嵌入式系統魯棒性測試
來源:微型機與應用2011年第22期
王立榮
中國船舶重工集團公司 江蘇自動化研究所, 江蘇 連云港222006
摘要: 以研究對嵌入式系統魯棒性進行評價和基于軟件故障注入技術的嵌入式系統魯棒性測試為目的。對嵌入式系統魯棒性測試的相關概念以及軟件故障注入技術原理進行了介紹,以Linux操作系統內核函數測試為例,通過對系統API參數的故障注入接口進行分析,提出基于GDB工具的軟件故障注入方法來實現系統魯棒性故障注入測試。完成了相應的Linux操作系統API接口故障注入測試實例并給出了測試結果。為嵌入式系統魯棒性測試提供了更為直觀、有效的方法。
Abstract:
Key words :

摘  要: 以研究對嵌入式系統魯棒性進行評價和基于軟件故障注入技術的嵌入式系統魯棒性測試為目的。對嵌入式系統魯棒性測試的相關概念以及軟件故障注入技術原理進行了介紹,以Linux操作系統內核函數測試為例,通過對系統API參數的故障注入接口進行分析,提出基于GDB工具的軟件故障注入方法來實現系統魯棒性故障注入測試。完成了相應的Linux操作系統API接口故障注入測試實例并給出了測試結果。為嵌入式系統魯棒性測試提供了更為直觀、有效的方法。
關鍵詞: 魯棒性; 故障注入; 軟件測試; 嵌入式系統

    嵌入式系統由于其自身的特點,在開發和測試方面的難度往往大于通用軟件。傳統的結構化測試方法在測試系統魯棒性方面存在一些缺點[1]。故障注入方法作為傳統測試方法的一種補充,重點測試系統在異常條件和無效參數下容錯應對情況。通過注入故障的方法來測評容錯機制、驗證系統異常應對能力,從而提高系統魯棒性。其最大的特點是高度靈活性,它既能通過特殊的硬件輔助設備進行硬件方法的測試,也能實現軟件方法的故障注入測試。
    在嵌入式系統軟件測試方面,故障注入技術可以對系統的容錯性、可靠性、安全性進行測試,既可以采用靜態故障注入的方式,也可以采用動態故障注入的方式。本文針對嵌入式系統的結構特點和可靠性設計,利用嵌入式系統API,在OS接口以及應用層實現軟件故障注入,構建軟件故障注入模型。通過對注入故障后系統反饋數據的分析,可實現測試和評估容錯機制的目標,從而達到提高系統魯棒性的目的。
1 嵌入式系統魯棒性測試簡介
    系統魯棒性是衡量系統在壓力環境或異常輸入下保持正常工作能力的一種度量[2]。嵌入式系統體系結構從底層到頂部的順序依次是:內核(包含內核函數)、系統調用、內建程序(操作系統的命令)[3]。內核函數是內核代碼的組成部分,其調用程序直接運行在內核空間。內核函數一旦出現異常,將立刻對整個操作系統產生影響。實施嵌入式系統魯棒性測試的主要目的就是發現系統內核的薄弱環節,并予以消除或增強抵抗異常情況的能力,從而提高系統的魯棒性。
    傳統的系統魯棒性測試方法是通過觀察系統的失效行為,通過分析錯誤記錄來完成的。對一個高可靠系統而言,通過長時間實際觀察來獲取有關統計結果不切實際。嵌入式系統魯棒性測試關心的是系統失效的情況,對于嵌入式系統魯棒性的評價一般有基于測量的方法和基于故障注入的方法[4]。測試的重點在于通過在內核層面進行故障注入,人為地使系統出現故障,進而對故障信息進行分析,最終根據測試結果生成相應的保護代碼。
2 軟件故障注入技術概述
     故障注入技術就是按照選定的故障模型,用人工注入的方法有意識地產生故障并施加于運行的目標系統中,達到加速該系統錯誤和失效的產生,通過監控并采集系統對注入故障的反饋信息和現場數據,通過分析提供有關結果的測試過程[5]。一般故障注入流程如圖1所示。

    軟件故障注入技術是通過特定的程序對系統軟件、硬件錯誤狀態進行仿真。這種方法容易測試出新的故障類型。故障注入原理就是通過修改程序執行語句,增加、修改、刪除數據或直接修改寄存器或存儲器的內容來模擬硬件或軟件故障的發生。軟件故障注入的目標可以是應用程序或操作系統。如果目標為應用程序,故障注入程序插入到應用程序中或作為應用程序和操作系統之間的一層。如果目標是操作系統,注入程序只能嵌入到操作系統中。
    軟件實現的故障注入技術有以下三種:
    (1) 修改程序的源代碼使其出現故障,通常用于變異測試;
    (2) 在執行過程中修改程序某部分的數據狀態,通常用于故障行為研究;
    (3) 基于壓力的故障注入。即通過一定的工作負載來觸發系統容錯行為,驗證系統容錯機制。
        軟件實現的故障注入投入低且易于控制,無需額外的硬件設備,可以在程序指令能夠訪問到的軟硬件位置上自由選擇故障注入點。作為近年來新興實驗技術手段,軟件的故障注入方法有著成本低、靈活度高、可再現性等優點而被廣泛采用。
3 嵌入式系統故障注入方法
    嵌入式系統中用戶層與內核的交互都需要通過系統接口API來實現,所以對系統內核的故障注入需要針對這些系統調用接口進行[6]??刹捎们度胧较到y中的常用工具GDB進行。GDB的全稱是GNU Debuger,是GNU開源組織發布的一個強大的UNIX下的程序調試工具。使用GDB工具可以讓被調試程序停止在任意一個位置。在程序停止時,可查看或修改程序內存空間或寄存器的值。GDB的功能可用于對被測試程序進行故障注入,設置斷點進行故障觸發,修改內存和寄存器的值來進行故障數據注入,查看內存和寄存器的值來回收故障數據等。
    Ptrace()是GDB的基礎調試工具,通過Ptrace()可以在一個進程中觀察和控制另一個進程的執行狀態,主要用于執行斷點調試和系統調用跟蹤。在嵌入式系統下,可使用Ptrace()系統調用來進行故障注入和故障數據采集。Ptrace()的系統調用格式如下:
    #include <sys/ptrace.h>
     Long ptrace(enum_ptrace_request request, pid_t pid, void *addr, void *data)
    參數pid表示進程號,request表示具體操作,data表示要注入的數據,addr指明地址。在進行具體的故障注入時,需要控制運行的進程,并對進程的上下文進行讀寫操作。通過ptrace()調用可以對進程間通信進行跟蹤,使得一個進程可動態地讀寫另一個進程的內存和寄存器值,包括代碼段、數據段和堆棧段,以及訪問和修改通用寄存器和專用寄存器[7]。其故障注入原理為利用ptrace()調用追蹤應用進程,對應用進程中的系統調用服務注入故障,并由ptrace()監控應用進程故障注入結果[8]。
    故障注入程序運行時,父進程執行fork()生成子進程,子進程執行系統調用ptrace(),使該子進程處于被追蹤的狀態,程序同時開辟共享內存空間并定義一個全局的故障存儲數據結構,父子進程間通過信號量互斥的方法使用共享內存傳送數據。父進程將request、addr和data拷貝到該數據結構后喚醒子進程并使其進入就緒狀態,然后進入睡眠直到子進程響應。當子進程繼續運行時,執行適當的跟蹤命令,把子進程的回答寫到故障存儲數據結構中去,然后喚醒父進程。根據故障注入程序設計的不同,可釋放子進程,也可使子進程掛起并等待新的命令,以便再次進入被追蹤狀態執行故障測試項。當故障注入程序繼續執行時,父進程調用ptrace()追蹤測試項,將子進程提供的返回值保存起來,對故障值與參考值進行比較,如果不符即表示存在容錯機制未覆蓋的故障,然后將故障存儲數據結構有效值返回給用戶。圖2是利用ptrace()實現的故障注入方法流程圖。

 

 

    通過Ptrace函數就可以實現Linux系統的故障注入,將可能引發故障的數據注入到被測系統中,通過分析注入后的結果數據來判定程序中是否存在特定故障。
4 測試實現
    隨著嵌入式系統在使用過程中出現的各種問題被不斷地解決,系統的魯棒性也隨之不斷提高。多數嵌入式系統的開源性質也決定了其魯棒性提升得很快[9],Linux系統便是一個很好的例子。
    實驗中利用故障注入方法對Linux內核進行API調用的魯棒性測試,將其API劃分為進程管理、進程通信、文件系統、內存管理、網絡管理這五方面。測試環境:宿主機為DELL的DIMENSION 4700,操作系統為Windows xp-sp3;目標機為友善之臂的ARM開發套件,系統為基于ARM移植的Linux系統,內核為2.2.24。整個故障注入測試過程是:在宿主機上選擇故障注入測試項,根據不同API調用對象生成所需參數,然后將上述測試信息傳遞至目標系統。在目標系統上,根據接口信息要求生成測試任務項。根據故障注入對象選擇故障注入方法,根據接口信息中的參數進行故障注入,將收集到的測試結果返回至宿主機進行結果分析[10]。在實驗中采用GNU的調試工具GDB觀察目標機系統內存和寄存器的值,利用文件系統觀察測試數據信息,使用串口打印信息進行調試。通過這些方法監視系統狀態,并進行多次試驗觀察。表1 為實驗故障注入結果分析。

    測試結果表明,系統API中進程管理和進程通信等調用失效率較低,文件系統類型調用是故障高發部位,經過測試分析發現其較大的失效概率主要是由于高級I/O、字符串處理和字符處理類函數的健壯性失效而引起[11]。實驗通過故障注入導致系統產生失效狀態,通過分析失效狀態下的故障注入位置和參數信息,對系統容錯機制的漏洞進行了完善,使系統內核函數的魯棒性得到有效提升。
    魯棒性是衡量系統性能的重要指標,盡管已經有了一些測試方法和工具,嵌入式系統的魯棒性測試仍然是一個需要完善的領域[12]。本文在分析軟件故障注入技術的基礎上,提出了嵌入式系統魯棒性測試的故障注入方法,完成了基于Linux系統API接口的故障注入實驗,并對實驗獲取的故障注入結果進行了分析。測試結果表明,使用這種測試方法降低了系統失效概率,根據測試結果生成相應的保護代碼后使該嵌入式系統的魯棒性得到進一步保證。
參考文獻
[1] 劉利枚,汪文勇,唐科.嵌入式軟件測試方法與技術[J].計算機與現代化,2005,116(4):124-126.
[2] 王樂春,龔正虎,陳建榮.基于錯誤注入技術的協議實現魯棒性測試體系結構[J].計算機工程與應用, 2003,47
(22):139-141,184.
[3] 朱鴻宇,謝余強,劉瑰.基于故障注入發現緩沖區溢出漏洞的研究[J].微計算機應用,2005,26(6):676-679.
[4] SOSNOWSKI  J GAWKOWSKI P: Enhancing fault injection testbench[A].In:DepCos-RELCOMEX’06[C].2006:76-83.
[5] TANG D. Engineering oriented dependability Evaluation:MEADEP and its application[A].Fault-Tolerant Systems Proceeding IEEE[C].1997:85-90.
[6] 任獻彬.測控軟件的軟件測試方法研究[J].計算機測量與控制,2002,10(8):547-549.
[7] 周章慧,王同洋,吳俊軍,等.基于有限狀態機的健壯性測試研究[J].計算機工程與科學, 2009, 31(5):93-97.
[8] HSUEH M C,TSAI T K,IYER R K. Fault injection techniques and Tools[J].IEEE Computer,1997,30(4):75-82.
[9] 王軼辰,徐萍.嵌入式軟件機內測試的設計與測試[J].計算機工程,2009,35(17):34-36,39.
[10] 石君友,李鄭,駱明珠,等.故障注入控制軟件的設計與實現[J].測控技術,2008,27(04):65-67,70.
[11] 任獻彬.測控軟件的軟件測試方法研究[J].計算機測量與控制,2002,10(8):547-549.
[12] 鄭人杰.計算機軟件測試技術[M].北京:清華大學出版社,1990.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美一区二区三区精品电影| 亚洲一级电影| 亚洲激情在线观看视频免费| 亚洲嫩草精品久久| 久久成人精品一区二区三区| 美女国产一区| 欧美国产一区二区在线观看| 日韩西西人体444www| 国产欧美日韩亚洲一区二区三区| 亚洲男人的天堂在线观看| 激情欧美一区二区三区| 一区二区在线免费观看| 老司机aⅴ在线精品导航| 亚洲欧美一区二区三区极速播放| 欧美在线观看一二区| 欧美日韩一区二区国产| 欧美本精品男人aⅴ天堂| 欧美一区二区视频97| 亚洲视频精选在线| 亚洲精品在线视频观看| 在线一区视频| 欧美午夜激情在线| 亚洲一区美女视频在线观看免费| 欧美日韩一区在线播放| 欧美午夜精品久久久久久浪潮| 国产精品网站在线| 欧美日韩国产一中文字不卡| 国产精品久久久久毛片软件| 久久久国产精品一区| 亚洲欧洲日产国码二区| 国产精品成人观看视频免费| 国内在线观看一区二区三区| 亚洲精品午夜精品| 美女精品视频一区| 欧美一区二区日韩一区二区| 欧美日韩综合不卡| 欧美午夜一区二区三区免费大片| 亚洲香蕉成视频在线观看| 欧美va亚洲va香蕉在线| 亚洲精品网址在线观看| 国产亚洲aⅴaaaaaa毛片| 国产女主播一区二区三区| 国产精品色在线| 亚洲伦理网站| 亚洲天堂网站在线观看视频| 国产精品成av人在线视午夜片| 免费影视亚洲| 一本色道88久久加勒比精品| 欧美另类女人| 亚洲午夜国产成人av电影男同| 女女同性女同一区二区三区91| 国产精品久久久久久五月尺| 欧美日韩国产二区| 99精品欧美一区二区蜜桃免费| 一区二区三区四区国产| 毛片精品免费在线观看| 激情久久久久| 国产精品扒开腿爽爽爽视频| 尤物精品国产第一福利三区| 亚洲精品一区久久久久久| 亚洲国产免费看| 久久人人97超碰人人澡爱香蕉| 性久久久久久久久| 国产精品theporn88| 亚洲精品日产精品乱码不卡| 欧美日本乱大交xxxxx| 1024日韩| 久久动漫亚洲| 欧美国产日韩在线| 亚洲精品一区二区在线观看| 亚洲欧美激情一区二区| 91久久在线| 亚洲另类一区二区| 国产精品成人观看视频免费| 欧美一区午夜精品| 免费在线国产精品| 欧美日韩综合另类| 欧美精品1区2区3区| 欧美韩日一区| 亚洲国产欧美日韩| 久久久久久高潮国产精品视| 欧美一区二区黄| 国产精品久久久久久av下载红粉| 一区二区三区欧美在线观看| 欧美午夜电影一区| 亚洲伦理在线| **性色生活片久久毛片| 在线观看日韩av电影| 樱花yy私人影院亚洲| 久久精品视频播放| 性娇小13――14欧美| 永久91嫩草亚洲精品人人| 欧美午夜精品久久久久久人妖| 国产在线播精品第三| 乱中年女人伦av一区二区| 国产精一区二区三区| 欧美激情乱人伦| 亚洲国产精品热久久| 欧美激情一区二区久久久| 国产免费一区二区三区香蕉精| 久久综合久色欧美综合狠狠| 狠狠色狠狠色综合日日五| 久久久久www| 欧美电影免费观看高清| 黄色免费成人| 欧美一区二区三区在线看| 香蕉久久一区二区不卡无毒影院| 免费观看成人www动漫视频| 亚洲性视频网址| 中文在线资源观看视频网站免费不卡| 国产自产2019最新不卡| 国产伦精品免费视频| 国产一区二区三区高清| 亚洲婷婷综合久久一本伊一区| 亚洲第一毛片| 欧美视频在线观看视频极品| 亚洲精品一区二区在线观看| 日韩视频在线你懂得| 麻豆成人在线| 亚洲国产精品va在线看黑人动漫| 国产精品毛片一区二区三区| 亚洲人永久免费| 玖玖视频精品| 欧美日韩成人综合天天影院| 国产精品久久网站| 亚洲欧美综合国产精品一区| 男女激情久久| 欧美三级乱码| 欧美日本一区| 欧美日韩成人综合在线一区二区| 欧美精品久久久久久久| 欧美激情一区二区三区高清视频| 亚洲欧美日韩精品久久久久| 尤物九九久久国产精品的分类| 欧美激情免费在线| 怡红院精品视频| 国产精品一区在线观看你懂的| 国产精品色午夜在线观看| 亚洲第一精品夜夜躁人人爽| 一区二区三区国产在线观看| 久久午夜激情| 欧美午夜精品久久久| 欧美在线视频一区二区三区| 亚洲精选在线| 久久综合中文字幕| 国产精品你懂的在线欣赏| 在线观看成人av| 亚洲尤物精选| 国产精品欧美久久久久无广告| 国产精品系列在线播放| 国产精品久久久久久亚洲调教| 亚洲天堂成人在线观看| 国产亚洲一区在线播放| 欧美色图麻豆| 亚洲欧美日韩国产综合精品二区| 欧美大片国产精品| aa级大片欧美三级| 亚洲精品久久久蜜桃| 欧美日韩精品伦理作品在线免费观看| 久久久久久久波多野高潮日日| 亚洲国产小视频在线观看| 亚洲国产精品123| 男女av一区三区二区色多| 国产精品裸体一区二区三区| 久久精品72免费观看| 欧美日韩国产精品一区| 欧美亚洲视频在线看网址| 国产综合色一区二区三区| 91久久精品日日躁夜夜躁欧美| 欧美777四色影视在线| 免费在线日韩av| 国产亚洲视频在线| 国产一本一道久久香蕉| 欧美激情中文字幕在线| 国产精品免费视频观看| 美女精品视频一区| 中文av一区二区| 女同一区二区| 欧美激情免费在线| 欧美视频在线观看免费网址| 久久人人爽人人| 国产精品草莓在线免费观看| 中日韩男男gay无套| 国产精品久久久久天堂| 亚洲免费影视第一页| 在线观看欧美日本| 亚洲高清毛片| 国产精品一区二区女厕厕| 国产精品v欧美精品v日韩| 国产精品爽爽ⅴa在线观看| 日韩午夜在线电影| 国产精品一区二区三区免费观看| 国产精品三区www17con| 久久人人九九| 国产女同一区二区| 国产欧美欧美| 免费中文日韩| 欧美一区二区三区电影在线观看| 欧美成年人在线观看| 日韩亚洲国产欧美| 狠狠色丁香久久婷婷综合丁香| 欧美视频一区二区三区在线观看| 日韩视频在线永久播放| 国产精品久久久久久久免费软件| 欧美片在线播放| 99精品国产热久久91蜜凸| 欧美亚洲日本国产| 欧美激情视频一区二区三区免费| 在线免费观看视频一区| 国产性色一区二区| 午夜激情一区| 欧美激情免费观看| 在线日韩视频| 影音国产精品| 欧美系列亚洲系列| 亚洲二区三区四区| 欧美国产精品一区| 欧美先锋影音| 欧美三日本三级少妇三99| 久久影院午夜论| 久久久国产亚洲精品| 99国产精品久久久| 欧美激情精品久久久久久大尺度| 亚洲大片在线| 亚洲欧美综合精品久久成人| 在线 亚洲欧美在线综合一区| 久久久99爱| 欧美色视频一区| 欧美日韩精品一区二区三区四区| 国产精品高清免费在线观看| 久久精品一区二区国产| 国模叶桐国产精品一区| 亚洲国产精品美女| 麻豆九一精品爱看视频在线观看免费| 中文高清一区| 亚洲美女91| 黄色一区二区三区四区| 国产精品视频yy9299一区| 欧美视频中文字幕| 日韩写真视频在线观看| 国产精品日韩精品欧美精品| 欧美日韩国产区一| 黄色一区二区三区| 亚洲天堂激情| 亚洲永久精品国产| 狠狠色狠狠色综合| 欧美日韩午夜| 久久国产精品99国产| 欧美高清视频一区二区三区在线观看| 在线免费高清一区二区三区| 国产精品久久网| 久久精品最新地址| 欧美日本视频在线| 久久久精品一区二区三区| 亚洲欧美在线看| 国产欧美日韩视频一区二区| 亚洲福利在线看| 亚洲理伦电影| 农村妇女精品| 亚洲三级电影在线观看| 99国产成+人+综合+亚洲欧美| 国产精品美女在线| 久久精品久久综合| 国产精品久久综合| 国产乱码精品一区二区三区av| 国产一区二区三区在线观看网站| 亚洲欧美日产图| 激情久久久久久| 欧美在线黄色| 欧美二区在线看| 一区二区三区精品视频| 欧美日韩在线免费观看| 另类国产ts人妖高潮视频| 最新国产の精品合集bt伙计| 亚洲一区二区在线看| 亚洲国产成人在线播放| 美国十次了思思久久精品导航| 国产精品一区免费在线观看| 亚洲免费在线观看| 久久综合免费视频影院| 免费成人av在线看| 欧美成人一区二区| 国产一级一区二区| 亚洲免费在线视频| 一级成人国产| 国产视频一区在线| 伊人色综合久久天天五月婷| 9久草视频在线视频精品| 黑人中文字幕一区二区三区| 亚洲精华国产欧美| 欧美金8天国| 亚洲午夜高清视频| 久久久久久久久久久久久久一区| 久久久久成人网| 国产伦精品一区二区三区高清| 免费日韩成人| 欧美一级黄色录像| 国产一区二区三区黄视频| 一区二区日韩免费看| 亚洲精品久久7777| 欧美日韩一区二区在线播放| 欧美精品性视频| 国内不卡一区二区三区| 国产精品色婷婷久久58| 亚洲激情社区| 国产美女高潮久久白浆| 久久综合图片| 欧美午夜不卡在线观看免费| 中文在线资源观看视频网站免费不卡| 国产精品免费视频观看| 免费91麻豆精品国产自产在线观看| 国产精品久久久对白| 欧美精品性视频| 国产精品久线观看视频| 亚洲欧美日韩在线观看a三区| 久久高清福利视频| 亚洲人成在线观看一区二区| 亚洲免费成人| 国产日韩一区| 欧美视频四区| 欧美国产视频在线观看| 性一交一乱一区二区洋洋av| 亚洲国产精品一区二区三区| 国产香蕉97碰碰久久人人| 免费在线亚洲欧美| 在线视频欧美日韩精品| 国产欧美日韩另类一区| 国产日韩欧美综合精品|