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

軟件測(cè)試中嵌入式軟件靜態(tài)測(cè)試方法研究

2019-08-13 00:10:43萬(wàn)澤超朱轉(zhuǎn)平黎劍愛

萬(wàn)澤超 朱轉(zhuǎn)平 黎劍愛

摘 要:如今嵌入式系統(tǒng)在越來(lái)越多的場(chǎng)合被使用,嵌入式軟件的質(zhì)量是影響系統(tǒng)研發(fā)進(jìn)度及結(jié)果的關(guān)鍵因素。鑒于此,嵌入式軟件測(cè)試工作逐漸受到軟件研發(fā)部門及質(zhì)檢部門的重視,對(duì)應(yīng)用在這些領(lǐng)域的嵌入式軟件進(jìn)行專業(yè)的測(cè)試很有必要。本文基于對(duì)嵌入式軟件靜態(tài)測(cè)試相關(guān)問(wèn)題進(jìn)行分析和研究。

關(guān)鍵詞:嵌入式軟件;靜態(tài)測(cè)試;C++Test;PC-Lint

一、嵌入式軟件的特點(diǎn)及本身缺陷

首先,嵌入式軟件具有實(shí)時(shí)性。例如很多移動(dòng)智能設(shè)備系統(tǒng)中的嵌入式軟件要求軟件能夠?qū)崿F(xiàn)實(shí)時(shí)運(yùn)行,在特定時(shí)間內(nèi)需完成接收、處理、發(fā)送信息等一系列任務(wù),對(duì)處理時(shí)間、處理任務(wù)的時(shí)序性、軟件運(yùn)行速度以及避免運(yùn)行時(shí)內(nèi)存遺漏都有嚴(yán)格要求。嵌入式軟件要求高可靠性。嵌入式軟件一般有別與通用軟件適用環(huán)境,其工作環(huán)境常常伴隨著強(qiáng)輻射、強(qiáng)磁場(chǎng)、真空、遠(yuǎn)距離操控等復(fù)雜問(wèn)題。嵌入式軟件具有專用性。嵌入式軟件的開發(fā)一般是針對(duì)特定用途、特定場(chǎng)景,具有很強(qiáng)的專用性。嵌入式軟件與硬件關(guān)系密切。嵌入式系統(tǒng)由軟件和硬件組成,其中軟件部分正是為硬件部分設(shè)計(jì)的。嵌入式軟件的編寫還涉及到嵌入式系統(tǒng)的外圍設(shè)備,例如通信接口、輸入/輸出設(shè)備、外設(shè)接口等。由于C/C++語(yǔ)言本身風(fēng)格自由易出錯(cuò),程序員在編寫過(guò)程中要格外注意防止安全漏洞的產(chǎn)生。通過(guò)靜態(tài)測(cè)試工具輔助程序員排除緩沖區(qū)溢出、數(shù)組越界、指針引用錯(cuò)誤、內(nèi)存泄漏等安全隱患,消除代碼缺陷的同時(shí)保障程序的安全。

二、靜態(tài)測(cè)試工具及方法

由于嵌入式系統(tǒng)自身是由軟硬件結(jié)合的特點(diǎn),其軟件的代碼編寫過(guò)程中會(huì)涉及到對(duì)硬件的操作。由于C語(yǔ)言本身可以對(duì)硬件操作,又具有易學(xué)、靈活、可移植、高效率等特點(diǎn),C語(yǔ)言日漸成為嵌入式軟件的主要編程語(yǔ)言。C++是C語(yǔ)言的增強(qiáng)版,也在一定程度上繼承了C語(yǔ)言的缺陷,C/C++語(yǔ)言其本身都屬于弱類型語(yǔ)言,允許變量類型隱式轉(zhuǎn)換,導(dǎo)致開發(fā)效率高的同時(shí)可靠性較弱。而且C/C++編譯器不進(jìn)行強(qiáng)制類型檢查,也不做任何邊界檢查,很容易存在代碼安全隱患。大多數(shù)靜態(tài)測(cè)試工具都支持靜態(tài)測(cè)試規(guī)則檢查。對(duì)于嵌入式軟件測(cè)試規(guī)則的制定,國(guó)內(nèi)外已經(jīng)有很多成熟的案例。嵌入式軟件靜態(tài)測(cè)試和通用軟件靜態(tài)測(cè)試的方法大致相同,區(qū)別之處在于針對(duì)其軟件自身特點(diǎn)有針對(duì)性的去檢測(cè)。常見的測(cè)試工具有很多,例如FortifySCA、Coverity、C++Test、PC-Lint、CppCheck等,以下將一一闡述:

2.1C++Test

