

隨著現代車輛的智能化發展(ADAS, Telematics, Infotainment, Cloud Services),車載代碼量呈指數級增長,軟件功能安全合規性要求在不斷增加,網絡信息安全標準也提上日程,在代碼開發階段進行自動化靜態分析就顯得尤為重要,符合行業編碼規范也是對車載代碼的基礎要求。
美國Perforce(PRQA)公司是嵌入式靜態分析領域公認的行業領導及先驅,擁有30多年軟件開發及測試經驗,是MISRA編碼委員會的創始成員合最具有影響力的會員,同時是AUTOSAR組織在代碼靜態分析領域的唯一會員,負責功能安全軟件架構的相關標準制定工作,參與編寫了C++14編碼指南,制定了AUTOSAR測試方案。
Perforce QAC(原 Helix QAC)作為靜態分析領域公認的行業先驅,可以支持MISRA C/C++、AUTOSAR C++、CERT C/C++、CWE C/C++、HICPP、JSF AV C++編碼規范包,旨在幫助開發和測試人員在Coding階段實現高效的自動化靜態測試,發現代碼潛在缺陷,衡量代碼質量,縮減開發時間,降低開發成本。
北匯信息作為Perforce的合作伙伴,將為中國客戶提供專業的靜態代碼測試解決方案。
Perforce QAC特性
Perforce QAC軟件組成:
QAC/C++靜態分析器:可以兼容數百萬行代碼,高速執行靜態分析;
編碼規范包:可選組件,配合靜態分析器實現代碼的合規性測試;
項目管理Web平臺:Dashboard/Validate 全生命周期軟件開發管理;
新License模式:新版本提供Build license,專用于CI/CT流程
1、 代碼靜態分析
QAC支持在Windows/Linux平臺使用,可通過GUI/命令行/插件的方式創建靜態分析工程,支持通過Sync同步編譯/手動非編的方式加載源碼文件,支持基于Visual Studio、Eclipse、VS Code IDE、CodeWarrior、GNU、IAR、GreenHills、Hightec Tricore、QNX環境等400+種編譯器自動生成CCT配置文件;通過對源碼的快速準確分析得到代碼相應靜態分析診斷消息,并具備多文件并行分析、跨模塊分析等功能,萬行代碼分析用時不超過30s;
QAC支持根據多種類分組篩選診斷消息,針對每條診斷消息都有對應的help頁面輔助修復。

圖1 QAC代碼審查
2、 編碼規范檢查
QAC支持C、C++語言編碼規范檢查,支持MISRA C 2004、MISRA C 2012、MISRA C++2008、MISRA C/C++ 2023、MISRA C 2025、AUTOSAR C++、CERT C/C++、CWE C/C++等編碼合規模塊,能夠自動對被測源碼進行編碼規范檢查,同時支持企業自定義編碼規范。

圖2 編碼規范覆蓋度
3、 度量元指標分析
QAC提供全面的度量元指標,共計68種,可基于函數、文件、工程角度實現代碼質量度量,并支持自定義度量元閾值、自定義復合度量元等功能。

圖3 度量元指標
4、 數據流分析
QAC借助特有的深度數據流分析引擎,模擬代碼運行時機制,通過數據流分析找出如未定義行為、控制流 、初始化、指針等類型的運行時錯誤。QAC提供5個等級的數據流分析,企業可以根據項目需求選擇性執行。
5、 測試報告
QAC支持生成多種報告,包括代碼審查報告(Code Review Report)、MISRA合規報告(MISRA Compliance Report)、HIS度量元報告(HIS Metrics Report)、度量元數據報告(Metrics Data Report)、抑制報告(Suppressions Report)等,支持通過項目管理Web平臺進行報告定制化。

圖4 QAC生成報告
6、 基于網頁端的項目管理平臺
QAC可提供兩個基于Web端的項目管理平臺——Dashboard/Validate,通過網頁管理平臺更好的實現團隊化合作,同時還支持源碼版本管理、文件對比分析、度量元趨勢圖分析、定制化報告;支持LDAP,,快速導入賬號信息,并且可根據項目分組,為組內成員設置訪問權限。

圖5 Dashboard

圖6 Validate
7、 CI/CT集成
QAC可提供豐富的命令行,通過命令行即可實現license配置—工程創建與分析—報告生成—上傳Web平臺全流程,易與持續集成系統進行融合,部署CI/CT流程,同時新版本QAC 提供Build license,更適用于CI/CT流程。
8、 抑制規則
QAC可根據用戶/項目需求自定義規則,針對規則/診斷消息支持Enable/Disable,可以基于項目經驗制定Baseline,還提供有抑制語法對特定代碼行進行診斷抑制。
資質認證
Perforce QAC得到SGS-TüV SAAR認證,可用于安全相關軟件的開發,符合ISO26262 (ASIL D,TCL2)、IEC 61508、EN 50128、IEC 60880、IEC 62304、DO-330 (DO-178B/C)、ISO/SAE 21434標準,幫助客戶用更少的時間完成產品認證。

圖7 資質認證證書
QAC部分客戶
