Gitee Scan 獨創(chuàng)專利自研引擎,更低成本幫助企業(yè)提升代碼質(zhì)量

源代碼作為軟件的最初形態(tài),是軟件開發(fā)最為重要的組成部分。一個軟件的質(zhì)量如何,很大程度上是由代碼質(zhì)量決定的,其安全缺陷也是導致軟件漏洞的直接原因。隨著軟件的不斷迭代和更新,代碼量也不斷增加,這就需要我們對代碼進行有效的管理和優(yōu)化,讓代碼質(zhì)量、代碼安全、代碼規(guī)范得到切實保障。而靜態(tài)代碼掃描工具就是解決這個問題的最佳利器。
問題發(fā)現(xiàn)得早,代價就越小
軟件專家卡珀斯·瓊斯曾說過:“85%的軟件缺陷發(fā)生在編碼階段,后端測試修復缺陷的成本是開發(fā)階段40倍”。業(yè)界實踐與質(zhì)量左移的理念也表明,在軟件生命周期中缺陷發(fā)現(xiàn)越早、修復越早,缺陷的影響和修復代價就越小。
就目前的企業(yè)研發(fā)活動來看,為了避免帶來巨大業(yè)務(wù)損失,一般會用到下列代碼保障手段:
在項目上線之前進行 Code Review,提前發(fā)現(xiàn) BUG,解決問題;
通過線上實時監(jiān)控,出現(xiàn)問題時執(zhí)行預案,及時修復,保障代碼。
從上述兩種代碼管理方式可以看出,如果在上線后修復代碼,只能減少損失規(guī)模,若是想要真正降低或避免企業(yè)資產(chǎn)損失還得靠人工 Code Review 在項目上線之前發(fā)現(xiàn)問題。然而,一方面 Code Review 需要額外的人工介入,且其質(zhì)量參差不齊,無法得到保障;另一方面,高質(zhì)量的 Code Review 也會花費較多時間,成本較高。
那么有沒有一種兩全其美的方法,以一種低成本的方式,自動發(fā)現(xiàn)代碼中隱藏的風險,從而保障代碼質(zhì)量?答案是:代碼掃描!
在研發(fā)過程中,代碼掃描工具的真正價值在于它可以幫助開發(fā)人員及時發(fā)現(xiàn)代碼中的潛在安全漏洞和缺陷,例如內(nèi)存泄漏、空指針引用、緩沖區(qū)溢出等等,不僅避免應(yīng)用程序崩潰或被黑客攻擊,還提高軟件的質(zhì)量。同時,代碼掃描也可以幫助開發(fā)人員優(yōu)化代碼結(jié)構(gòu),提高代碼的可讀性和可維護性,從而降低軟件開發(fā)和維護成本。
從代碼編譯狀態(tài)來看,代碼掃描又分為靜態(tài)掃描和動態(tài)掃描。靜態(tài)代碼掃描工具一般作為插件存在于 DevOps 研發(fā)體系中,是 DevOps 中質(zhì)量左移的重要實現(xiàn)方式。
目前,國內(nèi)首屈一指的研發(fā)效能平臺 Gitee 旗艦版,已經(jīng)為超過 26 萬家企業(yè)提供了高效的靜態(tài)代碼掃描服務(wù),幫助他們提升代碼質(zhì)量,降低開發(fā)成本,而其中的奧秘便是靜態(tài)代碼掃描引擎—— Gitee Scan。
Gitee Scan :DevOps 質(zhì)量左移的重要載體
作為 DevOps 研發(fā)運營一體化中代碼掃描、質(zhì)量左移環(huán)節(jié)的重要載體,Gitee Scan 面向企業(yè)內(nèi)研發(fā)生產(chǎn)過程針對代碼質(zhì)量左移場景的訴求,采用獨創(chuàng)代碼執(zhí)行鏈分析技術(shù)(已申請專利),結(jié)合平臺海量代碼缺陷數(shù)據(jù),融合各開源工具優(yōu)勢,自研代碼分析引擎,提供分布式、高并發(fā)的代碼掃描能力。
同時,Gitee Scan 作為平臺級產(chǎn)品,即提供靈活的權(quán)限定義,也打通 Gitee Code 實現(xiàn)數(shù)據(jù)隔離,除了提供基本的代碼缺陷、安全、規(guī)范三種維度掃描外,還提供重復代碼、代碼注釋率、超長函數(shù)、圈復雜度等不同代碼可維護性層面的掃描。以下是 Gitee Scan 的詳細功能解讀:
代碼掃描無需人工介入,全自動化分析
Gitee Scan 不僅支持多維度觸發(fā),支持本地插件插件的掃描,支持流水線、代碼庫觸發(fā)的掃描,還貫穿整個研發(fā)過程全周期的掃描介入,幫助開發(fā)者在研發(fā)環(huán)節(jié),準入環(huán)節(jié),測試環(huán)節(jié)全自動化分析源代碼,無需人工介入,并可和代碼管理、流水線深度融合,在測試之前及時定位問題根源,保證研發(fā)質(zhì)量,提高團隊工作效率,降低軟件開發(fā)測試成本,解決目前大多數(shù)企業(yè)中存在的產(chǎn)品不穩(wěn)定、測試成本高、交付拖延等問題。

