眾所周知,CANoe對分析和仿真功能有著非常出色的支持,但一些人可能對其測試功能了解較少,其實(shí)CANoe對于測試功能的支持也是非常強(qiáng)大的。
CANoe的測試功能模塊包括Test Modules和Test Units兩大組件,并且集成了TFS(Test Feature Set)測試功能集和TSL(Test Service Library)測試服務(wù)庫來幫助用戶實(shí)現(xiàn)高效的自動化測試。對于Test Units組件需要與VECTOR旗下的另一款軟件vTESTstudio結(jié)合使用。那么CANoe是否可以不需要其他軟件的支持來實(shí)現(xiàn)自動化測試功能呢?答案顯然是肯定的,接下來就讓我們一起來看一下CANoe自帶的測試功能是如何實(shí)現(xiàn)的。
一、通過Test Modules創(chuàng)建自動化測試用例的步驟
基于Test Modules的自動化測試用例開發(fā),主要是通過編寫CAPL腳本來實(shí)現(xiàn),CANoe中自帶的測試功能函數(shù)庫可以幫助開發(fā)人員更高效地完成測試用例的開發(fā)。實(shí)現(xiàn)自動化測試腳本的開發(fā),首先了解一下如何通過Test Modules進(jìn)行自動化測試腳本的開發(fā)。
1、
2、創(chuàng)建新的測試環(huán)境
3、增加新的CAPL測試模塊
4、設(shè)置自動化測試腳本的保存路徑
二、TFS(Test Feature Set)
TFS是CANoe擴(kuò)展出來的一系列測試功能函數(shù),包括測試報告的輸出。按照功能來分,主要包括:
1、約束和條件設(shè)置函數(shù):主要用來檢測測試環(huán)境的偏差或被測ECU在測試過程中是否偏離某些參數(shù)的范圍,以確保測試在正確的測試環(huán)境中被執(zhí)行。
e.g:
TestAddCondition:用于添加一個事件對象(Event Object)或事件文本(Event Text)作為測試的條件。
2、信號測試函數(shù):主要用于檢測或操作信號、系統(tǒng)變量的數(shù)值。
e.g:
checkSignalInRange:用于檢測信號、系統(tǒng)變量是否在指定的范圍內(nèi)。
3、等待指示函數(shù):為用戶提供測試動作設(shè)置、等待測試等功能。
e.g:
(1)TestCreateTesterAction:創(chuàng)建一個測試動作;
(2)TestWaitForSignalInRange:用于等待待檢信號、系統(tǒng)變量是否滿足定義的數(shù)值范圍。
4、測試控制函數(shù):用于控制ECU斷開或連接到總線上。
e.g:
(1)TestSetEcuOffline:用于將指定的ECU從總線上斷開
(2)TestSetEcuOnline:用于將指定的ECU連接到總線上
5、故障注入函數(shù):允許用戶通過調(diào)用相關(guān)函數(shù)實(shí)現(xiàn)一些特殊的測試條件。
e.g:
TestDisableMsg:用于禁止發(fā)送某個指定的報文
6、測試判別函數(shù):用于對測試步驟、測試用例、測試模塊等作出判別和處理。
e.g:
TestCaseFail:用于將當(dāng)前測試用例的判別設(shè)為fail
7、測試架構(gòu)函數(shù):可以在測試模塊設(shè)置測試分組、測試用例及測試步驟等,并定義了生成測試報告的格式。
e.g:
(1)TestCaseDescription:用于將測試用例的描述寫入測試報告
(2) TestCaseTitle:用于設(shè)定測試用例的標(biāo)題
8、測試報告函數(shù):用于按用戶的要求產(chǎn)生測試報告,增加報告的可讀性。
e.g:
TestReportAddImage:用于在測試報告中添加圖片
三、TSL(Test Service Library)
Test Service Library(測試服務(wù)庫)是在測試功能集(TFS)基本函數(shù)的基礎(chǔ)上,提供一些特殊函數(shù),可以高效地解決某些特殊的測試問題。主要包含:
1、檢測函數(shù)(Check Descriptions)
(1)信號驗(yàn)證(Signal Evaluation):包括信號的數(shù)值有效性、周期性和穩(wěn)定性等檢測。
e.g:
ChkStart_MsgSignalValueInvalid/ ChkStart_MsgSignalValueRangeViolation:用于檢測信號/變量數(shù)值的有效性
(2)報文驗(yàn)證(Message Evaluation):包括報文丟失、周期、數(shù)據(jù)長度和錯誤幀等檢測。
e.g:
ChkStart_MsgAbsCycleTimeViolation:用于檢測周期性報文的周期是否在給定的范圍內(nèi)
(3)時間驗(yàn)證(Time Evaluation):包括連續(xù)幀及超時檢測。
e.g:
ChkStart_MsgDistViolation:用于檢測指定兩條報文之間的時間間隔
2、狀態(tài)報告函數(shù)(Status Report Functions):在執(zhí)行上面的檢測函數(shù)以后,CANoe需要使用狀態(tài)報告函數(shù)來查詢檢測結(jié)果、基本狀態(tài)信息等。狀態(tài)報告函數(shù)又分為通用的狀態(tài)報告函數(shù)和特殊類型的狀態(tài)報告函數(shù)。
e.g:
ChkQuery_NumEvents:用于返回初始化后指定檢測函數(shù)產(chǎn)生的事件次數(shù)
3、激勵函數(shù)(Stimulus Functions):激勵函數(shù)作為TSL中的重要一部分,允許用戶使用不同的數(shù)據(jù)源作為信號或系統(tǒng)變量的激勵發(fā)生器。
4、檢測控制函數(shù)(Check Control CAPL Functions):用于對于檢測事件的控制操作,如初始化、開始、停止、銷毀等。
e.g:
ChkControl_Start:用于開始或繼續(xù)檢測事件。
四、測試模塊的架構(gòu)
在了解了自動化測試腳本的開發(fā)步驟后,我們來看一下基于CANoe的自動化測試系統(tǒng)的整體架構(gòu)。
1、SUT:System Under Test被測系統(tǒng),一般是待測ECU;
2、VT System:VT system是由一系列硬件板卡組成的ECU功能測試模塊,通過連接ECU的I/O線路對ECU進(jìn)行測試;
3、Remaining bus simulation:殘余總線仿真。實(shí)際應(yīng)用中SUT只是總線中的一個ECU節(jié)點(diǎn),總線環(huán)境是復(fù)雜的,CANoe可以仿真除了SUT之外的總線環(huán)境,即殘余總線仿真。
五、CAPL腳本的封裝加密(敲黑板!)
對于CAPL腳本的開發(fā)和維護(hù)需要投入大量的人力與物力,有時可能會帶有一些公司的加密信息。但是根據(jù)項(xiàng)目需要又不得不釋放給外部使用,為了保護(hù)開發(fā)人員的勞動成果,有必要做一些保護(hù)措施。CAPL腳本的加密與保護(hù)主要有三種方式:編譯后刪除源代碼、加密后刪除源代碼和加密保護(hù)與硬件綁定。
1、編譯后刪除源代碼
(1)編輯好CAPL腳本之后,刪除相關(guān)源代碼(.can文件);
(2)在此節(jié)點(diǎn)Configuration→Node specification中將.can文件改成.cbf文件。
這種保護(hù)方式設(shè)置好之后,用戶可以使用腳本,但是無法查看(編輯)和編譯。
2、加密后刪除源代碼
(1)將CAPL源代碼進(jìn)行加密生成.canencr文件
(2)將CAPL源代碼加密后,刪除源代碼(.can文件)
加密后的源代碼不能被查看或編輯,但是加密后的源代碼可以在其他版本CANoe中對其進(jìn)行編譯。
3、加密保護(hù)與硬件綁定
在前兩種保護(hù)方式的基礎(chǔ)上,通過CAPL DLL技術(shù)添加一些加密算法與計算機(jī)本機(jī)的硬件進(jìn)行綁定(如MAC地址等)。
除了可以將CAPL腳本進(jìn)行加密,還可以將基于TFS(TSL)編寫的CAPL腳本在vTESTstudio中進(jìn)行調(diào)用。例如,在使用vTESTstudio編寫自動化測試腳本時,需要有車輛加速的過程,則可以通過編寫CAPL腳本實(shí)現(xiàn)此功能,然后在vTESTstudio中直接調(diào)用。
六、Test Unit和Test Module
1、測試層級的對比
Test Module主要測試層級由Test Group、Test Case和Test Step組成,而Test Unit主要測試層級有:Test Group、Test Sequence、Test Fixture、Test Case和Test Step。
2、Test Unit和Test Module的區(qū)別
(1)Test Unit在Test Configuration窗口定義,用戶需要根據(jù)Vector提供的軟件vTESTstudio創(chuàng)建測試用例,然后將測試用例導(dǎo)入CANoe Test Unit運(yùn)行。
(2)Test Module在 Test Setup for Test Modules中定義,Test Module支持三種不同語言類型的測試模塊:CAPL、XML和.NET。用戶可以根據(jù)自己熟悉的語言和測試需求來編寫測試模塊。
七、總結(jié)
了解了CANoe的測試功能后,是不是對CANoe有了重新的認(rèn)識,其實(shí)CANoe功能的強(qiáng)大不止于此。CANoe是德國Vector公司推出的一款總線開發(fā)環(huán)境,是網(wǎng)絡(luò)和ECU開發(fā)、測試和分析的專業(yè)工具,支持從需求分析到系統(tǒng)實(shí)現(xiàn)的整個系統(tǒng)開發(fā)過程。其豐富的功能和配置選項(xiàng)被OEM和供應(yīng)商的網(wǎng)絡(luò)設(shè)計工程師、開發(fā)工程師和測試工程師所廣泛應(yīng)用。
北匯信息作為Vector中國合作伙伴,不僅提供相應(yīng)的工具、技術(shù)支持服務(wù)以及培訓(xùn),還針對不同的應(yīng)用場景(智能座艙、新能源三電系統(tǒng)、底盤系統(tǒng)、ADAS及V2X等)提供專業(yè)的解決方案。歡迎聯(lián)系北匯信息,為您答疑解惑。
-
CANoe
+關(guān)注
關(guān)注
4文章
66瀏覽量
8665
發(fā)布評論請先 登錄
相關(guān)推薦
評論