對ECU及其軟件系統(tǒng)進行開發(fā)測試常常需要多種專業(yè)工具協(xié)同,搭建一個高效的測試環(huán)境,行業(yè)內(nèi)大部分工具雖然具有優(yōu)質(zhì)的功能與特性,但往往功能單一且因接口特殊,較難與其他工具交互。
這一問題限制了工具功能的可發(fā)揮性,為了滿足多工具集成測試系統(tǒng)的需求,需要提高接口的擴展性和多樣性。另外在HPC、區(qū)域控制器或云端軟件系統(tǒng)開發(fā)中,也需要工具對軟件系統(tǒng)進行測試,面臨如何在軟件系統(tǒng)測試層面和ECU測試復(fù)用一套工具鏈,將是后續(xù)開發(fā)測試面臨的另一個挑戰(zhàn)。
維克多推出的總線與HIL測試工具CANoe(CAN Open Environment),致力于最大程度地解放測試工具潛力,以開放兼容的多接口、多語言適配服務(wù),實現(xiàn)多樣性的工具組合,為用戶提供豐富的解決方案,近年來進一步開發(fā)功能構(gòu)建軟件系統(tǒng)測試,使得CANoe滿足SIL應(yīng)用。
據(jù)維克多官網(wǎng),2022年發(fā)布的CANoe 16.0版本新增AUTOSAR規(guī)范的LIN總線E2E功能安全應(yīng)用、vTESTstudio新增Python設(shè)計測試腳本;在網(wǎng)聯(lián)化方面新增HTTP封裝、軟件化方面運行在服務(wù)器中的CANoe4SW已支撐CI/CT自動化等諸多新功能。
SDV論壇上,維克多汽車技術(shù)(上海)有限公司商業(yè)開發(fā)經(jīng)理范科發(fā)重點介紹了軟件定義汽車的軟件需要測試的SIL和DevOps測試平臺,如何實現(xiàn)軟件虛擬化和虛擬交付,以及部署服務(wù)器版本CANoe:CANoe4SW Server Edition實現(xiàn)SIL應(yīng)用中的CI/CT/CD和并發(fā)測試。
CANoe4SW Server Edition支持部署在Windows Server、Linux Server和云端環(huán)境。同時,針對SOA系統(tǒng)開發(fā)和測試需要對相關(guān)數(shù)據(jù)進行解析,在沒有arxml數(shù)據(jù)庫情況下,CANoe自帶SOA中間件數(shù)據(jù)庫編輯功能:vCDL格式的SOA數(shù)據(jù)庫可支持SOME/IP、MQTT,并即將支持DDS。
圖片來源:維克多
敏捷開發(fā)、持續(xù)集成與測試、DevOps將替換傳統(tǒng)開發(fā)“V模型”
正如范科發(fā)所感受到的:“越來越多的傳統(tǒng)汽車工程師將變成以軟件為主的IT類工程師,大部分的工程師需要和代碼打交道,測試工程師除了熟悉CANoe,還需要熟悉AUTOSAR、Linux、Python…”。
傳統(tǒng)汽車電子開發(fā)按照“V模型”進行:從需求編譯、單元測試(MISRA靜態(tài)規(guī)則測試;動態(tài)集成測試;功能測試;邊界測試)、軟件集成測試、硬件在環(huán)測試、最終進入實車測試。
“V模型”下每一次改動都可能導(dǎo)致全局重來,可謂牽一發(fā)而動全身。
相較而言,軟件開發(fā)的流程通常如下:設(shè)計階段(Design):對軟件開發(fā)的需求進行分析設(shè)計;開發(fā)階段(Develop):完成開發(fā)所需的工程代碼,運行單元測試和其他小型測試;測試階段(Test):完成軟件大型和專項測試,如界面測試,API測試、性能和系統(tǒng)測試等;發(fā)布階段(Release):產(chǎn)品發(fā)布與交付客戶。
圖片來源:Gitchat徐超《OpenStack快速進階教程》
這一過程需要持續(xù)集成/CI、持續(xù)測試/CT、持續(xù)交付/CD、持續(xù)部署/CD。CI是敏捷開發(fā)(Agile Development)的關(guān)鍵,要求每日頻繁地將代碼集成到主干分支中,在集成前必須通過自動化驗證測試,重點在于集成的快速性,如專注敏捷開發(fā)的行業(yè)大牛Martin Fowler所言:“持續(xù)集成并不能消除Bug,而是讓它們非常容易被發(fā)現(xiàn)和改正”。
CI與CT通常緊密結(jié)合在一起,小型的單元測試會與CI同步進行,以便開發(fā)人員以盡量短的時間間隔發(fā)現(xiàn)Bug所在并進行修正,從而保證軟件項目質(zhì)量的持續(xù)改進。
總體而言,CI/CT的意義在于確保軟件的每一次改動都盡快部署到模擬產(chǎn)品環(huán)境中使用嚴(yán)格的自動化測試,確保軟件的應(yīng)用和服務(wù)能夠符合預(yù)期。
范科發(fā)提出,CI/CT所使用的工具必須全自動化進行部署和應(yīng)用,要做到“所有事情都以代碼實現(xiàn)/Everything as Code”,而自動化可以釋放DevOps模式的所有活力,所謂DevOps,顧名思義,是Dev(開發(fā)人員)+Ops(運維人員):開發(fā)運維一體化。
代碼層面的敏捷開發(fā)解決了協(xié)同開發(fā)和多機器部署開發(fā)問題,但無法解決大體量公司人員交接的矛盾,DevOps既是一種綜合協(xié)調(diào)資源的理念,也落地為平臺工具:涉及項目管理、代碼管理、CI/CT、CD、系統(tǒng)監(jiān)控等一系列流程,對“人、流程、平臺”三者進行全流程、端到端的部署與調(diào)配。
DevOps模式 圖片來源:維克多
范科發(fā)介紹,在DevOps中需要工具具備“業(yè)務(wù)流”的自動化集成,但面臨最困難的點是如何實現(xiàn)軟件虛擬化,以便實現(xiàn)虛擬測試、虛擬標(biāo)定、虛擬診斷和虛擬交付。
軟件虛擬化:運行環(huán)境、物理環(huán)境、云端軟件系統(tǒng)虛擬化
現(xiàn)如今,域控器、區(qū)域控制器和中央計算中心的大量軟件將由多方獨立并行開發(fā)集成,因此,在開發(fā)階段容易因為無硬件、或者耦合軟件由第三方開發(fā)而無法實現(xiàn)測試工作。如果將系統(tǒng)驗證統(tǒng)一放在汽車軟硬件集成之后,敏捷開發(fā)中CI/CT所需要的自動化測試設(shè)備和時間成本會極其高昂。
虛擬化測試的出現(xiàn)正是為了解決這一問題。
首先了解一下汽車開發(fā)測試的主要環(huán)節(jié):軟件在環(huán)測試(SiL)與硬件在環(huán)測試(HiL)。其中,“狹義”的SIL需要驗證模型自動生成的代碼,以及用于代碼生成的模型行為是否一致的等效性測試,無法應(yīng)用于未采用MBD(基于模型進行定義)開發(fā)的軟件系統(tǒng)。
范科發(fā)介紹道,Vector提供CANoe、CANoe4SW和CANoe4SW Server Edition提供“廣義”的SIL,側(cè)重點在于軟件系統(tǒng),提供不依賴于硬件和算法模型環(huán)境的驗證,測試過程中,被測ECU的軟件運行及測試都在單純的PC或IT環(huán)境中,即不帶有任何真實硬件ECU和其工作所需真實組件,實現(xiàn)了全虛擬化環(huán)境測試。
圖片來源:維克多
范科發(fā)強調(diào),在軟硬解耦、軟件定義汽車的趨勢下,汽車行業(yè)中將涌現(xiàn)越來越多的純軟件供應(yīng)商,虛擬測試環(huán)境的構(gòu)建會是必經(jīng)之路,軟件虛擬化將包括三個方面:運行環(huán)境虛擬化、物理環(huán)境虛擬化、與被測軟件交互的軟件系統(tǒng)虛擬化。
從以上三個部分詳細分析軟件虛擬化的意義:
首先,運行環(huán)境的虛擬化可以滿足更高的擴展性要求,系統(tǒng)性測試可以更早進行以節(jié)省成本,實現(xiàn)完全的軟硬解耦,滿足極端場景測試。
物理環(huán)境的虛擬化具體指傳感器和執(zhí)行器的接口仿真,實現(xiàn)了接口復(fù)用,避免避免測試執(zhí)行中的錯誤和無意義測試,支持CI/CT的自動化測試。
最后,構(gòu)建仿真的與被測軟件交互的軟件系統(tǒng),支持測試云端通信與云端失效的各種情況,并行測試無需額外接口,每個test instance可獨立訪問后臺數(shù)據(jù)。
圖片來源:維克多
基于SIL與DevOps測試平臺服務(wù)器版本CANoe:CANoe4SW Server Edition
基于SIL測試,維克多推出開發(fā)、測試和分析網(wǎng)絡(luò)物理系統(tǒng)軟件的測試執(zhí)行CANoe4SW Server Edition,測試對象可能是單一的軟件組成部分、子系統(tǒng)、整個分布式系統(tǒng),允許在基于Windows或Linux的服務(wù)器環(huán)境中完全自動執(zhí)行CANoe的測試工程,服務(wù)器環(huán)境并不局限于標(biāo)準(zhǔn)操作系統(tǒng),同樣適配于虛擬機系統(tǒng)以及Docker上,滿足自動化CI/CT應(yīng)用。
圖片來源:維克多
范科發(fā)強調(diào),針對AUTOSAR軟件的虛擬化提供基于vVIRTUALtarget的方案,對于非AUTOSAR軟件虛擬化提供CANoe4SW的方案。
非AUTOSAR軟件通過軟件接口適配實現(xiàn)與CANoe4SW的連接,維克多提供免費的IDE的CANoe/CANoe4SW的插件使得Visual Studio和VS Code作為免費的調(diào)試工具,支持IDE與CANoe4SW的耦合;Watch變量可以轉(zhuǎn)換至CANoe4SW中進行深入分析。
此外,使用命令行工具sil-adapter-builder可以使得C、C++、Python適配服務(wù)代碼可在持續(xù)集成中觸發(fā)自動編譯生成。
圖片來源:維克多
除了上述的虛擬化集成外,CANoe也提供更多可選擇的虛擬集成方案:利用WSL共享網(wǎng)絡(luò)實現(xiàn)與CANoe集成、建立具有相同通信功能的內(nèi)部/外部IP隧道(Tunneling)、利用CANoe內(nèi)嵌的MATLAB接口,使用FMI/FMU交互接口、基于CANoe私有的FDX實現(xiàn)交互等。
圖片來源:維克多
在新發(fā)布的16.0版本中,CANoe4SW借助AI Visualizer在可視化上取得了進展:可以將AI組件和 CANoe之間交換的圖像可視化,并通過突出輸入圖像中的重要特征來解釋AI輸出。
如何在CANoe中進行SOA仿真、分析和測試?服務(wù)與通信數(shù)據(jù)庫vCDL是關(guān)鍵
在車載以太網(wǎng)和SOME/IP(基于IP、可擴展、面向服務(wù)的中間件)興起之前,要在CANoe中仿真CAN/LIN總線:首先會在CANoe測試環(huán)境中加載數(shù)據(jù)庫實現(xiàn)總線和節(jié)點,以此添加各種系統(tǒng)變量,完成所有配置后,可在CAPL語言環(huán)境中訪問各類對象與實現(xiàn)各項功能。
從基于信號的總線式傳輸轉(zhuǎn)向基于服務(wù)的SOA架構(gòu)之后,基于服務(wù)的數(shù)據(jù)庫將是最大挑戰(zhàn),需要支持SOME/IP、DDS和MQTT等多種中間件的數(shù)據(jù)庫定義或修改。CANoe提供的vCDL(面向服務(wù)的通信數(shù)據(jù)庫),這是一種對SOA通信進行描述的語言,通過vCDL可以編寫后綴為.vCDL的Data Source來代替ARXML用在CANoe仿真中。
解決了數(shù)據(jù)庫這一首要問題,要在CANoe中實現(xiàn)基于服務(wù)的SOA通信協(xié)議仿真,就可以直接通過vCDL進行節(jié)點的設(shè)計、導(dǎo)入與修改,接著進行仿真配置和程序設(shè)計,最后進行仿真結(jié)果分析,針對vCDL中定義的數(shù)據(jù)可使用CAPL、C#和Python直接編程處理。
CANoe產(chǎn)品如其名,“Open Environment”表明CANoe軟件支持不同應(yīng)用程序選項和接口、可與各種編程語言配合使用,以開放性,兼容性,協(xié)同性著稱,通過“組合與合作”這兩個關(guān)鍵詞成為一款強大的系統(tǒng)性測試解決工具。同時配合Vector提供的自動化腳本平臺vTESTstudio,可滿足各類黑盒測試。
推此及彼,這和開源靈活的編程精神相仿,編程上手的關(guān)鍵不在于硬敲代碼,凡事都要親歷親為,而在于靈活運轉(zhuǎn)于各庫,集萬家經(jīng)典于一體,正如范科發(fā)所言:“Everything as Code”,在這個信息爆炸、技術(shù)爆炸的時代,在量才適用、各盡其才之后,敢于將不熟悉的技術(shù)領(lǐng)域交給生態(tài)也很重要。
圖片來源:維克多
(以上內(nèi)容根據(jù)維克多汽車技術(shù)(上海)有限公司商業(yè)開發(fā)經(jīng)理范科發(fā)于2022年8月3日由蓋世汽車、AUTOSAR組織聯(lián)合主辦的2022第三屆軟件定義汽車論壇暨AUTOSAR中國日發(fā)表的《供應(yīng)商是否為OEM軟件系統(tǒng)虛擬交樣做好準(zhǔn)備?》主題演講進行理解和整理。)
來源:蓋世汽車
作者:唐吉
本文地址:http://autopag.com/news/qiye/183013
以上內(nèi)容轉(zhuǎn)載自蓋世汽車,目的在于傳播更多信息,如有侵僅請聯(lián)系admin#d1ev.com(#替換成@)刪除,轉(zhuǎn)載內(nèi)容并不代表第一電動網(wǎng)(autopag.com)立場。
文中圖片源自互聯(lián)網(wǎng),如有侵權(quán)請聯(lián)系admin#d1ev.com(#替換成@)刪除。