C++Test是Parasoft公司的基于C/C++的測(cè)試工具,涵蓋靜態(tài)測(cè)試、單元測(cè)試、回歸測(cè)試。C++Test靜態(tài)測(cè)試部分包含了很多典型行業(yè)規(guī)范,有BugDetective、EffectiveC++、GJB5369、MISRAC2004、MISRAC++2008等。C++Test還提供RuleWizard用戶自定義規(guī)則功能。C++Test的靜態(tài)測(cè)試具有基于數(shù)據(jù)流和基于模式的兩種分析技術(shù)。基于數(shù)據(jù)流的靜態(tài)測(cè)試分析技術(shù)也被稱為BugDetective。BugDetective模擬和識(shí)別代碼中復(fù)雜路徑,搜索并定義可疑點(diǎn),進(jìn)而暴露可能觸發(fā)運(yùn)行時(shí)缺陷的路徑。特別是針對(duì)遺留代碼庫(kù)和嵌入式代碼的運(yùn)行時(shí)檢測(cè)效果較差的情況,BugDetective可以無(wú)需測(cè)試用例和執(zhí)行代碼就發(fā)現(xiàn)除數(shù)為零、內(nèi)存和資源泄露、空指針引用等運(yùn)行時(shí)缺陷,而這些軟件錯(cuò)誤很多是基于模式的靜態(tài)分析技術(shù)不易檢測(cè)到的。C++test提供的可視化、易操作的靜態(tài)測(cè)試完全可以勝任嵌入式軟件的靜態(tài)測(cè)試工作。

3.2FortifySCA(FortifySourceCodeAnalysis)

FortifySCA是Fortify360系列產(chǎn)品中的靜態(tài)代碼分析器,旨在檢測(cè)源代碼中存在的安全漏洞。FortifySCA有全面的安全編碼規(guī)則,提供最新的安全編碼規(guī)則包下載來(lái)應(yīng)對(duì)新的安全漏洞,用戶還可以自定義安全規(guī)則。具有數(shù)據(jù)流、語(yǔ)義、結(jié)構(gòu)、控制流、配置流等分析引擎。支持C/C++、Java、JavaScript、.NET、PHP等20多種語(yǔ)言,支持Windows、Linux、Unix等操作平臺(tái)和多種編譯器,以及提供Eclipse、VisualStudio等IDE的插件。該工具分析源代碼分為三個(gè)步驟:轉(zhuǎn)換、掃描與分析、校驗(yàn)。轉(zhuǎn)換:源代碼關(guān)聯(lián)一個(gè)BuildID,創(chuàng)建中間文件。掃描與分析:掃描中間文件,分析源代碼,將檢測(cè)結(jié)果寫入FPR文件。校驗(yàn):驗(yàn)證所有源文件依據(jù)正確的規(guī)則包被掃描。但是其本身是商業(yè)軟件,價(jià)格昂貴。FortifySCA提供掃描方式:IDE插件掃描、命令行、AuditWorkbench(FortifySCA圖形用戶界面)掃描。例如想要掃描一個(gè)VisualStudio項(xiàng)目FreeBird,此時(shí)就可以用下列語(yǔ)句:sourceanalyzer-bFreeBirddevenvFreeBird.sln/REBUILDsourceanalyzer-bFreeBird-scan-fFreeBird.fprFreeBird是項(xiàng)目名,devenv表示visualstudio的可執(zhí)行程序,/REBUILD是devenv命令參數(shù)。

2.3PC-Lint

PC-Lint是GIMPELSOFTWARE公司開發(fā)的C/C++軟件代碼靜態(tài)分析工具,側(cè)重于代碼的邏輯分析。PC-Lint的歷史可以追溯到1979年貝爾實(shí)驗(yàn)室開發(fā)的靜態(tài)代碼分析工具Lint。而Lint起初是UNIX系統(tǒng)工具,后來(lái)衍生了Linux系統(tǒng)發(fā)行版本Splint和Windows系統(tǒng)發(fā)行版本PC-Lint。PC-Lint支持大多數(shù)流行編譯環(huán)境和編譯器。PC-Lint采用命令行和開發(fā)環(huán)境插件集成兩種方式。PC-Lint的基本命令行的形式為:c:\lint\lint-nt.exe-i"c:\lint"-ustd.lnt"d:\FreeBird\*.cpp"lint-nt.exe是PC-Lint在Windows下的可執(zhí)行程序,-i"c:\lint"表示查找到配置文件*.lnt的路徑,-ustd.lnt指明使用的那些配置文件,"d:\FreeBird\*.cpp"表示要測(cè)試的目標(biāo)文件。每個(gè)編號(hào)對(duì)應(yīng)信息可以通過(guò)PC-Lint安裝包中msg.txt文檔進(jìn)行查閱。

2.4CppCheck

CppCheck是針對(duì)C/C++的檢測(cè)非語(yǔ)法錯(cuò)誤的開源靜態(tài)檢測(cè)工具。一般作為編譯器或者其他靜態(tài)檢測(cè)工具的補(bǔ)充。支持命令行、插件版、獨(dú)立版三種檢測(cè)代碼缺陷方式。其中獨(dú)立版操作較其他工具簡(jiǎn)單。報(bào)告類別為:錯(cuò)誤、警告、風(fēng)格警告、可移植性警告、性能警告、信息消息。CppCheck的基本命令行的形式為:cppcheck--enable=all"d:\FreeBird\*.cpp"--enable=all表示全部啟用以上6種報(bào)告類型,"d:\FreeBird\*.cpp"表示要測(cè)試的目標(biāo)文件。

