在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者:Rutul Dave ? 2022-06-28 15:58 ? 次閱讀

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

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

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

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

不同版本操作系統的多個分支

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

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

圖 1:由于代碼分支和合并導致的重復缺陷。

poYBAGK6tOeAM116AAHt4wi8mqc418.png

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

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

gcc --m32 -c foo.c

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

gcc -c foo.c

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

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

共享通用代碼組件

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

圖 2:單個軟件組件在多個產品中重復使用。

pYYBAGK6tRCAFAMlAAFmrErrXjs168.png

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

消除代碼測試中的猜測

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

審核編輯:郭婷

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 嵌入式
    +關注

    關注

    5096

    文章

    19227

    瀏覽量

    308689
  • Android
    +關注

    關注

    12

    文章

    3946

    瀏覽量

    128178
  • WINDOWS
    +關注

    關注

    4

    文章

    3586

    瀏覽量

    89561
收藏 人收藏

    評論

    相關推薦

    集成電路設計靜態時序分析介紹

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

    如何在日常開發過程中提高代碼質量

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

    SQL錯誤代碼及解決方案

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

    用TPA4411過程中,發現靜態電流居然達100MA左右,為什么?

    用TPA4411過程中,發現靜態電流居然達100MA左右,這對電池供電的產品來說,要命啊,是芯片特性還是芯片問題?求解
    發表于 10-25 06:12

    汽車異構硬件平臺開發如何進行靜態代碼分析

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

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

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

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

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

    DevOps的質量門工作原理,以及靜態代碼分析Klocwork和Perforce Helix QAC質量門的實踐應用

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

    RIGOL產品材料應力測試過程中的應用

    、強度、剛度、穩定性等,可以精確地控制產品質量。本篇解決方案將介紹RIGOL產品材料應力測試過程中的應用。
    的頭像 發表于 07-12 17:01 ?367次閱讀
    RIGOL產品<b class='flag-5'>在</b>材料應力測試<b class='flag-5'>過程中</b>的應用

    定華雷達知識講堂:雷達物位計測量過程中的干擾有哪些?

    用戶介紹一下DHE雷達物位計測量過程中產生干擾的具體因素都有哪些。 一、DHE雷達物位計測量過程中,常見的干擾可分為兩種:直流干擾和交流干擾。 1、直流干擾? ? ???
    的頭像 發表于 06-26 16:03 ?459次閱讀

    Fx3控制器,USB數據包的數據有效載荷無法正常發送的原因?

    Fx3 控制器流式傳輸過程中,從主機收到了意外的端點停止請求。 調試過程中,我發現
    發表于 05-28 06:37

    連焊如何在SMT加工過程中發生的?

    問題的嚴重性還是比較清楚的,也積極尋求解決方案。那么,連焊是如何在SMT加工過程中發生的呢?首先,我們要關注到焊接溫度和時間的影響。這兩個參數SMT加工起到至關重要的作
    的頭像 發表于 05-14 16:20 ?384次閱讀
    連焊如何在SMT加工<b class='flag-5'>過程中</b>發生的?

    量子計算最新突破 微軟與量子計算公司Quantinuum合作實現14000次實驗無錯誤

    微軟與量子計算公司Quantinuum深度合作,宣布實驗成功完成了多達14000次無錯誤的量子計算操作,刷新量子計算錯誤率紀錄,將錯誤
    的頭像 發表于 05-14 11:47 ?741次閱讀
    量子計算最新突破 微軟與量子計算公司Quantinuum合作實現14000次實驗<b class='flag-5'>無錯誤</b>

    介紹一些常見的Modbus IO通信錯誤代碼及其含義

    Modbus IO通信協議錯誤代碼通常用于標識通信過程中出現的錯誤或異常情況。
    的頭像 發表于 03-06 09:03 ?2994次閱讀

    STM32G431RB使用軟件生成代碼過程中報錯怎么解決?

    使用軟件生成代碼過程中報錯,使用但是STM32G431RB 的開發板
    發表于 03-06 06:15
    主站蜘蛛池模板: xxxx久久| 农村妇女野外一级毛片 | 99香蕉国产 | 欧美高清milf在线播放 | 成人中文在线 | 免费看欧美一级片 | 欧美freesex | 免费网站在线视频美女被 | 二级黄绝大片中国免费视频0 | 日本边添边爱边摸边做边爱 | 亚洲午夜久久久久久噜噜噜 | 在线三级网 | 天天干在线观看 | 免费看一级特黄a大片 | 免费一级特黄特色大片 | 免费黄色大片 | 国产精品久久久久久久久免费hd | 18一20岁一级毛片 | 久草一本 | 狠狠色丁香久久综合网 | 久久国产精品免费专区 | 久久亚洲aⅴ精品网站婷婷 久久亚洲成人 | 欧美午夜性 | 日本综合视频 | 男人女人真曰批视频播放 | 又粗又大的机巴好爽欧美 | 黄网站视频 | 操的好爽 | 超级乱淫片67194免费看 | 久久夜色精品国产飘飘 | 欧美中出在线 | 久久久久久亚洲精品 | 四虎影院美女 | 色综合久久天天综合观看 | 欧美成人aaaa免费高清 | 一级黄色录像毛片 | 日本黄视频网站 | 午夜黄色 | 久久久午夜毛片免费 | 国产成人综合欧美精品久久 | 中文字幕一区在线观看视频 |