在編寫代碼時,大多數人都知道他們在做什么 - 至少在當時 - 但以后會有多清楚,以及其他人如何理解它?是否過于復雜?它是否遵循規定的編碼標準?是否有微妙的錯誤可能使其容易受到黑客攻擊?除非你檢查,否則你不知道,這意味著靜態分析。
軟件質量的基礎(通常需要資格認證或認證)是靜態分析:對源代碼的解析和檢查。靜態分析提供了對代碼編寫情況的深刻見解,特別是參考質量指標和遵守編碼標準;它為進一步的評估提供了基礎,包括控制和數據流分析以及結構覆蓋分析;它為工件提供了基礎,這些工件既是可接受的認證文件,也是質量的有形證據。
靜態分析在源代碼級別工作,方法是像編譯器一樣解析代碼,同時識別與控制和數據流相關的信息,例如條件分支的下落。它整理的數據為指標提供了基礎,這些指標可幫助開發人員更好地了解正在開發的代碼的清晰度、復雜性甚至可測試性。在最簡單的形式中,它可以標記看似微小的事情,例如拼寫錯誤,這些事情可能會導致數小時的延遲,然后才被發現。更復雜的靜態分析工具還可以計算諸如循環復雜性之類的指標,循環復雜度是通過程序或代碼段的唯一路徑數的度量,例如可能由過高的循環密度(嵌套在循環中的條件數)導致的。靜態分析工具可以為程序的不同部分提供密度分數,可以指導開發人員提供更簡單,更清晰的路徑。這也帶來了更好的可理解性和改進的可測試性。
靜態分析的另一個功能是確保符合編碼標準,無論是行業定義的、用戶定義的還是兩者的組合。MISRA C、CERT C、CWE 等標準源自開發安全可靠的軟件的研究和行業最佳實踐。靜態分析提供保護,防止在某些情況下可能導致問題的細微錯誤和疏忽,例如最近因未檢查變量長度而導致的臭名昭著的“心臟出血”漏洞。許多行業功能安全標準,如汽車行業的ISO 26262和醫療設備的IEC 62304,也要求通過靜態分析進行檢查,確保(例如)沒有隱藏的數據流,也沒有為了代碼質量和安全性而無條件的跳躍。
靜態分析有助于“映射”未來分析
靜態分析為代碼系統開發了一種“大腦圖譜”,可以用作動態分析技術的基礎,例如詳細的結構覆蓋分析以及自動化單元和集成測試。反過來,這些生成自己的相關指標,以加強高質量開發過程的證據。這些測試及其生成的工件與需求可追溯性工具結合使用,通過將功能、安全性和安保要求鏈接到代碼、分析結果以及測試用例和結果,建立了透明的開發生命周期。實際上,這種雙向可追溯性不僅為忠實和完整地實施要求提供了證據。它還支持對整個生命周期中發生的需求更改或失敗測試的影響分析,突出顯示受影響的軟件系統的所有部分,從而突出顯示需要重復的任何分析和測試。
靜態分析數據提供額外的好處
靜態分析對單元測試的有用性始于對代碼結構的理解。通過靜態分析,可以分析應用程序的數據和控制方面,理解接口,并推導出測試用例工具的基礎。這些線束對于與需求相關的測試非常寶貴,可節省時間和費用。
從這個派生的數據集中,還可以自動生成測試用例本身來執行大部分代碼,并通過結構覆蓋率分析提供證據。這些自動生成的測試提供了一種理想的機制來增強基于需求的測試,以得出一組強大的測試用例,這些用例可以滿足功能、安全和安保要求。同樣,需求可追溯性可以從需求鏈接到驗證軟件組件和驗證應用程序的測試用例。
在整個軟件開發生命周期中使用靜態分析時,可以防止潛在錯誤持續到需要更多的精力和費用來糾正的程度。來自靜態分析的數據和依賴它的分析工具對于制作越來越多的政府和工業組織認證所需的測試證明和文檔至關重要。
審核編輯:郭婷
-
源代碼
+關注
關注
96文章
2945瀏覽量
66767 -
編譯器
+關注
關注
1文章
1634瀏覽量
49146
發布評論請先 登錄
相關推薦
美國多IP服務器和美國多服務器有什么區別
租用多ip云服務器可以帶來哪些好處?應用場景有哪些?
用PCM2706/PCM2707做的USB聲卡,很容易受到電網的干擾影響而無聲,如何解決?
多波段和全波段收音機有什么不同
ESP8266 SDK 2.1.0是否受到KRACK的影響?
DDoS有哪些攻擊手段?
使用NB模組做開發,模組容易受到影響導致異常復位怎么解決?
貼片電容為什么容易受到溫度的影響?
![貼片電容為什么<b class='flag-5'>容易</b><b class='flag-5'>受到</b>溫度的影響?](https://file1.elecfans.com/web2/M00/E8/10/wKgaomZK7eiAdD-dAACyAzRFImI293.png)
“五一假期將至:您的企業網絡準備好抵御黑客攻擊了嗎?”
MotorControl Workbench生成的代碼是開環的嗎,為什么電機跑起來很容易受到外力導致停機?
隨機通信下多智能體系統的干擾攻擊影響研究
![隨機通信下<b class='flag-5'>多</b>智能體系統的干擾<b class='flag-5'>攻擊</b>影響研究](https://file1.elecfans.com/web2/M00/C3/2D/wKgaomXhRU6ASBw6AABNmaUNhkg442.png)
評論