先進駕駛輔助系統(ADAS)是現代軟體定義車輛(SDV)的核心組成之一。然而,要符合各項安全標準並非易事。本文將說明靜態程式碼分析在確保 ADAS 安全性方面所扮演的重要角色。

ADAS 軟體極為複雜,且屬於安全關鍵(Safety-Critical)系統。數百萬行程式碼負責即時決策,即使是微小的缺陷,也可能造成災難性的後果,因此嚴謹的測試是不可或缺的。

靜態分析可在缺陷演變成高成本問題之前加以發現。透過在不執行程式的情況下檢查程式碼,靜態分析能及早找出錯誤、漏洞及法規遵循問題,避免實際運作時發生故障及昂貴的返工。

靜態分析可自動化符合嚴格的汽車產業標準。它能落實 ISO 26262、MISRA 與 AUTOSAR 等程式設計規範,降低產品部署後發生故障的風險,同時簡化認證流程。

AI 輔助靜態分析可加速問題修復。具備 AI Agent 的現代化工具能自動分析違規項目、提出符合規範的修正建議,在維持可追溯性(Traceability)與可稽核性(Auditability)的同時,大幅降低人工處理工作量。

將靜態分析整合至 CI/CD 流程至關重要。透過在整個軟體開發生命週期中持續執行自動化測試與政策落實,可確保 ADAS 軟體持續符合安全性、資安性及可靠性要求。

近年來,配備自動駕駛系統(ADS)與 ADAS 的車輛發生多起事故,引起監管機關更嚴格的關注。2021 年 6 月至 2024 年 6 月期間,與這些系統相關的事故通報接近 4,000 件。

以自動駕駛車輛為例,其即時決策仰賴數百萬行程式碼運作,因此即使最細微的缺陷,也可能在道路上造成嚴重後果。

如此高度複雜的系統,加上 ISO 26262、ISO 21448、MISRA 與 UNECE Regulation No. 157 等安全標準日益嚴格,使軟體品質管理必須採取更積極的策略。而靜態程式碼分析搭配自動化測試,正是其中不可或缺的關鍵措施。

本文將探討靜態程式碼分析,以及如何在整個開發生命週期中導入自動化 CI/CD,以提升軟體定義車輛中安全關鍵系統的整體安全性。

ADAS 是軟體定義車輛(SDV)中最重要的軟體驅動功能之一。它透過先進軟體提供各項關鍵駕駛輔助功能,包括碰撞避免、自適應巡航控制,以及自動停車等。

為了提升系統效能、促進各元件之間的流暢通訊,並確保煞車、轉向、油門控制等各項子系統及其他關鍵功能能即時協同運作,ADAS 採用了集中式電子架構。

這些架構透過高效能中央運算單元處理感測器資料、執行感測器融合(Sensor Fusion),並進行進階決策運算,以提升車輛安全性與自動化能力。

為了實現 SDV 的先進功能,ADAS 具備以下核心能力。

1. 碰撞避免與緊急煞車

ADAS 利用雷達(Radar)、光達(LiDAR)及攝影機偵測潛在碰撞風險。系統可提醒駕駛人,或自動啟動緊急煞車,以降低追撞事故發生的機率。

2. 自適應控制系統

自適應巡航控制(ACC)與車道維持輔助系統(Lane Keeping Assist)會持續監控交通狀況,即時調整車速與轉向,維持安全車距並讓車輛保持在車道中央行駛。這些系統能根據即時交通環境持續調整控制策略,提升車輛操控穩定性。

3. 視覺與偵測系統

透過感測器融合與電腦視覺技術,ADAS 能辨識障礙物、交通標誌、車道標線及行人,進而提升低能見度及夜間行車的安全性。

4. 車聯網(V2X)通訊

V2X 通訊讓車輛能與周遭基礎設施、行人及其他車輛互動,提高環境感知能力,並有助於在事故發生前預防風險。

5. 導航與引導系統

ADAS 整合高精度地圖(HD Maps)與 GPS,提供即時導航、車道級引導及路徑最佳化,讓行車更加安全且有效率。

如同所有安全關鍵軟體系統,開發 ADAS 是一項極具挑戰性的工作,其設計必須回答多項安全關鍵問題,例如:

  • 軟體是否足夠安全可投入使用?
  • 是否符合相關法規與標準?
  • 是否能長期滿足即時運作的效能要求?

因此,ADAS 若要成功上市,必須能在各種難以預測的駕駛情境中穩定運作,因為即使是微小錯誤,也可能導致災難性的後果。

因此,開發人員面臨的重要挑戰之一,就是依據 ISO 26262 等標準確保功能安全(Functional Safety)。

ISO 26262 定義了車用電子系統的安全要求,並規定必須透過嚴謹的開發流程降低硬體或軟體失效所帶來的風險。例如,標準要求對潛在危害進行汽車安全完整性等級(ASIL)分級,並採用容錯設計(Fault-Tolerant Design)來達成安全目標。

