99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

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

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

在尋求無錯誤軟件的過程中增強靜態(tài)代碼分析

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

poYBAGK6tOeAM116AAHt4wi8mqc418.png

適用于多個平臺的單一框架

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

gcc --m32 -c foo.c

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

gcc -c foo.c

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

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

共享通用代碼組件

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

圖 2:單個軟件組件在多個產(chǎn)品中重復(fù)使用。

pYYBAGK6tRCAFAMlAAFmrErrXjs168.png

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

消除代碼測試中的猜測

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

審核編輯:郭婷

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

    關(guān)注

    5152

    文章

    19678

    瀏覽量

    317792
  • Android
    +關(guān)注

    關(guān)注

    12

    文章

    3973

    瀏覽量

    130323
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3614

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

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

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

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

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

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

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

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

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

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

    如何提高錫膏焊接過程中的爬錫性?

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

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

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

    SQL錯誤代碼及解決方案

    SQL數(shù)據(jù)庫開發(fā)和管理,常見的錯誤代碼及其解決方案可以歸納如下: 一、語法錯誤(Syntax Errors) 錯誤代碼 :無特定
    的頭像 發(fā)表于 11-19 10:21 ?6560次閱讀

    pcb板設(shè)計的常見錯誤

    印刷電路板(PCB)是電子設(shè)備不可或缺的組成部分,它負(fù)責(zé)連接電子元件并傳輸電信號。一個優(yōu)秀的PCB設(shè)計對于確保電路的性能、可靠性和成本效益至關(guān)重要。然而,PCB設(shè)計過程中,工程師可能會犯一些常見
    的頭像 發(fā)表于 11-04 13:58 ?915次閱讀

    用TPA4411過程中,發(fā)現(xiàn)靜態(tài)電流居然達(dá)100MA左右,為什么?

    用TPA4411過程中,發(fā)現(xiàn)靜態(tài)電流居然達(dá)100MA左右,這對電池供電的產(chǎn)品來說,要命啊,是芯片特性還是芯片問題?求解
    發(fā)表于 10-25 06:12

    汽車異構(gòu)硬件平臺開發(fā)如何進行靜態(tài)代碼分析

    先進的靜態(tài)代碼分析工具,其新版本引入的多CCT功能為開發(fā)人員提供了強大的支持,該功能不僅簡化了多編譯器環(huán)境下的代碼
    的頭像 發(fā)表于 10-09 16:15 ?895次閱讀
    汽車異構(gòu)硬件平臺開發(fā)如何進行<b class='flag-5'>靜態(tài)</b><b class='flag-5'>代碼</b><b class='flag-5'>分析</b>

    Perforce靜態(tài)分析工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork分析引擎改進和安全增強

    實現(xiàn)持續(xù)合規(guī)性現(xiàn)代軟件開發(fā)實踐要求開發(fā)團隊具備適應(yīng)性,確保代碼質(zhì)量和可靠性的同時,優(yōu)先考慮靈活性和協(xié)作性。軟件開發(fā)流程
    的頭像 發(fā)表于 10-08 16:22 ?671次閱讀
    Perforce<b class='flag-5'>靜態(tài)</b><b class='flag-5'>分析</b>工具2024.2新增功能:Helix QAC全新CI/CD集成支持、Klocwork<b class='flag-5'>分析</b>引擎改進和安全<b class='flag-5'>增強</b>

    LM5145pre-bias啟機過程中的電壓反灌問題

    電子發(fā)燒友網(wǎng)站提供《LM5145pre-bias啟機過程中的電壓反灌問題.pdf》資料免費下載
    發(fā)表于 09-27 10:19 ?1次下載
    LM5145<b class='flag-5'>在</b>pre-bias啟機<b class='flag-5'>過程中</b>的電壓反灌問題

    AFE031AIRGZT使用過程中遇到的疑問求解

    使用到貴司AFE031AIRGZT芯片,使用過程中遇到如下問題: 1.使用afe031.pdf 和sboa130a.pdf文檔中提到的電路連接,將芯片連接后,參考電壓REF1為2.7v左右,而
    發(fā)表于 09-24 07:19

    康謀分享 | 基于場景的AD/ADAS驗證過程中,識別挑戰(zhàn)性場景!

    基于場景的驗證是AD/ADAS系統(tǒng)開發(fā)過程中的重要步驟,然而面對海量駕駛記錄數(shù)據(jù)時,如何實現(xiàn)自動且高效地識別、分類和提取駕駛記錄的挑戰(zhàn)性場景?本文康謀為您介紹IVEX軟件識別挑戰(zhàn)性場景并進行數(shù)據(jù)
    的頭像 發(fā)表于 08-28 10:16 ?1433次閱讀
    康謀分享 | <b class='flag-5'>在</b>基于場景的AD/ADAS驗證<b class='flag-5'>過程中</b>,識別挑戰(zhàn)性場景!

    DevOps的質(zhì)量門工作原理,以及靜態(tài)代碼分析Klocwork和Perforce Helix QAC質(zhì)量門的實踐應(yīng)用

    如何使用靜態(tài)代碼分析工具(如Klocwork 和 Helix QAC)實現(xiàn)質(zhì)量門。 什么是質(zhì)量門? 質(zhì)量門是IT或開發(fā)項目中實施的檢查點,這些檢查點要求
    的頭像 發(fā)表于 07-29 15:12 ?889次閱讀