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

基于VTest的星載嵌入式軟件目標碼覆蓋測試

2018-02-14 12:49:08左蕓張楊
數字技術與應用 2018年10期

左蕓 張楊

摘要:目標碼覆蓋測試是星載嵌入式軟件測試過程的關鍵步驟,能夠進一步保證軟件測試的完整性和充分性。VTest測試工具模擬嵌入式虛擬測試平臺,導入被測源代碼,VTest自動分析源代碼的函數信息,對程序目標碼進行插樁,執行目標碼程序,統計目標碼程序語句和分支覆蓋信息,分析目標碼的執行情況,進一步提升星載嵌入式軟件質量。

關鍵詞:VTest;目標碼;覆蓋率;嵌入式軟件

中圖分類號:TP311? ? 文獻標識碼:A? ? ?文章編號:1007-9416(2018)10-0000-00

1引言

近年來我國衛星技術發展迅速,為人類帶來了巨大的社會和經濟效益。目前使用的導航衛星使用壽命都在十年以上,要求星載軟件在太空正常運行時間長,這樣對于星載嵌入式軟件的可靠性和安全性有著極高的要求,促使航天星載軟件在各個開發階段都需要經過完整嚴格的測試。軟件覆蓋測試是驗證軟件功能、處理流程正確性的一種重要的方法和手段。傳統的覆蓋率測試是源代碼級別的測試執行和覆蓋信息統計,但是隨著航天技術的發展,航天產品功能越來越強大,航天軟件設計也越來越復雜,越來越多的軟件采用C語言或高級語言編制,高級語言需要轉換成目標碼在才能在處理機上運行。隨著C語言和其他高級語言編制的軟件越來越多,源代碼和目標碼差異產生的問題的幾率也就越來越大。編譯器不同、編譯選項的不同都會產生不同的目標碼程序,因此對高安全等級的星載嵌入式軟件進行目標碼語句和分支覆蓋測試,才能滿足完全高安全等級軟件測試覆蓋的要求。

2虛擬平臺構建

嵌入式軟件編譯器的編譯過程和優化技術會導致產生的目標碼與源代碼之間非100%對應,因此需要借助測試工具插樁和統計。VTest測試工具可以進行目標碼覆蓋率測試。VTest平臺中的各種仿真模型都可以封裝成獨立的Windows動態鏈接庫,以便于通過“搭建”的方式快速構建虛擬目標系統。VTest中已建立了常用的嵌入式處理器,如80x86、TSC695、TI C3X、ADSP21020/60、8031/32、AT697的CPU模擬器模型庫、以及常用的芯片仿真模型庫,如8252、CAN總線、1553芯片等。在構建虛擬目標系統時,從已有的仿真模型庫中選取所需的模型庫,并進行必要的配置連接即可,避免了重復開發工作。

在進行目標碼測試之前,需要事先知悉被測的軟件的運行芯片、外部接口類型、開始運行地址、主頻、內存使用范圍等信息。VTest為用戶提供圖形化方式構建虛擬系統,本次例舉的軟件為AT697F芯片上運行軟件,開發環境為Eclipse,編程語言為C語言。在VTest中新建項目,選擇芯片型號“AT697F”,在芯片屬性設置中設置主頻,項目名,項目版本,檢查文件日期,設置目標文件為被測軟件的elf,選擇解析庫,選擇全部的源文件路徑,保存設置的項目信息。

項目信息設置完成后選擇菜單“調試->開始調試/結束調試”進入調試狀態,如果前期設置步驟均正確,則可在調試框中查看到“創建虛擬機成功”的提示。如果創建不成功,則提示相應的錯誤原因。如圖1所示。

3目標碼覆蓋測試過程

