一、產(chǎn)品概述
在開發(fā)過程中,越早發(fā)現(xiàn)并消除軟件錯誤,成本就越低。通過使用QA MISRA進(jìn)行代碼的靜態(tài)分析,可以在早期階段發(fā)現(xiàn)危險結(jié)構(gòu)、安全、維護(hù)和移植問題。
QA MISRA可以快速地分析大量復(fù)雜的軟件包。這樣簡化了質(zhì)量管理,并幫助用戶遵守相關(guān)的安全標(biāo)準(zhǔn),用戶的代碼是否符合項目所需的規(guī)范。
使用QA MISRA檢查的用戶代碼可靠性、可移植性及易維護(hù)性。應(yīng)用QA MISRA,使得用戶的軟件變得更統(tǒng)一、更簡單、更健壯。
QA MISRA能自動檢查用戶的C/C++代碼是否符合 MISRA 和 AUTOSAR 規(guī)則,及安全標(biāo)準(zhǔn),如SEI Cert C/C++,CWE,ISO/IEC TS 17961,HIS Metrics等。

二、功能特性
1、靜態(tài)代碼分析
靜態(tài)分析持續(xù)檢查和報告軟件缺陷、語言實現(xiàn)錯誤、不一致、危險用法、編碼標(biāo)準(zhǔn)的違背和安全漏洞。
早期檢測缺陷,防止昂貴代價的錯誤
QA MISRA 檢查源代碼中的900多個潛在的軟件錯誤。通過使用QA MISRA 進(jìn)行靜態(tài)分析,可以在早期階段發(fā)現(xiàn)危險結(jié)構(gòu)、安全、維護(hù)和移植等問題。
產(chǎn)生干凈的行為可預(yù)測的代碼
即使是符合ISO標(biāo)準(zhǔn)的軟件,其行為也可能與預(yù)期不同,因為并非所有在開發(fā)過程中可能導(dǎo)致問題的因素都被安全標(biāo)準(zhǔn)歸類為不正確。這就是為什么使用 QA MISRA 進(jìn)行靜態(tài)分析也會顯示代碼中經(jīng)常被開發(fā)人員和編譯器忽略的問題。QA MISRA 的測試完全自動化功能,可以節(jié)省寶貴的開發(fā)資源。

監(jiān)控代碼庫 – 綜合的可配置報告
綜合報告幫助用戶查找問題,顯示應(yīng)該留意的地方。
合規(guī)性報告,指出需要更多工作以提高合規(guī)程度的區(qū)域。
分類報告,檢測出的規(guī)則違背部分由用戶進(jìn)行分類。
度量報告,提供文本、HTML 和 CSV 格式的度量數(shù)據(jù)。

違反約束
QA MISRA可以幫助用戶在語法正確但語義不正確、未指定或未定義的代碼中查找錯誤。在某些情況下,這可能會導(dǎo)致編譯器產(chǎn)生錯誤并停止工作,但 QA MISRA可以檢測到不妨礙編譯器工作的錯誤。

跨多個模塊的分析
QA MISRA 識別鏈接器無法解決的不合規(guī)行為。整個項目中的外部對象和函數(shù)的 遞歸以及相互矛盾的聲明很容易被檢測到。

可移植性
QA MISRA 促使代碼在不同的編譯器和平臺之間保持一致,同時認(rèn)識到標(biāo)準(zhǔn)的局 限、語言擴(kuò)展和實現(xiàn)定義的行為。
類型轉(zhuǎn)換
QA MISRA 確定數(shù)據(jù)類型之間的隱式轉(zhuǎn)換(默認(rèn)參數(shù)、整數(shù)提升、函數(shù)返回)。

