先進駕駛輔助系統(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 是軟體定義車輛(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 是一項極具挑戰性的工作,其設計必須回答多項安全關鍵問題,例如:
- 軟體是否足夠安全可投入使用?
- 是否符合相關法規與標準?
- 是否能長期滿足即時運作的效能要求?
因此,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 開發不可或缺的工具。
運用控制流程與資料流程分析及早發現缺陷
ADAS 軟體仰賴複雜的演算法,即時處理感測器資料。控制流程分析(Control Flow Analysis)可確認程式執行路徑是否符合預期,而資料流程分析(Data Flow Analysis)則追蹤變數在整個程式中的流向與變化。這些技術有助於找出競態條件(Race Condition)、記憶體洩漏(Memory Leak)及非預期行為等問題,避免這些缺陷直到實際上路後才被發現。
確保符合 ISO 26262 與 MISRA 規範
ISO 26262 與車用軟體程式設計標準 MISRA,皆對 ADAS 開發制定了嚴格要求。透過執行靜態分析,可自動落實程式設計規範,降低產品部署後才發現問題的風險,同時減少昂貴的返工成本。
透過 AI 輔助靜態分析加速問題修復
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 軟體安全性與法規遵循能力
開發安全且可靠的 ADAS,不僅需要技術創新,更需要嚴謹的測試、即時效能驗證,以及嚴格的法規遵循。
隨著安全疑慮升高及車輛召回事件增加,汽車製造商除了符合各項標準外,更必須確保這些系統在實際道路環境中能穩定且可靠地運作。
Parasoft 的自動化測試解決方案,包括 AI 輔助靜態分析、以模擬為基礎的驗證,以及持續法規遵循驗證,在縮短開發與實際道路安全之間的落差方面,扮演著關鍵角色。
歡迎前往 ➤ 與 FSG 功能安全專家們繼續深入探討
文由Parasoft提供