虛擬 ECU 與 SIL 測試解決方案:免實體硬體驗證與 CI 自動化
「等硬體」是很多專案真正的時程瓶頸——軟體團隊寫完了,但沒有樣品可以跑,只能等。虛擬 ECU 的價值不在於模擬得多像,而在於把整合測試的起點往前搬:把應用軟體與基礎軟體編譯成能在電腦上執行的單元,軟體與硬體的開發就能並行。再往下一步,這些測試可以搬到伺服器上同時跑幾十個實例,回歸測試不再受限於台架數量。歐特莫夫協助客戶判斷這項投資值不值得,並把環境建到能長期維持的程度。
01 我們的技術方法
- 把整合測試的起點從「拿到樣品」提前到「軟體編譯完成」
- 在電腦上以標準除錯工具定位邏輯問題
- 把測試搬到伺服器與容器環境大量並行執行
- 讓不同工具產生的虛擬單元能在同一個模擬系統中共存
02 使用的核心工具
我們利用業界標準的 Vector 工具來執行此解決方案:
把 AUTOSAR 軟體虛擬化成可在電腦上執行的虛擬 ECU,可產生不同完整度的等級,並內建命令列元件供持續整合使用。
伺服器版的軟體在環測試平台。支援在伺服器與容器環境執行,並可同時啟動多個實例。
開源的模擬整合層,讓不同工具產生的虛擬單元共存於同一個模擬系統,並提供虛擬匯流排與時間同步。
測試序列的設計工具。同一套序列可用於虛擬與實體環境,避免維護兩份測試資產。
單元與整合層的測試與覆蓋率分析,與虛擬環境搭配可在早期就累積結構覆蓋率。
03 技術難點
虛擬 ECU 到什麼程度才有用?
虛擬 ECU 指的是把 ECU 的軟體編譯成能在一般電腦上執行的形式。它有不同的完整度:最輕量的只包含應用軟體與模擬的基礎服務,適合早期驗證功能邏輯;較完整的會沿用實際專案的協定堆疊組態,能驗證通訊與診斷服務,也能與真實 ECU 耦合做混合驗證。判斷要做到哪一級,取決於您想在硬體到手前先確認哪些事——不是越完整越好,越完整的環境建置與維護成本也越高。
把測試往前搬,再往上搬
往前搬:不必等樣品
軟體編譯完成就能開始整合測試,硬體與軟體的開發並行。專案時程上最大的差別不是省下測試時間,而是問題被發現的時機提前——早期發現的設計問題,改起來的代價和後期完全不同。
在電腦上除錯,速度差很多
虛擬單元可以用一般的桌面除錯工具來查,斷點、單步與變數觀察都不受目標板除錯介面的限制。定位一個邏輯錯誤所需的時間,往往是在目標板上的幾分之一。
往上搬:伺服器與容器
測試工程可以在伺服器或容器環境中執行,同時啟動多個實例。回歸測試的範圍不再受台架數量限制,而是取決於您願意投入多少運算資源——這是一個可以用錢解決的限制,比排隊等台架好處理。
不同來源的虛擬單元要能共存
實務上一個系統的軟體來自多個團隊或供應商,虛擬化的做法也不會統一。要讓整合測試真的擺脫實體硬體,關鍵是這些不同來源的虛擬單元能被放進同一個模擬系統,共用同一條虛擬匯流排與同一個時間軸。
歐特莫夫的技術服務流程
虛擬化最容易失敗的地方是「建起來了但沒人用」。這四個階段刻意把判斷值不值得做放在第一步。
瓶頸確認與投資判斷
先確認您的專案瓶頸是不是「等硬體」或「台架不足」。如果不是,虛擬化的投資報酬會很有限——這一步我們會直接說不建議做,而不是先賣環境。
虛擬單元的等級與範圍決定
依您想提前驗證的內容決定虛擬單元要做到哪一級,以及哪些模組用模擬、哪些沿用實際組態。範圍定得太大,環境會維護不動。
環境建置與測試資產轉移
建置虛擬化環境,並把既有的測試案例轉移過來——重點是讓同一套測試能在虛擬與實體環境都跑,而不是維護兩份。
自動化執行與長期維運
把測試接進持續整合流程並在伺服器環境中並行執行,同時建立環境的版本管理方式。虛擬環境本身也會過期,維護責任要在交付時就講清楚。