原創|行業資訊|編輯:鄭恭琳|2021-03-12 13:41:39.027|閱讀 151 次
概述:靜態分析是軟件質量/安全性庫中最有價值的工具之一。正確執行將帶來巨大的價值,但是錯誤執行可能會使組織中的新一代編碼人員注定要使用過時的過時質量和安全流程。如果您有任何疑問,請在下面的評論中讓我知道——很樂意就如何使靜態分析發揮作用進行討論。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
作為有關成功程序員的7種習慣的系列文章的一部分,今天,我將討論確保靜態分析有效且可持續的幾種方法。
首先,最好從靜態分析策略開始。有些人想知道為什么這很重要,但這實際上對于成功的靜態分析計劃至關重要。您的策略將涵蓋諸如應運行哪些規則,什么時候可以忽略它們,何時必須修復它們,如何執行抑制等等之類的事情。您還需要確定需要分析哪些代碼,即通過所有遺留代碼來進行分析。您只是坐在那里,我們將在稍后討論。
如果沒有一致的策略,靜態分析將迅速演變為偶爾執行的錯誤查找程序,從而縮小了您從中獲得的價值。如果您從事醫療或汽車等合規性業務,則無論如何都必須進行靜態分析,這樣一來,您就可以正確地進行分析并獲得一定的價值。
獲得正確的工具很重要。該工具需要在您使用的操作系統上的代碼編輯器(IDE)中使用您所使用的語言進行工作。該工具應支持服務器和in-IDE執行,in-IDE(對于開發人員)和基于Web的報告(對于管理人員)。您需要能夠將工具配置為僅執行所需的規則(而不僅僅是工具供應商希望您運行的規則)。成熟的工具具有開箱即用的啟動配置,可讓您采用MISRA,OWASP,CWE和PCI等行業計劃。
能夠使用自己的規則,想法和最佳實踐來擴展該工具對您的長期成功也很重要。而且不要忘了技術支持–有人可以查看有關嘈雜規則的問題并幫助您解決這些問題嗎?您要使用開源并自己進行修復嗎?通常,您是否使用供應商服務來幫助您快速啟動項目并朝正確的方向前進?
這些以及更多是選擇工具時要考慮的所有事情。不要陷入困境——它提供了關于工具是否真正能夠滿足您的需要的有用信息,而靜態分析工具的工作方式卻有所不同。
如上所述,很容易陷入陷阱,只需打開靜態分析工具中的任何規則即可。一些供應商積極鼓勵這樣做,另一些甚至要求!每個人的軟件測試需求都不同。默認配置可以幫助您入門,但是要成功,您必須自己進行配置。
需要做的一些事情包括關閉嘈雜的規則并設置嚴重性級別以符合您自己的實際做法(您不希望工具在您認為嚴重性較低時就說出一些關鍵內容)。一個不明顯的提示是關閉您喜歡但不打算立即解決的規則。如果您有時間解決違規問題,請先打開規則,而不要先打開規則。當告知開發人員并非所有規則都重要時,在報告它們時忽略它們只會導致沮喪和不良習慣。
您正在運行的規則應與您在現場遇到的問題,您可能會合理預期的問題,安全性問題,在代碼檢查過程中發現的問題以及任何合規性項目有關-您必須運行的規則。
即使您擁有正確的規則,有時上下文也會使特定的靜態分析在代碼的一部分中顯得不重要,而在另一部分中仍然至關重要。您這里有一些選擇,其中最有價值的就是挫敗并關閉規則。如果您知道該規則可以在某些領域提供價值,那么這是一個錯誤的選擇。如果您的工具無法正確配置和抑制,則您選擇了錯誤的工具,返回上述步驟2。
一些陷入的陷阱是對結果進行一些手動管理并散發出重要的結果。這是勞動密集型的,不可伸縮的,不可維護的,您將最終解決不那么重要的事情,而錯過了更重要的事情。您需要一個以數據為依據的流程,以幫助您評估哪些違規問題需要解決,哪些違規問題可以安全地忽略,然后提供一種標記這些違規情況的方法,以免再次發生。理想情況下,這可以由開發人員直接在代碼所在的IDE中以及由管理人員,架構師等在基于Web的UI中完成。
有些人將這些抑制作用放在單獨的系統中。這樣的好處是從不更改代碼,但是冒著在分支或重構或存在某些同步問題時要求進行返工的風險。其他人則以特殊注釋的形式對代碼進行了更改。盡管這確實需要進行代碼更改,但它是持久且準確的,并且還記錄了禁止的內容-如果您經過審核,那就很棒。考慮您的需求,并選擇最適合您的環境的方法。如果您的工具不支持這兩種工具,請返回步驟2。
舊版代碼與禁止相關。決定要如何處理舊代碼很重要。同樣,這取決于您的需求,但是我在下面介紹了幾種方法。
一些組織選擇僅在存在涉及這些代碼行的未解決的現場錯誤報告的情況下,才修復遺留代碼中的靜態分析違規問題——文件中的其他內容都不應被觸及。如果您的代碼確實很舊,或者更改的風險很高,那么這是一個完全合理的策略。它將風險最小化。
另一個想法是,無論如何,都可以修復文件中的所有內容。這帶來了變更的風險,但是如果您有一個好的單元測試套件(我們將在下一次討論),那么您不必擔心太多。從積極的方面來說,您觸摸的任何代碼都將具有最新的必需代碼標準和最佳實踐。過時的代碼將比以前少過時了。
您也可以執行混合方法,或者只是在某個日期之前忽略所有舊代碼,而僅使用靜態分析。找出可以實現的目標并以這種方式做到。首先,請考慮一下您提出的策略的風險和收益。
靜態分析是軟件質量/安全性庫中最有價值的工具之一。正確執行將帶來巨大的價值,但是錯誤執行可能會使組織中的新一代編碼人員注定要使用過時的過時質量和安全流程。如果您有任何疑問,請在下面的評論中讓我知道——很樂意就如何使靜態分析發揮作用進行討論。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn