天天看點

代碼品質與安全 | 使用Incredibuild加速Klocwork靜态代碼分析

作者:龍智DevSecOps
代碼品質與安全 | 使用Incredibuild加速Klocwork靜态代碼分析

Klocwork是一款優秀的靜态代碼分析和SAST工具,适用于 C、C++、C#、Java、JavaScript、Python和Kotlin,可識别軟體安全性、品質和可靠性問題,幫助強制遵守标準。

Incredibuild是一款加速編譯工具,為C++代碼編譯和分析提供強大的分布式處理和獨特的建構緩存加速。通過将其與Klocwork相結合,您能夠快速分析整個代碼庫,進而在開發早期識别編碼漏洞和錯誤,并確定編碼标準得到實施。

龍智作為DevSecOps研發安全營運一體化解決方案供應商、Perforce授權合作夥伴、Incredibuild合作夥伴,緻力于将全球先進工具引入中國市場,幫助大型開發團隊縮短開發周期,更好、更快地傳遞軟體。立即聯系我們,了解Klocwork與Incredibuild的相關資訊及最佳實踐。

代碼品質與安全 | 使用Incredibuild加速Klocwork靜态代碼分析

靜态代碼分析并非一種新工具,而是一種日趨普遍的方法,可以用該方法來確定代碼品質以及建構更為優質的應用程式。但衆所周知,這并不是最快的過程。随着代碼庫的不斷擴大,這一現象尤為明顯——僅2022年,代碼庫就增長了18%以上,而且許多代碼庫已經達到了數百萬行。

平衡此類對于速度與品質的需求意味着,雖然靜态代碼分析正日益成為一種标準,但也尤為需要找到使之可行的方法。如何在一天中找到些許時間來確定這一基本過程不會影響您的釋出計劃?可以通過找到使這一過程更為簡單、更為奏效的工具。像Perforce制作的Klocwork這類工具,專門為大規模代碼庫和複雜開發環境而設計。

即便如此,靜态代碼分析總是還能更快些。這便是Incredibuild與Klocwork在Windows上完全內建的原因所在——用以確定您可以将靜态代碼分析完全嵌入到DevOps管道中,而不必放慢開發周期。

攜手共進——Klocwork與Incredibuild共同作用的原因

随着越來越多的組織接受DevOps實踐和方法,找到簡化管道的方法是提高産品品質和加快市場投放時間的關鍵。這包括從尋找正确的團隊結構到最大限度地利用現有的硬體和雲資源等。

必須保持随時線上意味着CI/CD管道中的任何瓶頸都會在其他任何地方造成影響。例如,開發中的延遲可能會影響文本和分支管理,進而導緻疊代頻率降低,減緩回報周期,并且如果發生錯誤,則更難确定錯誤發生的位置。反過來,這也會影響到QA和測試,也就是說可能會漏掉錯誤,推遲釋出,并且可能無法如期完成熱修複。

靜态代碼分析和靜态應用安全測試 (SAST) 等工具是該過程的重要組成部分,但更快地做這些工作可以幫助将它們更有效地內建到CI/CD管道中,而不犧牲從流暢的工作流中獲得的時間增益。這便是Incredibuild和Klocwork的用武之地。

結合兩者可以充分利用所開發組織的計算能力,進而更快處理這些關鍵任務(同時完成建構)。得益于Incredibuild的虛拟分布式處理,可以處理靜态分析和SAST,而無需暫停其他關鍵開發流程與作業。不必等待事情完成,隻需在事情完成時繼續工作。

如何開始使用Incredibuild和Klocwork

一旦準備就緒,就沒有什麼繁重的工作要做。您隻需要幾個步驟便可開始同時使用這兩個平台。首先,請確定您滿足以下先決條件:

  • 您已安裝Klocwork的有效許可證
  • 您在Klocwork中擁有“通路網絡API”權限。因為權限預設設定為根管理者和項目管理者,請您與管理者确認。
  • 確定所有使用Klocwork的計算機上都安裝了Incredibuild啟動器代理,Klocwork将作為靜态代碼分析的一部分(同時,仔細檢查啟動器許可證是否有Klocwork插件)。
  • 如果您在雲端使用Incredibuild,請確定它們可以與您的Klocwork許可證伺服器進行通信

一旦您确定全部就位,您隻需要遵循兩個快速步驟:

使用kwinject建立建構規範。您可以使用buildconsole進行分發與加速。

kwinject buildconsole.exe ><”sln path”> /rebuild /cofg=”Debug|Win6 4”           

運作內建建構分析。您可以使用Incredibuild的xgConsole指令(文法不會從ibconsole指令中發生更改)進行分發與加速。

xgConsole /profile="C:\Klocwork\Server 21.1\config\xgProfile.xml" /title=<"title name"> /command="kwbuildproject --url http://localhost:8080/<project_name> -j [n] -o kwtables -f kwinject.out”題圖:City In A Glass Bottle. —— 通過 Midjourney AI 創作。           

文章來源:https://www.incredibuild.cn/blog/shiyong-incredibuild-jiasu-klocwork-jingtaidaimafenxi

繼續閱讀