Gitee Scan 獨創(chuàng)專利已達業(yè)界領(lǐng)先水平
Gitee Scan 采用獨創(chuàng)代碼執(zhí)行鏈分析技術(shù)(已申請專利),結(jié)合平臺海量代碼缺陷數(shù)據(jù),融合各開源工具優(yōu)勢,開發(fā)系列自研代碼分析引擎 BCA,提供分布式、高并發(fā)代碼掃描能力。除缺陷檢查外,目前,該引擎已支持 BCA – Kotlin 、BCA-Java、BCA-OC、BCA-Cobol、BCA-SQL、BCA-C/C++ 等 19 門主流語言編碼風格檢查,符合公司編碼規(guī)范要求,讓團隊成員保持統(tǒng)一的編碼風格。

在不損失檢出的情況下,Gitee Scan 的誤報率**基本小于 5%**。值得一提的是,業(yè)界較好的代碼掃描工具誤報率標準為「 小于 10 %」,由此可見,Gitee Scan 已達業(yè)界領(lǐng)先水平。

從多維度掃描管理代碼質(zhì)量
Gitee Scan 支持多維度掃描,除支持代碼缺陷、代碼安全、編碼規(guī)范等規(guī)則類掃描,同時提供代碼度量、代碼可維護性、代碼重復塊、開源風險等維度掃描;通過分析代碼的重復塊、重復率檢測當前代碼的復用情況,并提供代碼質(zhì)量報告。

配置靈活,滿足個性化定制
當系統(tǒng)提供大量內(nèi)置規(guī)則的情況下,由于各項目掃描情況不同,質(zhì)量要求的不同,需要定制化掃描設(shè)置,因此 Gitee Scan 提供靈活的掃描方案設(shè)置,提供包括規(guī)則集的組合以及自定義規(guī)則集的方式實現(xiàn)跨語言維度的自定義掃描設(shè)置。


豐富全面的掃描結(jié)果報表
Gitee Scan 基于每次掃描提供全面的掃描報告,并支持報告的 PDF 導出。同時還會在在每次掃描的概覽中統(tǒng)計問題增長趨勢以及問題的分類,方便用戶快速查看并了解代碼掃描概況。


總的來說
Gitee Scan 通過集成自研靜態(tài)代碼掃描引擎、開源掃描工具、商業(yè)掃描工具實現(xiàn)全方位無需編譯的靜態(tài)代碼掃描,作為 Devops 中質(zhì)量左移的重要實現(xiàn)方式,大幅度的降低開發(fā)以及修復的成本,能夠幫助開發(fā)人減輕開發(fā)和修復的負擔,提高開發(fā)效率。
除了眾多開源項目外,Gitee Scan 已經(jīng)為國家海關(guān)總署、招商銀行、光大銀行、之江實驗室等企事業(yè)單位和機構(gòu)提供了服務(wù)。如果你也想和他們一起享受功能強大且高效的靜態(tài)代碼掃描服務(wù),可以復制后面的鏈接(鏈接:https://gitee.cn/ultimate)或聯(lián)系我們(地址:https://gitee.cn/contact-us),將 Gitee Scan 部署于企業(yè)的私有服務(wù)器上,助力企業(yè)有效提升研發(fā)效能。