在VTest中成功建立AT697F虛擬測試平臺后即可開展下一步測試工作。VTest主界面是標準的windows多窗口樣式,主界面頂部包含菜單欄、工具欄,界面中間部分是源代碼編輯/顯示窗口,其它還包括工作區、寄存器、函數調用棧、函數統計、代碼追蹤、變量顯示、信息輸出等調試輔助窗口。這些窗口可以根據個人需要打開和關閉,可以自行拖放并調整其顯示位置和大小。根據源代碼文件路徑導入的源程序,VTest自動分析C語言源程序所有的函數信息,并在對應源文件下展現其列表。用戶雙擊函數名稱時,工具自動打開源代碼文件窗口并將光標定位至相應函數開始的位置。在VTest的項目信息上查看工程的源代碼文件,選擇被測函數,以Frame_ACK函數為例,右鍵選擇“匯合匯編模式”可以查看目標碼,VTest顯示窗口以列表形式顯示目標軟件的反匯編代碼,所有目標代碼根據地址自小至大進行排列,依次顯示目標碼地址、目標碼數據值以及反匯編字符串。如圖2所示。

CPU模擬器處于停止狀態時,可對寄存器值進行修改,直接點擊需修改的寄存器值,進入文本編輯模式后輸入數值并按回車即可。寄存器數值本次執行改變時,窗口中寄存器數值采用紅色文本高亮顯示。在寄存器中選擇NPC,寫入下一次需要運行到的地址,這樣程序可以快速運行至設置的地址,工具也提供單步運行的方式運行目標碼程序。

VTest判斷當前正在執行的函數,自動添加函數中的全部局部變量以及函數參數,變量監視窗口中,運行過程中不可刪除和添加變量,也不可更改變量值信息,只能顯示局部變量信息。運行函數前,根據實際情況分別設置參數值分別運行TRUE分支和FLASE分支,運行完相應分支后,將覆蓋信息輸出保存為后綴名為.cox的覆蓋文件。多次執行可以保存多個覆蓋信息文件。如圖3所示。

4目標碼覆蓋率信息查看

使用覆蓋統計工具UCA.exe查看覆蓋信息文件和覆蓋統計報告,查看目標碼覆蓋信息需要被測軟件信息、處理器信息、目標碼信息。在UCA工具中打開VTest工程,添加源程序文件,設置主頻,添加擴展名為.cox的覆蓋文件,統計并輸出報告。覆蓋率報告生成后,UCA自動打開目標文件覆蓋率統計報告。覆蓋率報告分4部分組成,第一部分是項目的基本信息,包括項目名稱、版本、覆蓋率統計時間、所統計的覆蓋率文件列表等;第二部分是覆蓋率總體情況概述,包括項目總語句分支數及覆蓋率表格;第三部分是函數覆蓋率統計,使用柱狀圖顯示每個函數的語句分支覆蓋率;第四部分是目標碼反匯編覆蓋率詳情。覆蓋統計報告顯示所有函數的目標碼語句和分支的目標碼覆蓋信息,選擇單個函數可以查看單個函數的具體覆蓋信息。

已經執行過的目標碼語句句首以“EXECUTED”顯示,未執行語句句首以紅色“NOTEXECU”進行區分,方便用戶定位特定目標碼地址覆蓋率的覆蓋原因,以便于用戶分析用例的執行情況。進行目標碼覆蓋率統計時可添加多個后綴名為.cox的覆蓋文件,測試工具將統計各個覆蓋文件的覆蓋信息,并顯示最終的目標碼覆蓋情況。如圖4所示。

5 結語

對于星載嵌入式軟件要求越來越嚴格的形勢下,對星載嵌入式軟件進行目標碼覆蓋測試是十分必要的。本文描述了VTest測試工具對星載嵌入式軟件目標碼覆蓋測試的過程和方法,采用測試工具虛擬目標平臺,加載被測星載嵌入式軟件,采用插樁的方法記錄程序語句和分支的執行,使用統計工具查看目標碼的覆蓋信息,查看程序目標碼語句和分支的執行情況,對已執行和未執行的目標碼進行分析和研究,完成對星載嵌入式軟件的目標碼覆蓋測試。

參考文獻

[1]楊芳,賀紅衛,謝鵬,饒京宏.嵌入式軟件目標碼仿真測試平臺的研究與設計[J].計算機工程與設計,2009,30(19):4364-4367.

