• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于故障注入的嵌入式測繪導航軟件測試技術研究*

    2018-01-30 01:45:16華,揚,強,
    測試技術學報 2018年1期
    關鍵詞:故障注入測試軟件軟件測試

    王 華, 高 揚, 吳 強, 張 侹

    (1. 西安測繪研究所, 陜西 西安 710054; 2. 地理信息工程國家重點實驗室, 陜西 西安 710054)

    0 引 言

    嵌入式測繪導航軟件是指運行于以北斗用戶終端、 嵌入式GIS終端為代表的嵌入式測繪導航設備之上, 為用戶提供精確定位、 高精度授時、 短報文通信、 精密測量、 地圖顯示、 路徑規(guī)劃、 智能導航、 地圖標繪、 地形分析等任務保障的嵌入式軟件系統(tǒng), 具有導航定位信息和地理空間信息的接收、 采集、 處理、 分析、 顯示、 管理等功能.

    嵌入式測繪導航軟件測試涉及功能性、 可靠性、 安全性和容錯性等諸多方面, 其軟件故障具有以下特點: ① 故障類型多樣: 嵌入式測繪導航軟件需要進行多種類型的測試, 其故障類型較為多樣, 如接口協(xié)議故障、 軟件界面故障、 數(shù)據(jù)處理故障、 地圖數(shù)據(jù)故障等; ② 故障難以檢測: 嵌入式測繪導航軟件的很多故障在正常運行情況下發(fā)生概率很低, 采用常規(guī)測試方法很難發(fā)現(xiàn), 如北斗用戶終端軟件的衛(wèi)星完好性檢測和自毀等相關功能故障; ③ 故障后果嚴重: 嵌入式測繪導航軟件應用廣泛, 其很多故障的發(fā)生會導致嚴重的后果, 如定位算法故障或對異常信號的處理故障將會引起定位錯誤或定位精度下降, 從而導致飛機、 汽車等自動駕駛功能失效或發(fā)生嚴重事故; 又如路徑規(guī)劃功能故障或導航圖數(shù)據(jù)故障可能導致“繞路”、 “費時”和“無路可走”等行車事故.

    嵌入式測繪導航軟件的這些特點對軟件測試工作提出了挑戰(zhàn), 為了提高測試的有效性和測試效率, 我們引入基于故障注入的軟件測試技術. 故障注入是一種仿真技術, 它通過人為的手段直接把故障引入到被驗證目標系統(tǒng)之中, 從而縮短故障的潛伏期, 加速系統(tǒng)的失效過程[1]. 通過這種方法, 模擬目標系統(tǒng)在實際運行環(huán)境中可能發(fā)生的各種故障, 讓目標系統(tǒng)帶著故障運行, 然后通過對目標系統(tǒng)的運行情況、 系統(tǒng)行為等進行觀察、 記錄和分析, 驗證目標系統(tǒng)故障檢測、 故障隔離、 系統(tǒng)恢復和重組等故障處理機制的有效性, 為完善和改進對目標系統(tǒng)的設計提供重要的反饋信息[2].

    基于故障注入的嵌入式測繪導航軟件測試是在嵌入式測繪導航軟件仿真測試基礎上, 結合故障注入過程的特點, 將故障分析、 故障建模和故障注入技術有效應用于仿真測試過程當中, 有效擴大被測系統(tǒng)的測試空間, 提高嵌入式測繪導航軟件測試的有效性和充分性.

    1 測試框架

    針對嵌入測繪導航軟件測試實際, 提出如圖 1 所示的故障注入測試框架.

    圖 1 基于故障注入的嵌入式測繪導航軟件測試框架Fig.1 Embedded surveying, mapping and navigation software testing framework based on fault injection

    1) 軟件測試需求分析: 從軟件需求規(guī)格說明出發(fā), 根據(jù)軟件的可靠性、 安全性、 容錯性等方面要求進行軟件測試需求分析, 梳理出需要采用故障注入測試方法的功能、 性能、 接口等測試項.

    2) 故障模型建立: 在軟件故障注入測試需求分析的基礎上, 參考通用故障模型, 從便于測試開展和確保測試效果的角度出發(fā)建立適用于嵌入式測繪導航軟件測試的故障模型.

    3) 故障數(shù)據(jù)生成: 根據(jù)嵌入式測繪導航軟件測試故障模型, 設計測試用例, 生成故障數(shù)據(jù), 包括輸入故障數(shù)據(jù)、 故障注入位置和條件、 預期輸出等.

    4) 故障注入: 依據(jù)測試用例, 向待測目標系統(tǒng)注入故障.

    5) 目標系統(tǒng): 對注入的具體故障作出反應, 并給出相應的反饋, 目標系統(tǒng)除了被測軟硬件環(huán)境外, 還應包括與之相連的外圍仿真環(huán)境、 測試工具和測量設備等.

    6) 反饋數(shù)據(jù)收集: 收集目標系統(tǒng)的反饋輸出數(shù)據(jù).

    7) 測試結果分析: 將收集到的目標系統(tǒng)反饋數(shù)據(jù)和測試用例的預期輸出進行比較分析, 形成測試結果.

    8) 測試管理: 在測試管理工具的支持下, 對故障注入測試的全過程進行管理.

    2 故障模型

    故障模型指在故障注入過程中根據(jù)不同的測試對象及其所面臨的需要處理的故障類型, 所采用的各種不同的故障形式[3]. 故障注入測試結果的正確性和精確性直接取決于故障模型的準確程度, 故障模型是故障注入是否可以進行的關鍵. 故障模型是在一定層次上對目標系統(tǒng)真實故障的抽象. 抽象級別不同, 系統(tǒng)的故障模型也不同.

    按照引起故障的方式將故障模型分為基于硬件的故障模型和基于軟件的故障模型[4].

    1) 基于硬件的故障模型: 由硬件引起的故障模型, 如寄存器故障、 內存故障、 電壓不穩(wěn)、 意外斷電、 時鐘偏移、 電磁干擾等;

    2) 基于軟件的故障模型: 由軟件引起的故障模型, 如協(xié)議錯誤、 操作錯誤、 輸入數(shù)據(jù)錯誤、 指針錯誤、 內存溢出等.

    按照故障測試的類別將故障模型分為白盒測試故障模型和黑盒測試故障模型.

    3) 白盒測試故障模型: 需要通過改變軟件源代碼來注入故障, 如通過改變賦值語句和邏輯結構來注入故障, 引起這類故障的軟件缺陷可采用正交分類方法[5];

    4) 黑盒測試故障模型: 不需要改變軟件源代碼, 而只需改變軟件輸入來進行故障注入, 如數(shù)據(jù)格式錯誤、 數(shù)據(jù)類型錯誤、 數(shù)據(jù)輸入順序錯誤、 數(shù)據(jù)超出范圍等.

    考慮嵌入式測繪導航軟件特點和測試需要, 這里主要研究基于軟件的黑盒測試故障模型. 故障模型一般用故障的公共屬性來表征. 目前, 采用較多的故障模型是使用故障的4個屬性來描述目標系統(tǒng), 即故障位置、 故障類型、 故障持續(xù)時間和故障注入時刻[6]. 其中, 故障持續(xù)時間可分為永久性故障、 瞬態(tài)故障和間歇性故障, 在嵌入式測繪導航軟件測試中我們并不關心. 從測試用例完整性和便于測試開展的角度出發(fā), 建立嵌入式測繪導航軟件故障模型, 包括故障類型、 故障名稱、 故障輸入、 可能導致的軟件故障和軟件預期反應等5個屬性, 表 1 列出了部分常見嵌入式測繪導航軟件故障, 主要包括導航電文類[7]、 接口協(xié)議類[8]、 處理算法類、 軟件界面類、 系統(tǒng)安全類等幾類故障.

    表 1 部分常見嵌入式測繪導航軟件故障

    續(xù)表1:

    故障類型故障名稱故障輸入可能導致的軟件故障軟件預期反應故障說明接口協(xié)議類校驗錯誤修改正常語句的校驗字段為其他有效值(0~9,A~F)未能識別校驗錯誤,導致軟件作出錯誤反應或死機等其他故障識別出校驗錯誤,丟棄該指令測試軟件對校驗錯誤的檢測能力語句格式錯誤語句不以$或!開始,不以結束未能識別該語句格式錯誤,導致軟件作出錯誤反應或死機等其他故障識別出該語句格式錯誤,丟棄該指令測試軟件對錯誤語句格式的檢測能力無效字符語句的數(shù)據(jù)字段為無效字符,如經度方向取值為E/W,指令中設置為N未能識別該無效字符,導致軟件作出錯誤反應或死機等其他故障識別出該無效字符,丟棄該指令或該數(shù)據(jù)字段測試軟件對無效字符的檢測能力無效發(fā)送器標識符設置發(fā)送器標識符為BD、GP、GN、GL、GA、CC以外的其他字符未能識別該無效發(fā)送器標識符,導致軟件作出錯誤反應或死機等其他故障識別出該無效發(fā)送器標識符,丟棄該指令測試軟件對無效發(fā)送器標識符的檢測能力無效語句標識符設置語句標識符為規(guī)定語句標識符以外的其他標識符,如ABC未能識別該無效語句標識符,導致軟件作出錯誤反應或死機等其他故障識別出該無效語句標識符,丟棄該指令測試軟件對無效語句標識符的檢測能力數(shù)值超出范圍語句的數(shù)據(jù)字段超出取值范圍,如MMS語句的定位模式字段范圍為0~9,設置為10未能識別該數(shù)據(jù)字段,導致軟件作出錯誤反應或死機等其他故障識別出該數(shù)據(jù)字段超出范圍,丟棄該指令或該字段測試軟件對數(shù)值超出范圍的檢測能力時間錯誤設置語句中的日期或時間字段為錯誤日期或時間,如小時設置為25小時未能識別該時間錯誤,導致軟件時間錯誤或死機等其他故障識別出時間錯誤,丟棄該指令或該字段測試軟件對錯誤時間的檢測能力處理算法類接收機自主完好性監(jiān)測故障5顆可見衛(wèi)星正常定位情況下,設置其中一顆衛(wèi)星偽距異常未能識別偽距異常衛(wèi)星,導致定位精度下降識別出偽距異常衛(wèi)星,剔除掉該顆衛(wèi)星后正常定位測試RAIM功能是否正??梢娦l(wèi)星不足故障4顆可見衛(wèi)星正常定位情況下,關閉其中一顆衛(wèi)星一段時間后恢復正??梢娦l(wèi)星不足4顆時間段內,無法正常定位采用三星定位算法定位或根據(jù)正常定位數(shù)據(jù)和狀態(tài)進行位置推算測試可見衛(wèi)星不足4顆時定位的連續(xù)性衛(wèi)星仰角過低故障正常定位情況下,增加一顆衛(wèi)星仰角小于5度未能識別低仰角衛(wèi)星,導致定位精度下降識別出低仰角衛(wèi)星,剔除掉該顆衛(wèi)星后正常定位測試軟件對低仰角衛(wèi)星的處理多徑信號故障正常定位情況下,增加信號多徑軟件無抗多徑算法,導致定位精度下降采用抗多徑算法,消除或減輕多徑影響,定位精度下降不明顯測試軟件對信號多徑的處理能力欺騙干擾故障正常定位情況下,增加欺騙干擾信號軟件無法識別欺騙干擾信號,定位到錯誤位置采用抗欺騙干擾算法,正確定位測試軟件對欺騙干擾信號的處理能力大數(shù)據(jù)量輸入故障采用大數(shù)據(jù)量進行操作,如對于面積量算功能,點擊獲取100個點進行量算軟件嚴重變慢或發(fā)生死機、崩潰等其他故障軟件正常運行測試軟件對大數(shù)據(jù)量等極端情況的處理能力軟件界面類非法字符在軟件界面輸入非法數(shù)據(jù),如規(guī)定有效字符為數(shù)字,實際輸入為字母或特殊符號軟件發(fā)生死機、崩潰等故障提示非法字符,重新輸入測試軟件界面對輸入數(shù)據(jù)的容錯處理能力快速操作在軟件界面中快速點擊進行操作,如在地圖顯示界面中快速進行放大、縮小和漫游等操作軟件對部分操作無反應或發(fā)生死機、崩潰等故障軟件正常運行測試軟件在快速操作情況下是否正常運行不按流程操作在軟件界面中,不按照規(guī)定流程進行操作軟件發(fā)生死機、崩潰等故障軟件正常運行,給出相應提示測試軟件在不按正常流程操作時的健壯性系統(tǒng)安全類突然斷電運行正常運行情況下突然斷電,然后重新加電軟件不能正常運行,數(shù)據(jù)損壞或丟失軟件正常運行,歷史數(shù)據(jù)不丟失測試軟件在突然斷電情況下對數(shù)據(jù)的保護能力錯誤用戶和密碼采用錯誤用戶名和密碼進行軟件登陸或進行密碼驗證非權限用戶對軟件進行操作,造成安全隱患軟件無法進入或部分功能無法使用測試軟件對用戶的安全驗證能力自毀進行軟件自毀操作,并輸入相應確認碼軟件無法自毀或數(shù)據(jù)未能清除軟件進入自毀程序,并給出相應提示,自毀后清除相關數(shù)據(jù)測試軟件對自毀功能的處理情況

    3 故障注入方法

    針對上面總結的幾類常見嵌入式測繪導航軟件故障, 結合具體的軟件測試方法, 其故障注入方法包括場景注入法、 接口注入法、 界面注入法和綜合注入法.

    1) 場景注入法

    場景注入法即通過測試場景注入故障, 其關鍵在于設計故障場景. 對于北斗用戶終端軟件測試, 可通過北斗信號模擬源進行測試場景設計, 如導航電文類故障和處理算法類故障中的接收機自主完好性監(jiān)測故障、 可見衛(wèi)星不足故障等; 對于嵌入式GIS軟件測試, 可通過配置或修改地圖數(shù)據(jù)來生成故障測試場景, 如圖號錯誤故障、 數(shù)據(jù)完整性故障等.

    2) 接口注入法

    接口注入法即通過軟件接口注入故障, 其關鍵在于設計故障接口數(shù)據(jù). 故障接口數(shù)據(jù)主要按照接口協(xié)議的格式要求進行設計, 如校驗錯誤、 數(shù)值超出范圍等接口協(xié)議類故障.

    3) 界面注入法

    界面注入法即通過操作軟件界面注入故障, 其關鍵在于尋找可導致軟件故障的界面操作方法和步驟, 如異常輸入、 快速操作、 亂序操作等.

    4) 綜合注入法

    綜合注入法是綜合運用測試場景、 軟件接口、 軟件界面操作等方法的故障注入方法. 如在場景中設計了某個故障, 但是在測試過程中需要通過軟件界面操作來觸發(fā)這個故障.

    嵌入式測繪導航軟件的故障注入需要根據(jù)不同的故障類型選擇相應的故障注入方法, 使用時要靈活運用以達到最好的效果.

    5) 應用驗證

    基于故障注入的嵌入式測繪導航軟件測試技術在某型北斗用戶終端軟件測試和某型嵌入式GIS軟件測試中進行了應用, 按照本文提出的測試框架進行了測試環(huán)境構建、 測試需求分析、 故障模型建立、 測試用例設計、 故障數(shù)據(jù)生成、 故障注入、 故障數(shù)據(jù)收集和測試結果分析等工作, 相比之前的同類軟件測試, 增強了軟件故障測試的針對性, 有效提高了故障檢測效率, 提升了測試的有效性和充分性, 具體如表 2 所示.

    表 2 基于故障注入的嵌入式測繪導航軟件測試技術應用結果

    4 結 論

    嵌入式測繪導航軟件具有故障類型多樣、 故障難以檢測、 故障后果嚴重等特點, 這對其軟件測試工作提出了極大挑戰(zhàn). 本文針對嵌入式測繪導航軟件測試, 提出一種基于故障注入的測試技術, 結合具體的測試工作構建了測試框架, 建立了實用的測試模型, 列出了部分常見的嵌入式測繪導航軟件故障, 提出了幾種故障注入方法, 并在實際的軟件測試工作中進行了應用驗證. 測試結果表明, 該技術可有效提高嵌入式測繪導航軟件故障檢測效率, 提升測試的有效性和充分性.

    [1] 王勝文. 基于軟件的故障注入方法研究[D]. 哈爾濱: 哈爾濱工業(yè)大學, 2005.

    [2] 王金波, 張濤. 基于故障注入的嵌入式軟件安全性測試框架及實現(xiàn)[J]. 計算機應用研究, 2012, 29(8): 2991-2995.

    Wang Jinbo, Zhang Tao. Framework and realization of embedded software safety-testing based on fault injection[J]. Application Research of Computers, 2012, 29(8): 2991-2995. (in Chinese)

    [3] 李娟. 基于故障注入的軟件安全測試技術研究[D]. 合肥: 中國科學技術大學, 2009.

    [4] 葉焰鋒. 基于故障模型的軟件故障注入方法研究[D]. 武漢: 華中師范大學, 2008.

    [5] 賀仁亞, 唐龍利. 用于故障注入的軟件代碼缺陷模式研究[C]. 第六屆全國軟件測試學術會議論文集, 2015: 28-37.

    [6] 徐曉露. 基于故障注入的嵌入式系統(tǒng)測試研究[D]. 杭州: 浙江大學, 2008.

    [7] 中國衛(wèi)星導航系統(tǒng)管理辦公室. 北斗衛(wèi)星導航系統(tǒng)空間信號接口控制文件公開服務信號(2.1版)[DB/OL]. http:∥nteract.beidou.gov.cn/interact/download.service?attachment=2016/11/07/13411.pdf.

    [8] BD 410004-2015. 北斗/全球衛(wèi)星導航系統(tǒng)(GNSS)接收機導航定位數(shù)據(jù)輸出格式[S].

    猜你喜歡
    故障注入測試軟件軟件測試
    模擬訓練裝備故障注入系統(tǒng)研究
    網絡自適應測試軟件運行方法設計
    基于OBE的軟件測試課程教學改革探索
    計算機教育(2020年5期)2020-07-24 08:53:20
    SM4算法前四輪約減輪故障注入分析
    采用修改-回放原理的1553B故障注入方法
    測控技術(2018年7期)2018-12-09 08:58:10
    EXCEL和VBA實現(xiàn)軟件測試記錄管理
    電子制作(2018年16期)2018-09-26 03:27:18
    自動化檢測EPU10A板卡系統(tǒng)設計與實現(xiàn)
    關于軟件測試技術應用與發(fā)展趨勢研究
    電子測試(2017年15期)2017-12-18 07:19:20
    軟件測試工程化模型及應用研究
    列車MVB總線故障注入研究
    驻马店市| 西吉县| 手机| 城口县| 曲松县| 广州市| 闸北区| 遵义市| 浪卡子县| 修文县| 池州市| 靖边县| 临武县| 万盛区| 运城市| 新营市| 定日县| 邯郸县| 南郑县| 抚顺县| 富民县| 梁平县| 五华县| 石台县| 日喀则市| 宁陕县| 星子县| 江口县| 股票| 西青区| 赤城县| 苏州市| 磐石市| 嘉祥县| 东丽区| 抚顺市| 望江县| 永靖县| 嘉兴市| 长沙市| 孝感市|