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

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

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

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

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

可移植性
QA MISRA 促使代碼在不同的編譯器和平臺之間保持一致,同時認識到標準的局 限、語言擴展和實現定義的行為。
類型轉換
QA MISRA 確定數據類型之間的隱式轉換(默認參數、整數提升、函數返回)。

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

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

Jenkins 插件
為靜態分析解決方案倡導的“早期且經常”的方法顯然與持續集成理念產生了共鳴,這種理念正越來越多地被作為軟件質量的可靠方法保障。
Jenkins插件將允許用戶自動化啟用的 C/C++項目的分析,將分析作為持續集成過程的一部分來執行。
該插件提供了一系列功能,包括:
- 自動檢查每個 Jenkins 構建是否違反規則
- 直接在 Jenkins 工作區中歸檔分析報告
- 通過 Jenkins web 界面訪問分析結果
- 根據用戶的標準,根據分析結果自動將生成標記為錯誤
- 將不同版本的分析作為單獨的分析修訂版啟動,以便于調試和記錄進度

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

首頁 > 產品中心 > QA MISRA