確保即時效能也是開發人員必須克服的重要挑戰。ADAS 系統需即時處理來自攝影機、LiDAR、超音波感測器、紅外線感測器、GNSS 接收器及 IMU 等大量感測器資料,以做出瞬間決策。

ISO 21448(SOTIF,Safety of the Intended Functionality)則著重於降低系統在複雜環境下因功能限制所產生的風險。

持續演進的法規也讓 ADAS 開發更加複雜。例如,UNECE Regulation No. 157 規範自動車道維持系統(Automated Lane Keeping Systems, ALKS),要求系統必須在特定條件下通過嚴格測試。

同樣地,ISO/SAE 21434 則針對車輛系統可能遭受的網路攻擊,制定汽車資安防護要求。

為了克服這些挑戰,許多企業開始採用 Parasoft 等自動化測試平台,協助開發團隊在程式碼部署至正式環境(Production Environment)前找出潛在錯誤。

Parasoft 的自動化測試解決方案專為符合 ISO 26262、ISO 21434、AUTOSAR C++14 及 MISRA 等汽車產業標準而設計。

例如,透過 Parasoft C/C++test,開發團隊可執行靜態分析與動態分析,在軟體開發生命週期的早期偵測缺陷與漏洞,並透過可自訂的儀表板及詳細報告,協助驗證是否符合相關規範。

此方法不僅能縮短產品上市時程,也有助於交付兼具安全性、資安性、可靠性及法規遵循能力的 ADAS 軟體。

靜態程式碼分析在提升軟體可靠性方面扮演關鍵角色。它能在程式碼尚未執行前,即找出錯誤、漏洞及法規遵循問題。

不同於需要執行軟體的動態測試,靜態分析是在程式碼未執行的狀態下進行檢查,可於開發初期即發現缺陷,有助於在問題演變成高成本風險之前及早修正。此外,靜態分析也能提升程式碼品質、可維護性及安全性,因此已成為 ADAS 開發不可或缺的工具。

ADAS 軟體仰賴複雜的演算法,即時處理感測器資料。控制流程分析(Control Flow Analysis)可確認程式執行路徑是否符合預期,而資料流程分析(Data Flow Analysis)則追蹤變數在整個程式中的流向與變化。這些技術有助於找出競態條件(Race Condition)、記憶體洩漏(Memory Leak)及非預期行為等問題,避免這些缺陷直到實際上路後才被發現。

ISO 26262 與車用軟體程式設計標準 MISRA,皆對 ADAS 開發制定了嚴格要求。透過執行靜態分析,可自動落實程式設計規範,降低產品部署後才發現問題的風險,同時減少昂貴的返工成本。

AI 正在改變嵌入式軟體的開發流程,而 AI 驅動的功能也正逐步擴展至整個軟體品質管理生態系。

現代靜態分析解決方案結合先進的靜態分析技術、規則式驗證(Rule-Based Verification)、控制流程分析、資料流程分析及 AI 輔助工作流程,以提升軟體品質、安全性、資安性及法規遵循能力。Parasoft C/C++test 能自動找出嵌入式 C 與 C++ 應用程式中的漏洞、程式設計規範違規、程式缺陷及可維護性問題。

支援 MCP(Model Context Protocol)的 Agentic AI 工作流程可整合至開發環境及 CI/CD 流程中,協助開發團隊加速問題修復。透過可設定的 AI 技能,AI Agent 能夠:

  • 分析靜態分析結果。
  • 理解 MISRA、AUTOSAR C++14、CERT 與 CWE 等程式設計規範。
  • 提出符合規範的修正建議。
  • 協助開發人員產生待審查的程式碼修改內容。

工程團隊可因此獲得以下效益:

  • 降低人工修復工作量。
  • 加速處理程式設計規範違規問題。
  • 提升修正作業的一致性。
  • 在維持人工審核、可追溯性(Traceability)及可稽核性(Auditability)的前提下,簡化法規遵循作業流程。

為了支援持續驗證(Continuous Verification)策略,Parasoft 解決方案可整合至 CI/CD 流程及嵌入式開發生態系,在整個軟體開發生命週期中實現自動化分析、政策落實、法規遵循報告,以及 AI 輔助問題修復。

開發安全且可靠的 ADAS,不僅需要技術創新,更需要嚴謹的測試、即時效能驗證,以及嚴格的法規遵循。

隨著安全疑慮升高及車輛召回事件增加,汽車製造商除了符合各項標準外,更必須確保這些系統在實際道路環境中能穩定且可靠地運作。

Parasoft 的自動化測試解決方案,包括 AI 輔助靜態分析、以模擬為基礎的驗證,以及持續法規遵循驗證,在縮短開發與實際道路安全之間的落差方面,扮演著關鍵角色。

文由Parasoft提供

延伸閱讀⎟