原創|使用教程|編輯:鄭恭琳|2020-08-31 15:29:48.013|閱讀 226 次
概述:到目前為止,2020年是充滿挑戰的一年。隨著我們中越來越多的人在家外遠程辦公,比以往任何時候都重要的是,我們產生的代碼要盡可能的好。靜態分析是軟件開發人員以及安全和功能安全專業人員的理想焦點。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
到目前為止,2020年是充滿挑戰的一年。隨著我們中越來越多的人在家外遠程辦公,比以往任何時候都重要的是,我們產生的代碼要盡可能的好。靜態分析是軟件開發人員以及安全和功能安全專業人員的理想焦點。
我們都知道,靜態代碼分析是我們應該做的事情。我們中有些人知道我們應該這樣做,因為它會幫助我們。其他人則可能感覺像是對他們施加了靜態分析,這既浪費時間,又乏味,或者創建工作卻無濟于事。雖然我想說這些人是錯誤的,但不幸的是,他們可能是正確的!
如果靜態分析緩慢、嘈雜(誤報)、使用時痛苦、創造工作或無法提供價值,通常是因為您付出的努力超過了轉化的余地。正確配置靜態分析工具也是一個重要因素,但這本身就是一個完全獨立的問題,我將在另一篇文章中介紹。
對于這篇文章,我想集中討論許多靜態分析的首次采用者所犯的一個錯誤——嘗試過早地做太多事情。總體而言,從一開始就使靜態分析工作流程和配置正確對成功至關重要——減少痛苦,獲得更多收益。第一步是確保您擁有適合組織的正確工具。最近,我們制作了一個網絡研討會和白皮書,涵蓋了如何選擇合適的靜態分析工具以滿足您的需求的基礎知識,因此請查看這些內容。
選擇靜態代碼分析工具后,需要對其進行配置。您要運行哪些檢查程序?我將以一個簡單的指南開始:最好從一小組檢查員入手,必要時甚至只有一個檢查員,并確保您和您的團隊正在磨練您的靜態分析技能和工作流程,同時從中受益匪淺。常見的替代方法是打開一百或更多的檢查程序,這些檢查程序會產生大型報告,您會偶爾進行跟進。
靜態分析工具在豎立安裝之前會產生很多噪音。當我說“力不從心”時,噪音(有時稱為誤報)壓倒了重要的警告。早期采用有時是出于學術上的追求,其目的是盡早調查以了解代碼庫中有多少錯誤。這種方法不考慮開發人員的工作流程及其日常使用的工具。這也不符合實用的需求來編寫、測試和發布軟件。
最好的方法是從小處著手,以不斷不斷地提高代碼質量。消除最麻煩的關鍵代碼問題,然后進行擴展以查找仍然重要但可能不太危險的其他問題。讓我們看看它在實際意義上是如何工作的。
首先解決大問題
有時我們會看到組織嘗試根據靜態分析工具提供的所有可能檢查程序的較大列表,以協商一致的方式組裝檢查程序的配置列表。盡管看似合理,但是如果您認為Parasoft工具具有1000多個檢查器,則該方法有缺陷,因為它專注于該工具可以做什么,而不是根據客戶支持,預期環境等來解決應用程序面臨的實際問題。
即使錯誤類型在摘要中似乎很重要,團隊也可以花費大量時間追查那些沒有提供太多價值的檢查程序中的違規行為。將靜態分析與團隊正在解決或期望面對的實際問題聯系起來至關重要。縮小檢查人員的名單很重要,但對于剛開始的團隊或項目仍然可能產生過多的違規行為。您需要查看所吃“食物”的大小。
限制靜態分析的“咀嚼”
最小化被咬的大小(不僅是檢查器的數量)的一種好方法是評估您針對它運行的代碼。如今,大多數項目都由現有的,舊的或繼承的代碼庫組成。如果這些足夠大,則無法對此代碼進行靜態分析并專用于解決問題的資源。您必須根據所分析的代碼量來限制“位數”。
一種常見的方法是將對報告的警告的操作限制為新開發或最近修改的代碼。例如,團隊負責人決定在下一個沖刺階段,將使用一組優先的檢查器對所有新代碼進行分析。第一組分析報告用于評估所需的工作量。如果這對于一次沖刺來說太多了,則可以進一步限制分析。另一方面,如果此方法不能產生足夠的警告,或者錯過了質量目標,請擴大范圍。
這一切都是要說的:咬一小口,價值很高的一口。對其進行修復,完成某些工作,并將其構建到您的日常工作和文化中。慢慢添加到它。再設置一些檢查器,最終,您將一開始就實現所有需要的檢查器的理想目標。
從小處著手不僅僅是控制可管理的工作流程。它還可以幫助對該技術不熟悉并且對該工具不熟悉的開發人員快速了解其價值。通過首先給他們關鍵的發現,他們看到了對于修復和理解測試或代碼審查可能遺漏了它們很重要的錯誤。隨著分析的進行,開發人員將始終獲得最可行的結果。目的是永遠不要到達向開發人員發出低價值警告的位置。浪費他們的時間和工具,您應該利用自己的流程將其過濾掉。
在討論靜態代碼分析結果時,經常會進行分類。僅當流程不堪重負時,分流才在現實生活中使用過。咬牙切齒的軟件團隊在啟用默認檢查器的情況下在大型代碼庫上運行靜態分析工具,因此不可避免地會收到許多警告。然后,他們嘗試通過他們說,我需要修復哪些問題?哪些最重要?這是乏味的、過于主觀的、容易出錯的,并且幾乎是不必要的。
工具應該為您分流。如果沒有,則可能是您使用了錯誤的工具、錯誤的配置或錯誤的方法。現代的靜態分析工具必須能夠根據嚴重性、優先級和固有風險過濾警告。不要讓工具本身強迫您咬一口。
希望您發現此建議有用。成功采用靜態分析需要精簡步驟,才能大幅度提高質量,安全性和安全性。通過限制檢查程序和代碼量的分析范圍來限制您的團隊“受挫”的程度——每個人都可以看到其價值。避免“太大的麻煩”避免了許多關于靜態分析工具的常見抱怨。 持續和逐步的改進可幫助每個人學習如何進行靜態分析,并從投資中獲得更好的價值。
祝您在2020年余下的靜態分析旅程中好運!
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn