chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

在尋求無(wú)錯(cuò)誤軟件的過(guò)程中增強(qiáng)靜態(tài)代碼分析

星星科技指導(dǎo)員 ? 來(lái)源:嵌入式計(jì)算設(shè)計(jì) ? 作者:Rutul Dave ? 2022-06-28 15:58 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式軟件無(wú)處不在,并在各種設(shè)備中提供關(guān)鍵功能,從最新的智能手機(jī)和游戲小工具到救生醫(yī)療設(shè)備。創(chuàng)建嵌入式軟件的工程組織明白,確保代碼質(zhì)量是一個(gè)關(guān)鍵的差異化因素和競(jìng)爭(zhēng)優(yōu)勢(shì)。與其他測(cè)試和驗(yàn)證方法一起,許多公司利用代碼測(cè)試和現(xiàn)代靜態(tài)分析的優(yōu)勢(shì)在開發(fā)早期識(shí)別缺陷。在過(guò)去幾年中,嵌入式市場(chǎng)研究公司 VDC Research 的各種報(bào)告表明,采用靜態(tài)分析作為關(guān)鍵測(cè)試自動(dòng)化工具的公司增長(zhǎng)強(qiáng)勁?,F(xiàn)代靜態(tài)分析可以說(shuō)是應(yīng)對(duì)確保復(fù)雜軟件質(zhì)量挑戰(zhàn)的最具成本效益、自動(dòng)化和可重復(fù)的方法。

推動(dòng)這種增長(zhǎng)的一個(gè)重要原因是,用于識(shí)別關(guān)鍵缺陷(如內(nèi)存損壞、資源泄漏、空指針取消引用和無(wú)效內(nèi)存訪問(wèn))的技術(shù)已經(jīng)成熟到可以發(fā)現(xiàn)大量難以發(fā)現(xiàn)的遍歷函數(shù)的缺陷的程度現(xiàn)在可以準(zhǔn)確地完成文件邊界,從而導(dǎo)致非常少的誤報(bào)。然而,真正的創(chuàng)新在于為每個(gè)已識(shí)別的缺陷提供上下文信息。開發(fā)人員需要知道缺陷存在的原因、會(huì)產(chǎn)生什么影響以及需要修復(fù)的地方。

需要修復(fù)的問(wèn)題的答案并不像知道文件名和行號(hào)那么簡(jiǎn)單。用于版本控制、代碼重用和代碼組件重用以提高開發(fā)效率的代碼分支和合并允許缺陷進(jìn)入多個(gè)版本和產(chǎn)品。

考慮一個(gè)軟件團(tuán)隊(duì)的情況,該團(tuán)隊(duì)擁有多個(gè)產(chǎn)品的不同版本的分支。由于代碼復(fù)制,其中一個(gè)分支中的錯(cuò)誤可能存在于一個(gè)或多個(gè)其他分支中。在另一種情況下,考慮創(chuàng)建框架以支持智能手機(jī)應(yīng)用程序的團(tuán)隊(duì)。因?yàn)樗麄兛赡軐⒖蚣芤浦驳?Windows、AndroidiPhone 等各種平臺(tái)上,所以靜態(tài)分析結(jié)果清楚地表明已識(shí)別的缺陷是僅存在于一個(gè)地方還是存在于多個(gè)平臺(tái)上,這一點(diǎn)至關(guān)重要。同樣,當(dāng)軟件是通過(guò)從多個(gè)來(lái)源聚合創(chuàng)建的時(shí),如果在各種產(chǎn)品中使用特定組件,那將是一場(chǎng)噩夢(mèng),因?yàn)橐粋€(gè)第三方組件的缺陷最終可能會(huì)影響包含它的所有不同產(chǎn)品。

不同版本操作系統(tǒng)的多個(gè)分支

想象一個(gè)負(fù)責(zé)為移動(dòng)智能手機(jī)創(chuàng)建新操作系統(tǒng) (OS) 的軟件開發(fā)團(tuán)隊(duì)。由于必須支持多個(gè)手機(jī)供應(yīng)商 (OEM),因此源代碼控制管理系統(tǒng)中的每個(gè)供應(yīng)商都需要一個(gè)開發(fā)分支。此外,每個(gè)供應(yīng)商通常都有針對(duì)不同版本和產(chǎn)品代的多個(gè)分支。畫面開始變得非常復(fù)雜。