[2]黃晨,董燕,于倩,虞礪琨.基于目標碼的測試覆蓋不可達分析方法[J].測控技術,2017,(36):100-103+107.

[3]王永孟,馬利東.嵌入式軟件目標碼測試分析[J].科技經濟市場,2009,(4):12+11.

[4]喬文軍.嵌入式軟件測試平臺的研究與實現[D].南京航空航天大學,2007.

[5]劉穎,王英,劉漫丹.嵌入式軟件測測試覆蓋[J].自動化儀表,2012,33(6):63-66

[6]孫隴平.嵌入式軟件覆蓋率測試的研究與應用[J].現代電子技術,2014,37(18):67-69.

The Spaceborne Embedded Software Object Code Coverage Testing based on VTest

ZUO Yun, ZHANG Yang

(China Electronics Technology Group Corporation Thirty-two Institute, Shanghai 201808)

Abstract: Test coverage based on object code is a key step of spaceborne embedded software testing process, it can ensure the integrity and adequacy of the test. Test tool of VTest can simulate the embedded virtual test platform, it can import the source code, it can automatically analyze the function information of source code, the pile foundation is inserted into object code, execute object code, count the statement and branch coverage based on object code, analysis of object code execution, it can help to further improve the spaceborne embedded software quality.

Key words: VTest; object code; coverage; embedded software

主站蜘蛛池模板: 亚洲成人在线免费| 麻豆国产原创视频在线播放| 亚洲欧美日韩成人高清在线一区| 九九免费观看全部免费视频| 成人免费一级片| 99这里只有精品在线| 综合人妻久久一区二区精品 | 亚洲免费成人网| 国产本道久久一区二区三区| 欧美在线视频不卡| 日韩毛片免费观看| 日本三级欧美三级| 71pao成人国产永久免费视频| 国产成人精品一区二区三区| 国产欧美亚洲精品第3页在线| 影音先锋丝袜制服| 国产精品一线天| 国产精品美人久久久久久AV| 国产成人一区免费观看| 国产91精选在线观看| 日本久久网站| 69精品在线观看| 91在线无码精品秘九色APP| 激情视频综合网| 亚洲人人视频| 日本www色视频| 男女精品视频| 无码AV日韩一二三区| 色噜噜狠狠狠综合曰曰曰| 亚洲精品视频免费| 国产靠逼视频| 国产成人8x视频一区二区| 青青操视频免费观看| 久久一色本道亚洲| 91色在线观看| 国产国语一级毛片在线视频| 欧美不卡视频一区发布| 国产黄在线观看| 中国美女**毛片录像在线| 欧美成人午夜影院| 在线观看av永久| 精品国产aⅴ一区二区三区| 国产白丝av| 黄色成年视频| 97se亚洲综合在线| 国产成人亚洲无码淙合青草| 国产乱码精品一区二区三区中文 | 另类欧美日韩| 内射人妻无套中出无码| 国产成人精品一区二区三区| 日本尹人综合香蕉在线观看 | 又黄又湿又爽的视频| 国产欧美日本在线观看| 老司机aⅴ在线精品导航| 91麻豆精品国产91久久久久| 欧美亚洲国产精品久久蜜芽| 亚洲无码精彩视频在线观看| 亚洲精品另类| 日韩乱码免费一区二区三区| www.精品国产| 国产黄在线免费观看| 美女国产在线| 久久久波多野结衣av一区二区| 亚洲视频免费播放| 国产丝袜无码一区二区视频| 国产十八禁在线观看免费| 国产9191精品免费观看| 国产亚洲精品91| 青青草国产在线视频| 国产打屁股免费区网站| 亚洲区第一页| 婷婷丁香色| 丁香婷婷激情综合激情| 亚洲性视频网站| 国产精品大白天新婚身材| 首页亚洲国产丝袜长腿综合| 久久国产精品77777| 91伊人国产| 成年网址网站在线观看| 国产精品夜夜嗨视频免费视频| 一级毛片免费观看不卡视频| 亚洲高清中文字幕|