2.5Coverity

三、結(jié)束語(yǔ)

嵌入式系統(tǒng)是計(jì)算機(jī)技術(shù)、現(xiàn)代網(wǎng)絡(luò)與通信技術(shù)、自動(dòng)控制技術(shù)等高度融合的產(chǎn)物。嵌入式系統(tǒng)適應(yīng)于對(duì)功能、可靠性、體積、功耗、成本等綜合指標(biāo)具有嚴(yán)格要求的專業(yè)計(jì)算機(jī)應(yīng)用系統(tǒng)。目前,嵌入式系統(tǒng)已經(jīng)在我們的生活和工作中得到廣泛的應(yīng)用。隨著嵌入式處理器和硬件技術(shù)的快速度發(fā)展,開發(fā)實(shí)時(shí)嵌入式系統(tǒng)產(chǎn)品的復(fù)雜程度也在日益提高。在該類產(chǎn)品的開發(fā)過(guò)程中,一個(gè)重要環(huán)節(jié)是對(duì)嵌入式軟件的嚴(yán)格測(cè)試;為此對(duì)嵌入式軟件的測(cè)試方法進(jìn)行研究具有十分重要的現(xiàn)實(shí)意義。

參考文獻(xiàn):

[1] 嵌入式計(jì)算機(jī)系統(tǒng)的發(fā)展與展望[J].于子萍.硅谷.2017(16)

[2] 嵌入式系統(tǒng)仿真研究[J].王曉華,顧逸東,陳蔚薇,張濤.微計(jì)算機(jī)信息.2018(16)

[3] 嵌入式軟件可靠性仿真測(cè)試環(huán)境框架[J].王軼辰,劉斌,阮鐮.計(jì)算機(jī)工程.2016(19)

(作者單位:珠海格力電器股份有限公司)

主站蜘蛛池模板: 免费观看精品视频999| 2019年国产精品自拍不卡| 亚洲狠狠婷婷综合久久久久| 久综合日韩| 中文字幕自拍偷拍| 国产精品中文免费福利| 亚洲视屏在线观看| 美女内射视频WWW网站午夜| 人妻无码中文字幕一区二区三区| 91福利在线观看视频| 91在线视频福利| 国产凹凸视频在线观看| 国产成人乱无码视频| 国产91小视频| 久久久久中文字幕精品视频| 免费观看国产小粉嫩喷水 | 日韩第九页| 国产精品深爱在线| 视频国产精品丝袜第一页| 中文字幕av无码不卡免费| 国产激情无码一区二区免费| 视频一区亚洲| 亚洲国产第一区二区香蕉| 99r在线精品视频在线播放| 国产一级在线观看www色| 成人a免费α片在线视频网站| 国产欧美日韩综合一区在线播放| 内射人妻无码色AV天堂| 伊人久久精品无码麻豆精品 | 国产丝袜91| 成人免费视频一区| 亚洲av综合网| 91青青视频| 黄色污网站在线观看| 亚洲人成影视在线观看| 91系列在线观看| 亚洲天堂伊人| 青青草原国产免费av观看| www.youjizz.com久久| 91精品国产自产在线观看| 欧美色视频日本| 国产精品尤物在线| 亚国产欧美在线人成| 日韩高清在线观看不卡一区二区| 无码一区二区波多野结衣播放搜索| 91视频区| 久久国产乱子伦视频无卡顿| 无遮挡国产高潮视频免费观看| 亚洲视频免费在线| 老司国产精品视频| 国产精品刺激对白在线| 一级成人a做片免费| 欧美另类图片视频无弹跳第一页| 最新国产你懂的在线网址| 国产理论一区| 成人午夜网址| 天天躁夜夜躁狠狠躁躁88| 为你提供最新久久精品久久综合| 成人免费午间影院在线观看| 最新日韩AV网址在线观看| 亚洲一本大道在线| 麻豆国产精品一二三在线观看| 国产91丝袜| 亚洲综合精品香蕉久久网| 亚洲 欧美 偷自乱 图片| 日本高清免费一本在线观看 | 国产亚洲精久久久久久久91| 五月婷婷综合色| 91精品专区国产盗摄| 亚洲国产成人精品青青草原| 成人欧美日韩| 国产视频久久久久| 国产视频入口| 日本人妻丰满熟妇区| 日韩精品亚洲精品第一页| 国产91丝袜在线播放动漫| 亚洲色图综合在线| 伊人久综合| 天堂av综合网| 亚洲人成影院在线观看| 精品视频一区在线观看| 国产一区二区色淫影院|