對(duì)代碼的每個(gè)分支執(zhí)行的靜態(tài)分析會(huì)生成一個(gè)缺陷列表。但是,根據(jù)引入缺陷的時(shí)間,它可能存在于所有版本或子集中。當(dāng)孤立地查看單個(gè)分支中的單個(gè)缺陷時(shí),開發(fā)人員面臨的挑戰(zhàn)是他們無(wú)法在不知道缺陷存在于何處的情況下評(píng)估缺陷的嚴(yán)重性。不限于單個(gè)版本或一個(gè) OEM 客戶端的缺陷將是嚴(yán)重的,修復(fù)它需要優(yōu)先于其他任何事情。此外,編寫代碼來(lái)修復(fù)缺陷的開發(fā)人員需要準(zhǔn)確地知道需要簽入源代碼控制管理系統(tǒng)中的哪些分支。

圖 1:由于代碼分支和合并導(dǎo)致的重復(fù)缺陷。

poYBAGK6tOeAM116AAHt4wi8mqc418.png

適用于多個(gè)平臺(tái)的單一框架

在分支的另一面,通常需要編寫設(shè)計(jì)為在多個(gè)平臺(tái)上運(yùn)行的代碼。諸如移動(dòng)應(yīng)用程序框架之類的軟件組件通常被構(gòu)建為在各種類型的移動(dòng)電話平臺(tái)上運(yùn)行。對(duì)于嵌入式設(shè)備,一個(gè)常見的要求是構(gòu)建相同代碼庫(kù)的 32 位和 64 位版本。我們舉一個(gè)簡(jiǎn)單的例子:

gcc --m32 -c foo.c

// 32 位編譯。包含空指針取消引用缺陷。

gcc -c foo.c

// 64 位編譯。包含相同的空指針取消引用缺陷。

在 32 位和 64 位二進(jìn)制文件中觸發(fā)的foo.c中的缺陷將被檢測(cè)并報(bào)告為單個(gè)缺陷。但是,由于源代碼相同,因此復(fù)雜的分析不會(huì)將其報(bào)告為重復(fù)缺陷。在失去開發(fā)人員對(duì)靜態(tài)分析解決方案的信任方面,重復(fù)與誤報(bào)一樣有害。

共享通用代碼組件

在最后一個(gè)示例中,考慮一個(gè)為一系列網(wǎng)絡(luò)交換機(jī)開發(fā)平臺(tái)軟件的團(tuán)隊(duì)。由于平臺(tái)軟件提供的功能必須在所有產(chǎn)品中實(shí)現(xiàn),因此該代碼組件將被共享(參見圖 2)。對(duì)于在這個(gè)團(tuán)隊(duì)工作的開發(fā)人員來(lái)說(shuō),靜態(tài)分析報(bào)告的缺陷嚴(yán)重性的最佳評(píng)估不僅是它對(duì)一個(gè)交換機(jī)產(chǎn)品的影響,還包括使用該平臺(tái)軟件組件的所有產(chǎn)品的信息。

圖 2:?jiǎn)蝹€(gè)軟件組件在多個(gè)產(chǎn)品中重復(fù)使用。

pYYBAGK6tRCAFAMlAAFmrErrXjs168.png

產(chǎn)品通常是通過(guò)組合許多這樣的共享組件來(lái)創(chuàng)建的。每個(gè)組件不僅是一個(gè)項(xiàng)目本身,而且是使用它的各種其他項(xiàng)目的一部分。分析結(jié)果需要確定此共享組件中的缺陷對(duì)使用它的各個(gè)項(xiàng)目有影響。

消除代碼測(cè)試中的猜測(cè)

采用靜態(tài)分析等現(xiàn)代開發(fā)人員測(cè)試方法是嵌入式軟件行業(yè)的一個(gè)積極趨勢(shì)。該技術(shù)已經(jīng)成熟到可以成為軟件工程師武器庫(kù)中強(qiáng)大武器的程度。無(wú)需創(chuàng)建復(fù)雜的測(cè)試用例和測(cè)試基礎(chǔ)設(shè)施,靜態(tài)分析就可以在編寫和編譯代碼時(shí)自動(dòng)發(fā)現(xiàn)關(guān)鍵缺陷。但是,要使靜態(tài)分析成為開發(fā)人員最有價(jià)值的工具,分析必須提供諸如“此缺陷的影響是什么?”之類的問(wèn)題的答案。和“我需要在哪里檢查修復(fù)?” 幫助確定修復(fù)已識(shí)別缺陷的優(yōu)先級(jí),并消除猜測(cè)以確保軟件盡可能無(wú)錯(cuò)誤。

