虛擬 ECU 與 SIL 測試解決方案:免實體硬體驗證與 CI 自動化

「等硬體」是很多專案真正的時程瓶頸——軟體團隊寫完了,但沒有樣品可以跑,只能等。虛擬 ECU 的價值不在於模擬得多像,而在於把整合測試的起點往前搬:把應用軟體與基礎軟體編譯成能在電腦上執行的單元,軟體與硬體的開發就能並行。再往下一步,這些測試可以搬到伺服器上同時跑幾十個實例,回歸測試不再受限於台架數量。歐特莫夫協助客戶判斷這項投資值不值得,並把環境建到能長期維持的程度。

01 我們的技術方法

  • 把整合測試的起點從「拿到樣品」提前到「軟體編譯完成」
  • 在電腦上以標準除錯工具定位邏輯問題
  • 把測試搬到伺服器與容器環境大量並行執行
  • 讓不同工具產生的虛擬單元能在同一個模擬系統中共存

02 使用的核心工具

我們利用業界標準的 Vector 工具來執行此解決方案:

vVIRTUALtarget SE
更多工具介紹

把 AUTOSAR 軟體虛擬化成可在電腦上執行的虛擬 ECU,可產生不同完整度的等級,並內建命令列元件供持續整合使用。

CANoe4SW SE / CANoe SE

伺服器版的軟體在環測試平台。支援在伺服器與容器環境執行,並可同時啟動多個實例。

SIL Kit

開源的模擬整合層,讓不同工具產生的虛擬單元共存於同一個模擬系統,並提供虛擬匯流排與時間同步。

測試序列的設計工具。同一套序列可用於虛擬與實體環境,避免維護兩份測試資產。

單元與整合層的測試與覆蓋率分析,與虛擬環境搭配可在早期就累積結構覆蓋率。

03 技術難點

硬體樣品一延,軟體驗證就跟著延:問題往往在專案後期集中爆發,而那時候的修改成本最高。
回歸測試受限於實體台架的數量:台架不足時,回歸範圍只能靠人力挑重點,覆蓋率因此無法保證。
在目標板上除錯遠比在電腦上慢:斷點、單步與變數觀察都受限於除錯介面的能力。
各團隊各自做虛擬化:不同工具產生的虛擬單元無法放進同一個模擬系統,整合測試又回到需要實體硬體。

虛擬 ECU 到什麼程度才有用?

虛擬 ECU 指的是把 ECU 的軟體編譯成能在一般電腦上執行的形式。它有不同的完整度:最輕量的只包含應用軟體與模擬的基礎服務,適合早期驗證功能邏輯;較完整的會沿用實際專案的協定堆疊組態,能驗證通訊與診斷服務,也能與真實 ECU 耦合做混合驗證。判斷要做到哪一級,取決於您想在硬體到手前先確認哪些事——不是越完整越好,越完整的環境建置與維護成本也越高。

把測試往前搬,再往上搬

把測試往前搬,再往上搬
往前搬:不必等樣品

軟體編譯完成就能開始整合測試,硬體與軟體的開發並行。專案時程上最大的差別不是省下測試時間,而是問題被發現的時機提前——早期發現的設計問題,改起來的代價和後期完全不同。

在電腦上除錯,速度差很多

虛擬單元可以用一般的桌面除錯工具來查,斷點、單步與變數觀察都不受目標板除錯介面的限制。定位一個邏輯錯誤所需的時間,往往是在目標板上的幾分之一。

往上搬:伺服器與容器

測試工程可以在伺服器或容器環境中執行,同時啟動多個實例。回歸測試的範圍不再受台架數量限制,而是取決於您願意投入多少運算資源——這是一個可以用錢解決的限制,比排隊等台架好處理。

不同來源的虛擬單元要能共存

實務上一個系統的軟體來自多個團隊或供應商,虛擬化的做法也不會統一。要讓整合測試真的擺脫實體硬體,關鍵是這些不同來源的虛擬單元能被放進同一個模擬系統,共用同一條虛擬匯流排與同一個時間軸。

歐特莫夫的技術服務流程

虛擬化最容易失敗的地方是「建起來了但沒人用」。這四個階段刻意把判斷值不值得做放在第一步。

1
階段一

瓶頸確認與投資判斷

先確認您的專案瓶頸是不是「等硬體」或「台架不足」。如果不是,虛擬化的投資報酬會很有限——這一步我們會直接說不建議做,而不是先賣環境。

2
階段二

虛擬單元的等級與範圍決定

依您想提前驗證的內容決定虛擬單元要做到哪一級,以及哪些模組用模擬、哪些沿用實際組態。範圍定得太大,環境會維護不動。

3
階段三

環境建置與測試資產轉移

建置虛擬化環境,並把既有的測試案例轉移過來——重點是讓同一套測試能在虛擬與實體環境都跑,而不是維護兩份。

4
階段四

自動化執行與長期維運

把測試接進持續整合流程並在伺服器環境中並行執行,同時建立環境的版本管理方式。虛擬環境本身也會過期,維護責任要在交付時就講清楚。