冗余代碼
QA MISRA檢測未使用的變量、函數(shù)和參數(shù)以及結(jié)果不會改變的條件(始終為真 或始終為假)。
語句和操作
QA MISRA 可檢測可疑的比較操作,包括使用不正確的類型,并可以發(fā)現(xiàn)會產(chǎn)生 誤解或難以理解和維護(hù)的結(jié)構(gòu),即使它們是允許使用的。
命名規(guī)范
QA MISRA 通過正則表達(dá)式鼓勵使用統(tǒng)一格式。所有標(biāo)識符都可以檢查。
2、對標(biāo)準(zhǔn)的符合性
QA MISRA 的開發(fā)是與 MISRA 委員會專家密切合作的成果。如何理解和改進(jìn)報告 的 MISRA 違規(guī)行為?它為開發(fā)人員提供了全面的知識庫和廣泛的示例代碼,幫助遵守 MISRA 標(biāo)準(zhǔn)。
未來趨勢——內(nèi)嵌的
無論軟件開發(fā)市場走向何方,使用QA MISRA的用戶將始終處于領(lǐng)先地位。畢竟,作為“行業(yè)標(biāo)準(zhǔn)”,MISRA 的規(guī)則集將保持并加強其地位。
高度可配置性
QA MISRA 的特殊之處:QA MISRA 可以定制為在用戶的開發(fā)環(huán)境中工作,具有 高度可配置的 MISRA 合規(guī)性規(guī)則集,用于定義公司特定的子集以檢查合規(guī)性。
更好的軟件
QA MISRA 通過有效檢測代碼中的錯誤、不一致性、過時功能和對標(biāo)準(zhǔn)的一般違 反,確保用戶的軟件滿足 MISRA 標(biāo)準(zhǔn)的嚴(yán)格要求。錯誤可以在成本效益仍然可以實現(xiàn) 的階段糾正。
更好的理解——一致性開發(fā)
QA MISRA 確保用戶的所有代碼都符合 MISRA 規(guī)則。而且它有助于開發(fā)人員在軟 件中安全使用 C 和 C++語言同時滿足 MISRA 標(biāo)準(zhǔn)。使用 QA MISRA 開發(fā)的代碼往往 不那么復(fù)雜,因為單個開發(fā)人員和團(tuán)隊可以遵循一致的標(biāo)準(zhǔn)。
可測試、可維護(hù)和可移植
使用 QA MISRA 創(chuàng)建的軟件可以在開發(fā)的所有階段進(jìn)行測試。如果軟件符合 MISRA 標(biāo)準(zhǔn),那么代碼的維護(hù)和移植就容易多了。
縮短上市時間
可以在非常早期的階段可靠地識別和糾正錯誤,從而使用戶能夠更快地發(fā)布軟件, 而不會危及質(zhì)量。
3、持續(xù)集成
什么是持續(xù)集成
持續(xù)集成原則鼓勵開發(fā)人員和團(tuán)隊不斷地共享和集成他們的所有貢獻(xiàn);遠(yuǎn)離夜間構(gòu)建的概念,轉(zhuǎn)而接受連續(xù)構(gòu)建的概念;遠(yuǎn)離政策執(zhí)行,轉(zhuǎn)而依靠質(zhì)量執(zhí)行;目標(biāo)是獲得對軟件驗證和軟件依賴性的完全和自動化的控制,這樣每個開發(fā)人員都有可能成為發(fā)布候選。
可以在命令行上運行測試工具,以便它們可以輕松地與許多CI工具集成。

關(guān)鍵軟件的以測試為中心的過程
QA MISRA和CANTATA支持驗證代碼的靜態(tài)和動態(tài)方面。靜態(tài)分析有助于在執(zhí)行代碼動態(tài)測試之前檢測缺陷,節(jié)省時間。軟件單元和集成測試驗證正確的行為,以及不會發(fā)生不正確的行為,同時檢查代碼的執(zhí)行路徑和驗證需求。每個階段的自動化功能以及與CI構(gòu)建系統(tǒng)和需求收集工具的可靠集成,將手動測試的需求降至最低。所有這些加起來大大減少了缺陷,并通過在開發(fā)周期中更快、更早地識別問題節(jié)省了時間。

Jenkins 插件
為靜態(tài)分析解決方案倡導(dǎo)的“早期且經(jīng)?!钡姆椒@然與持續(xù)集成理念產(chǎn)生了共鳴,這種理念正越來越多地被作為軟件質(zhì)量的可靠方法保障。
Jenkins插件將允許用戶自動化啟用的 C/C++項目的分析,將分析作為持續(xù)集成過程的一部分來執(zhí)行。
該插件提供了一系列功能,包括:
- 自動檢查每個 Jenkins 構(gòu)建是否違反規(guī)則
- 直接在 Jenkins 工作區(qū)中歸檔分析報告
- 通過 Jenkins web 界面訪問分析結(jié)果
- 根據(jù)用戶的標(biāo)準(zhǔn),根據(jù)分析結(jié)果自動將生成標(biāo)記為錯誤
- 將不同版本的分析作為單獨的分析修訂版啟動,以便于調(diào)試和記錄進(jìn)度

4、給用戶帶來的價值
- 降低成本,同時縮短上市時間
- 降低程序失敗的風(fēng)險
- 在開發(fā)周期的早期識別編碼問題
- 確保符合代碼質(zhì)量和編碼標(biāo)準(zhǔn)
- MISRA 標(biāo)準(zhǔn)的完全集成環(huán)境
- 適用于需要安全關(guān)鍵軟件的所有行業(yè)
- 加速并重新聚焦代碼評審過程,并改進(jìn)開發(fā)團(tuán)隊的協(xié)作
- 提升開發(fā)人員的專業(yè)技能并推廣最佳實踐
- 增強可靠性、可移植性和可維護(hù)性
- 提高代碼的可移植性和可重用性
- 開發(fā)環(huán)境中的即時和可重復(fù)測試
5、主要特征
QA MISRA 是一種靜態(tài)分析器,旨在檢查符合 C90、C99、C11、C18 和 C++98、C++11、C++14、C++17 語言規(guī)范的安全關(guān)鍵 C/C++程序的編碼準(zhǔn)則,計算代碼度量。
- 快速易用
- 實施編碼準(zhǔn)則,包括 MISRAC:2004、MISRA-C:2012 和定制規(guī)則集
- 在句法規(guī)則上沒有漏報和誤報
- 與 Astrée 無縫集成,確保語義規(guī)則的零漏報和最小誤報
- 代碼度量的計算:HIS 度量和定制度量
- 強制執(zhí)行度量閾值
- 報告的代碼問題的完全可跟蹤性
- 交互式結(jié)果探索
- 調(diào)查結(jié)果的穩(wěn)健分類
- 可配置報告文件生成
- 項目進(jìn)度和分析修訂的跟蹤和可視化
- 客戶機/服務(wù)器體系結(jié)構(gòu),具有分析請求的隊列處理,以及集中的用戶管理和身份驗證
- 具有開放接口和開放文件格式的獨立工具
- MATLAB 集成與 TargetLink 耦合
- 根據(jù)安全標(biāo)準(zhǔn)進(jìn)行自動工具合格審定
6、基本功能
- 命令行接口
- 交互式圖形用戶界面
- 在線幫助和 MISRA 知識庫
- 概要和詳細(xì)報告
- 集成到基于 Eclipse 的 IDE 中
7、代碼分析功能
- 快速源代碼分析
- 警報可根據(jù)注釋進(jìn)行分類
- ISO/IEC 9899:1990 (C90)
- ISO/IEC 9899:1999 (C99)
- ISO/IEC 9899:2011 (C11)
- ISO/IEC 9899:2018 (C18)
- ISO/IEC 14882:2011 (C++11)
- ISO/IEC 14882:2014 (C++14)
- ISO/IEC 14882:2017 (C++17)
8、持續(xù)集成環(huán)境
- Jenkins
- 其他 CI 環(huán)境可以通過命令行集成
9、支持的編程標(biāo)準(zhǔn)
- MISRA C:2004
- MISRA C:2012
- MISRA C:2012 修訂 1&2
- MISRA AC AGC
- HIS Metrics
- ISO/IEC TS 17961:2013(C 安全編碼規(guī)則)
- SEI CERT C 編程規(guī)范
- SEI CERT C++ 編程規(guī)范
- CWE
- MISRA C++:2008
- Adaptive AUTOSAR C++14
- 命名規(guī)范檢查
- 可擴(kuò)展的規(guī)則集
10、安全關(guān)鍵標(biāo)準(zhǔn)
通過使用“合格審定支持工具包”,QA MISRA 支持以下安全標(biāo)準(zhǔn):
- ISO 26262:2018(汽車電子)
- EN 50128:2011/A2:2020(軌道交通)
- EN 50657:2017(鐵路軌道)
- IEC 62304:2006(醫(yī)療器械)
- IEC 61508:2010(工業(yè)自動化)
- DO-178B(航空航天與國防)
- DO-178C / DO-330(航空航天與國防)
11、系統(tǒng)需求
- Windows:64 位 Windows10
- Linux:64 位 CentOS/RHEL 7 或其他兼容發(fā)行版
- 4 GB RAM(建議使用 16 GB)
- 4 GB 存儲空間