審核編輯:郭婷

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5186

    文章

    20159

    瀏覽量

    328999
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3986

    瀏覽量

    133088
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3697

    瀏覽量

    93240
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    程序加載過(guò)程中遇到的問(wèn)題及其解決方法

    程序顯示JTAG all ones,報(bào)錯(cuò)界面如下圖所示。 硬件電路,MCU被設(shè)計(jì)為上電即從Flash讀取代碼并開始運(yùn)行,如果寫入MCU Flash
    發(fā)表于 10-30 07:59

    UPS不間斷電源放電過(guò)程中的注意事項(xiàng)

    UPS日常的使用過(guò)程中,只有定期對(duì)UPS放電才能延長(zhǎng)UPS的使用壽命,UPS 電源電池需要每三個(gè)月進(jìn)行一次充放電,怎樣對(duì)UPS進(jìn)行放電才能讓其保持最佳工作狀態(tài)? 現(xiàn)在,由匯智天源工程師和大家聊一
    的頭像 發(fā)表于 10-11 11:33 ?323次閱讀
    UPS不間斷電源<b class='flag-5'>在</b>放電<b class='flag-5'>過(guò)程中</b>的注意事項(xiàng)

    紅外測(cè)溫技術(shù)氣瓶充裝過(guò)程中的應(yīng)用

    氣瓶充裝過(guò)程中,溫度異??赡芤l(fā)瓶體爆裂、氣體泄漏等嚴(yán)重事故,直接威脅人員與生產(chǎn)安全。而紅外測(cè)溫技術(shù)的應(yīng)用,正成為實(shí)時(shí)監(jiān)控溫度、防范風(fēng)險(xiǎn)的“利器”。
    的頭像 發(fā)表于 08-26 15:54 ?667次閱讀

    靜力水準(zhǔn)儀測(cè)量過(guò)程中遇到誤差如何處理?

    靜力水準(zhǔn)儀測(cè)量過(guò)程中遇到誤差如何處理?靜力水準(zhǔn)儀工程沉降監(jiān)測(cè)中出現(xiàn)數(shù)據(jù)偏差時(shí),需采取系統(tǒng)性處理措施。根據(jù)實(shí)際工況,誤差主要源于環(huán)境干擾、設(shè)備狀態(tài)、安裝缺陷及操作不當(dāng)四類因素,需針對(duì)性解決。靜力
    的頭像 發(fā)表于 08-14 13:01 ?586次閱讀
    靜力水準(zhǔn)儀<b class='flag-5'>在</b>測(cè)量<b class='flag-5'>過(guò)程中</b>遇到誤差如何處理?

    汽車軟件團(tuán)隊(duì)必看:基于靜態(tài)代碼分析工具Perforce QAC的ISO 26262合規(guī)實(shí)踐

    ISO 26262合規(guī)指南,從ASIL分級(jí)到工具落地,手把手教你用靜態(tài)代碼分析(Perforce QAC)實(shí)現(xiàn)高效合規(guī)。
    的頭像 發(fā)表于 08-07 17:33 ?872次閱讀
    汽車<b class='flag-5'>軟件</b>團(tuán)隊(duì)必看:基于<b class='flag-5'>靜態(tài)</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>工具Perforce QAC的ISO 26262合規(guī)實(shí)踐

    超聲波清洗機(jī)如何在清洗過(guò)程中減少?gòu)U液和對(duì)環(huán)境的影響?

    超聲波清洗機(jī)如何在清洗過(guò)程中減少?gòu)U液和對(duì)環(huán)境的影響隨著環(huán)保意識(shí)的增強(qiáng),清洗過(guò)程中的廢液處理和環(huán)境保護(hù)變得越來(lái)越重要。超聲波清洗機(jī)作為一種高效的清洗技術(shù),也不斷發(fā)展以減少?gòu)U液生成和對(duì)環(huán)
    的頭像 發(fā)表于 06-16 17:01 ?512次閱讀
    超聲波清洗機(jī)如何在清洗<b class='flag-5'>過(guò)程中</b>減少?gòu)U液和對(duì)環(huán)境的影響?

    盟通方案|專業(yè)的CANopen總線分析軟件

    CAN/CANopen產(chǎn)品開發(fā)過(guò)程中,數(shù)據(jù)分析是非常關(guān)鍵的一環(huán)。數(shù)據(jù)幀分析軟件就如您工作的萬(wàn)
    的頭像 發(fā)表于 05-23 16:06 ?547次閱讀
    盟通方案|專業(yè)的CANopen總線<b class='flag-5'>分析</b><b class='flag-5'>軟件</b>

    原理圖和PCB設(shè)計(jì)的常見錯(cuò)誤

    電子設(shè)計(jì)領(lǐng)域,原理圖和PCB設(shè)計(jì)是產(chǎn)品開發(fā)的基石,但設(shè)計(jì)過(guò)程中難免遇到各種問(wèn)題,若不及時(shí)排查可能影響電路板的性能及可靠性,本文將列出原理圖和PCB設(shè)計(jì)的常見錯(cuò)誤,整理成一份實(shí)用的速
    的頭像 發(fā)表于 05-15 14:34 ?912次閱讀

    單元測(cè)試嵌入式軟件的關(guān)鍵作用及winAMS工具的卓越貢獻(xiàn)

    1.?單元測(cè)試概述 ?定義與核心目標(biāo)? 單元測(cè)試是軟件開發(fā)過(guò)程中針對(duì)程序模塊(如函數(shù)、類或組件)的最小可測(cè)試單元進(jìn)行的驗(yàn)證活動(dòng)。其核心目標(biāo)在于隔離代碼片段,驗(yàn)證其功能是否符合設(shè)計(jì)預(yù)期,從而在早期階段
    的頭像 發(fā)表于 04-11 14:31 ?765次閱讀

    半導(dǎo)體制造過(guò)程中的三個(gè)主要階段

    前段工藝(Front-End)、中段工藝(Middle-End)和后段工藝(Back-End)是半導(dǎo)體制造過(guò)程中的三個(gè)主要階段,它們制造過(guò)程中扮演著不同的角色。
    的頭像 發(fā)表于 03-28 09:47 ?5725次閱讀
    半導(dǎo)體制造<b class='flag-5'>過(guò)程中</b>的三個(gè)主要階段

    請(qǐng)問(wèn)NXP板的BSP QA過(guò)程中采用了哪些具體的測(cè)試方法?

    QA 過(guò)程中采用了哪些特定的測(cè)試方法? 什么是 QA 流程,以及 yocto/linux BSP 整個(gè) QA 生命周期中如何跟蹤和管理缺陷? RSB 3720 板的 QA 流程中使用了
    發(fā)表于 03-17 08:04

    linux下開發(fā)過(guò)程中, DLP4500 GUI無(wú)法連接光機(jī)怎么解決?

    linux下開發(fā)過(guò)程中, DLP4500 GUI 無(wú)法連接光機(jī),出現(xiàn)錯(cuò)誤提示如下: open device_handle error: Is a directory opening path
    發(fā)表于 02-20 08:41

    集成電路設(shè)計(jì)靜態(tài)時(shí)序分析介紹

    Analysis,STA)是集成電路設(shè)計(jì)的一項(xiàng)關(guān)鍵技術(shù),它通過(guò)分析電路的時(shí)序關(guān)系來(lái)驗(yàn)證電路是否滿足設(shè)計(jì)的時(shí)序要求。與動(dòng)態(tài)仿真不同,STA不需要模擬電路的實(shí)際運(yùn)行過(guò)程,而是通過(guò)
    的頭像 發(fā)表于 02-19 09:46 ?1315次閱讀

    如何提高錫膏焊接過(guò)程中的爬錫性?

    錫膏的爬錫性對(duì)于印刷質(zhì)量和焊接效果至關(guān)重要。要提高錫膏焊接過(guò)程中的爬錫性
    的頭像 發(fā)表于 02-15 09:21 ?889次閱讀

    如何在日常開發(fā)過(guò)程中提高代碼質(zhì)量

    。 提高代碼質(zhì)量是一個(gè)系統(tǒng)工程,本文主要介紹開發(fā)人員如何在日常開發(fā)過(guò)程中提高代碼質(zhì)量。 01 什么是代碼質(zhì)量? 代碼質(zhì)量一般用于衡量
    的頭像 發(fā)表于 01-23 09:09 ?1041次閱讀
    如何在日常開發(fā)<b class='flag-5'>過(guò)程中</b>提高<b class='flag-5'>代碼</b>質(zhì)量