hil測試用例怎么寫(測試用例知乎)
來源:自動駕駛仿真測試 ,作者孫工
01
基于模型的設計
基于模型的設計方法(MBD,Model Based Design)采用圖形化設計和自動化代碼生成,不同于基于手工編程和紙上規范的傳統編程方法,具有如下優點:
(1)在統一的開發測試平臺上,允許從需求分析階段就開始驗證,并做到持續不斷的驗證與測試;
(2)產品的缺陷暴露在產品開發的初級階段,開發者把主要精力放在算法和測試用例的研究上,嵌入式代碼的生成和驗證則留給計算機去自動完成;
(3)大大縮短了開發周期與降低開發成本。
基于模型的設計方法的不同階段,分別采用MIL/SIL/PIL/HIL等測試方法,有效的對嵌入式代碼進行測試和驗證。其中:
MIL,Model in the Loop:模型在環測試;
SIL,Software in the Loop:軟件在環測試;
PIL,Processor in the Loop:處理器在環測試;
HIL,Hardware in the Loop:硬件在環測試。
02
MIL、SIL、PIL和HIL介紹
假設我們現在要開發一款AEB控制器:
(1)MIL
假設我們已經在支持MBD的工具(如Simulink)中,使用圖形化的方法開發出了AEB的算法,現在想要驗證該算法是否滿足要求,那么我們需要開發一個(或是有現成的其他工具)被控對象模型,在這里例子里是一個車輛模型。將控制算法和車輛模型連接起來,形成閉環,并變換輸入和車輛模型狀態,來對控制算法的功能進行測試。如下圖所示:
(2)SIL
現在我們將Simulink中開發的算法自動生成為c代碼。但是由于代碼自動生成工具本身的原因或者代碼生成工具沒有正確設置或者其他未知原因,自動生成代碼過程可能會引入一些錯誤。所以我們需要驗證自動生成的代碼與算法模型的一致性,這就是SIL測試。SIL測試使用與MIL相同的測試用例,查看對于相同的測試用例,查看其輸出是否與MIL階段一致。為了測試的高效性,有時甚至不接入被控對象模型,而是對算法模型和生成代碼進行相同的輸入,查看輸出是否一致。如下圖所示:
(3)PIL
將自動生成的代碼編譯為目標處理器需要的形式,并下載到目標處理運行,為了防止編譯過程引入新的錯誤,此時需要進行PIL測試。PIL測試也是等效性測試,其方式與SIL類似,不同之處是編譯好的算法運行在目標處理器上,SIL測試是在算法開發環境進行的(如windows)。
(4)HIL
在開發出完整的控制器后,有時被控對象(整車)還未完成開發;有時使用真實被控對象進行測試太危險或成本高:出于這些不同的原因,采用真實控制控制器和虛擬被控對象的HIL測試常常被使用。如下圖所示:
03
總結
四種測試方法各自的特點如下表所示: