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