行業合規標準MISRA如何幫助C/C++代碼程序員高效地編寫代碼?
MISRA標準包含編寫軟件的準則和代碼規則。汽車、航空航天和國防、醫療、工業自動化和鐵路等行業都使用該標準來幫助他們的開發人員編寫源代碼,以確保軟件的安全、安保和可靠性。
由于嵌入式軟件工程師使用C和C++編程語言來編寫安全關鍵型軟件的代碼,MISRA標準的創建者為使用這兩種語言的編碼者建立了這些標準。
在20世紀90年代初,電子產品在汽車中變得越來越重要。作為這些電子產品的一個組成部分的嵌入式軟件也是如此。因此,工程師和制造商開始意識到,無論是出于安全還是商業原因,軟件的可靠性是至關重要的。今天的挑戰甚至更大,因為一輛汽車的軟件可能涉及超過1億行的編碼。
MISRA的功能安全編碼標準
今天,開發團隊采用編碼標準作為定義、管理和利用一組編碼實踐的方法,其首要目標是一致性。編碼規則的主要目的是限制語言的使用,這樣可以防止開發人員做一些 "錯誤 "的事情,并可能產生潛在的危險。
開發人員可以通過采取合理的語言使用限制來避免軟件中的許多缺陷。這導致了風格的統一,這在軟件項目中作為一種紀律是很有價值的。
常用的MISRA C和C++語言指南和規則
每個MISRA標準都包含了一套編碼參數和規則,以及支持材料。支持材料是標準的補充部分,提供了任何想獲得符合性的程序員所必需的重要背景信息。 讓我們看看當前的C和C++ MISRA編碼標準本身和簡要說明:
- MISRA C++ 2008:雖然C仍然是主流的編碼語言,但這個版本談到了C++的使用增加。注意:許多企業選擇以AUTOSAR C++ 14為標準,它涵蓋了C++的最新變化。事實上,AUTOSAR和MISRA聯手制作了下一代的標準。
- MISRA C 2012:該版本于2013年發布,也被稱為MISRA C3,進一步發展了MISRA C標準。它吸取了14年來與成千上萬的組織和用戶互動的經驗,包括了一些新的規則,彌補了一些漏洞,并改進了以前存在的規則背后的解釋和描述。該標準擴展了對C99的支持,并保持了對C90、C11和C18的支持。它還做出了一些改進,降低了合規的復雜性和成本。
- MISRA合規性2020:這份現行文件為完成MISRA編碼標準的合規性設定了一個框架。它取代了以前版本的標準中的合規性和流程及偏差要求。
使用Parasoft靜態分析實現MISRA合規性
MISRA編碼標準提供了全面的規則和指導方針,因此公司可以保護他們的應用程序免受運行時錯誤和軟件故障的影響,并使它們不太容易出現安全和安全漏洞。符合MISRA標準有助于改進語法,創建代碼一致性,并促進可移植性。對于不使用靜態分析(或SAST-靜態應用安全測試)解決方案或工具的團隊來說,驗證合規性可能會有問題。Parasoft簡化了這一過程,這對于確保及時的軟件交付和編碼安全至關重要。
在整個軟件開發生命周期中應用MISRA合規性是很重要的,包括在代碼實現期間進行左移測試和加快代碼審查。這不僅提供了質量改進,還提供了進度度量、持續可追溯性和強制執行。根據2020年MISRA合規性自動記錄和合規性報告也是節省資源和時間的一個關鍵因素,也是解決違規問題時避免沮喪的一個關鍵因素。
像Parasoft這樣的工具可以被配置成檢測整個MISRA標準的子集。這減少了分析產生的噪音量,并增加了對解決嚴重違規問題的關注。
合規報告
與公司實現MISRA合規性相關的問題之一是缺乏證明合規性的標準機制。為了解決這個問題,MISRA發布了“MISRA合規性2020:實現對MISRA編碼指南的合規性”,這是最新的更新,提供了“MISRA合規性”的更具體定義,并確定了證明符合MISRA標準所需的幾個交付件。
- 指南合規性總結。總體項目合規性的強制性主要記錄。GCS包括每個指南的條目、其符合性水平、任何偏差和/或重新分類。
- 指南重新分類計劃。必須遵循所有強制性準則來實現合規性。但是,必需和咨詢指南可以重新分類為更嚴格的類別(例如從咨詢到必需),但只有咨詢指南可以重新分類為不太嚴格的類別(例如從咨詢到禁用)。
- 偏差報告。您的項目可能存在偏離指導方針或違反規則的情況,如果這些偏離是合理的,并記錄在報告中,且不影響安全,則仍然被認為是合規的。
- 指南實施計劃。演示如何驗證每個MISRA指南。在MISRA符合Parasoft的背景下,GEP將MISRA指南映射到Parasoft代碼分析規則和DTP功能。
Parasoft——領先的自動化測試工具,滿足絕大多數行業標準
鑒定工具的目的是證明它們對預期的使用是有效的。它包括證明團隊如何對其進行資格認證以及背后的理由。Parasoft C/C++test和我們的報告工具Parasoft DTP已經通過了TüV SüD的認證,可用于安全關鍵型應用,而且對于一些最嚴格的工藝標準,如DO-178B/C及其要求,存在一個工具鑒定套件。
從開發到質量檢查,Parasoft的技術通過集成靜態和運行時分析,單元、功能和API測試,以及服務虛擬化,在不犧牲質量和安全性的情況下加快軟件交付,節約交付成本。
強大的報告和分析功能可幫助用戶快速查明有風險的代碼區域,并了解新代碼更改如何影響其軟件質量,而突破性的技術將人工智能和機器學習添加到軟件測試中,使組織更容易采用和擴展跨開發和測試團隊的有效的軟件測試實踐。
Parasoft針對C/C++、Java、.NET和嵌入式的開發測試都有著30多年的深入研究,很多全國500強企業使用Parasoft的產品實現了軟件快速、高質量的交付。