Helix QAC是一款權威的C/C++代碼合規性靜態分析工具,適用于對代碼的規范性和可靠性有較高要求的軟體系統,針對任何C/C++代碼都可以使用Helix QAC來做靜態分析,找出代碼中不符合編碼規范的語法問題,提高軟體整體編碼質量,優化編碼開發習慣,本文對面向全場景、全連接、全智能時代的Harmony OS的開源專案OpenHarmony代碼進行靜態分析,
測驗環境介紹
整個測驗環境搭建在VMware Workstation虛擬機上,虛擬機分配4核心,4GB記憶體,安裝Ubuntu Server 20.10作業系統,使用最新的Helix QAC 2021.2 for Linux,使用MobaXterm終端軟體,SSH連接到虛擬機,圖形界面通過SSH轉發到MobaXterm自帶的X Server,顯示出圖形化界面,OpenHarmony代碼使用的是gitee上最新的master分支代碼(截至2021年9月),使用內置示例工程wifi-iot專案,對wifi-iot專案做靜態分析,
開發環境的配置
安裝好Ubuntu server系統和Helix
QAC2021.2靜態測驗工具之后,就可以開始開發環境的配置,按照官方檔案教程,通過apt安裝必要的庫和工具,使用官方檔案推薦的“通過repo+https”方式下載源代碼到虛擬機中,下載完成后,在shell里面輸入hb
set命令,設定當前的代碼的根目錄,以及要編譯的專案,在這里選擇代碼中內置的wifiiot_hispark_pegasus專案,

選擇完成后,開發相關的環境配置完成,接下來嘗試編譯源代碼,輸入hb build命令,就可以開始構建編譯源代碼了,

這一步的目的是確保源代碼能夠正確編譯,沒有任何編譯錯誤,也就代表代碼的開發環境配置完成,
測驗環境的配置
使用Helix
QAC對代碼進行靜態分析時,必要的前置條件就是確保代碼可以完全編譯成功,沒有任何編譯錯誤,只有這樣才能保證靜態分析的結果是可信的,在上一步已經驗證代碼是可以完全正確編譯的,接下來就可以打開Helix
QAC,創建一個靜態分析專案,對代碼進行靜態分析,輸入./qagui,就可以打開Helix QAC的圖形化界面,

整個靜態分析的程序均可以在圖形化界面中完成,同時也提供了命令列的操作方式,便于和CI系統集成,在整個專案開發周期內,持續不斷確保高標準代碼質量,
創建一個靜態分析的專案
到選單Project->Create New Project,打開測驗環境創建向導,

打開之后,根據實際需要設定專案的目錄和專案名稱,

根據實際使用的編譯器,選擇編譯器對應的CCT,在這里,OpenHarmony中的wifi-iot專案是由riscv32-unknow-elf-gcc編譯器編譯的,在這里選擇riscv32-unknow-elf-gcc編譯器對應的CCT,

匯入專案代碼
專案創建完成,就可以匯入代碼,對代碼做靜態分析,在這里可以通過同步的方式,匯入代碼,
選單Project->Synchronize,打開同步配置視窗,輸入專案代碼根目錄,再輸入編譯命令,就可以匯入源代碼,同步需要對專案做rebuild,所以要事先清除,編譯命令輸入hb
clean && hb
build,點擊Synchronize,會自動呼叫編譯命令對代碼完整編譯,同時監控編譯程序,把所有編譯到的檔案都匯入到Helix
QAC靜態分析專案中,

同步完成后,可以看到被添加進Helix QAC靜態分析專案的源檔案,

靜態分析代碼以及分析結果
點擊分析按鈕,就可以對專案中所有的代碼進行靜態分析,在這里使用MISRA C 2012 規則,對代碼的編碼規范做檢查,分析完成可以看到結果以及分析之后的數量,

針對當前代碼版本的OpenHarmony代碼,經過Helix QAC的靜態分析,使用MISRA C 2012編碼規范,總共發現了違反MISRA C 2012 規則的數量是63222,其中違反MISRA C 2012 Mandatory的數量是356,違反MISRA C 2012 Requird數量是39481,違反MISRA C 2012 Advisory的數量是27538,違反Mandatory分類和required分類的代碼需要做出更正,違反Advisory分類的代碼,可以根據需要做出修正,Helix QAC還可以自動生成報告,這里對于當前的分析結果生成一份代碼審查報告(Code Review Report,CRR),

以下是報告截圖(部分)

“原創內容,轉載請標明出處”
創提資訊科技(上海)有限公司轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/384060.html
標籤:其他
上一篇:大學物理實驗有效數字與測量值小記
