? ? 之前我們有文章介紹過CANoe中自帶的自動化測試功能-Test Module使用的方法,相信各位工程師們已經(jīng)熟練應(yīng)用了。但是對Test Units,可能有些工程師只是在CANoe的界面中見過,沒有實際使用過。Test Units是需要與Vector旗下的另一款軟件vTESTstudio聯(lián)合使用,進(jìn)行自動化測試。 ? ? ?
vTESTstudio介紹
? ? vTESTstudio是Vector公司專為ECU自動化測試而研發(fā)的測試用例編寫軟件,可用于從模型測試到系統(tǒng)確認(rèn)的所有開發(fā)階段。它集成了多種用例編輯方法,能有效提高測試人員對測試設(shè)計的效率、具有可復(fù)用性等優(yōu)點。 ? vTESTstudio軟件在今年4月份,更新到vTESTstudio 7.0的版本,相比于之前版本,最大的新特性便是——Python File。它支持Python作為測試編程語言,Python File中包含集成編輯器,提供代碼的完整功能、語法的檢查等功能,具有調(diào)用 CAPL的功能,并且Python 接口函數(shù)(測試序列、測試用例、測試函數(shù)和函數(shù))可以在Test Table、Sequence Diagram和State Diagram中使用。 ?
圖 1 集成了多種用例編輯方法 ? ? ? ? ? ?
? 除了新增加的Python File的功能,還有許多的新特性,在這里也為各位工程師一一列舉: ? 1.vCDL文件的使用: (1)vCDL文件可以直接在vTESTstudio工程中引用,無需從CANoe(4SW)配置導(dǎo)入系統(tǒng)環(huán)境; (2)vCDL支持對分布式對象的訪問。 ?
圖 2 vCDL文件的使用
2. 可以為Sequence Diagram和State Diagram激活I(lǐng)D,便于更好的管理測試用例。
圖 3 Assign?Diagram?IDs
3.可以配合最新版的CANoe/CANoe4SW 16使用。 (1)離線模式:測試單元和測試模塊可以進(jìn)行離線分析; ?
圖 4 Offline?Mode
? (2)vTESTstudio中對測試用例描述可以在CANoe的測試界面中查看到。 ?
圖 5 查看測試用例描述 ? 4.對生成的測試報告做出了更新。 (1)增加用于檢查開始/結(jié)束事件和檢查統(tǒng)計信息的過濾器。 ?
圖 6 新過濾器
(2)增加了測試用例的查詢方式。 ?
圖 7 查詢測試用例
vTESTstudio的優(yōu)點
簡化設(shè)計用例
集成了多種用例編輯方法(列表式、圖表式、編程語言,適合不同水平和偏好…)
復(fù)用性
將測試邏輯、用例、參數(shù)分離,所有的文件都可以在版本變化后復(fù)用
圖形化的編輯方法使得測試的邏輯以及SUT的期望行為更加清晰
參數(shù)化
集成測試參數(shù)、結(jié)構(gòu)體以及仿真曲線
高測試覆蓋度(分類樹)
支持全產(chǎn)品周期測試
全局需求追蹤(從需求到報告)
自動生成可配置化的測試報告
?
圖 8 vTESTstudio視圖 ? ? ?
自動化測試流程
? ? vTESTstudio作為編輯測試用例的軟件,在vTESTstudio中編輯好我們需要的Test Case后需要編譯生成.vtuexe文件,然后加載到CANoe中的Test Units去執(zhí)行,進(jìn)行完自動化測試后,還可以在CANoe中生成測試報告。 ?
圖 9 自動化測試流程 ? ? ? ? ? ? ? ?
下面就讓我?guī)ьI(lǐng)大家把每一種編輯方式都學(xué)習(xí)一下! ? ?
Method 1? Python File
? ? Python File就是用Python語言進(jìn)行測試用例的編輯,這也是vTESTstudio 7.0獨有的一種編寫方式,本次vTESTstudio的更新,主要也是增加了Python File這個功能。增加了一種編輯方式,讓工程師們多一種選擇。
圖 10 Python編輯區(qū)域
大家肯定注意到了使用Pyton File也是需要引用組件接口的: ?
vector.canoe:包含一般部分Python API。
vector.canoe.tfs: 包含測試功能集Python API。
vector.canoe.measuremen:獲取測量的信息。
使用Python File創(chuàng)建Function
圖 11 使用Python File制作Function
圖12 使用Test Table調(diào)用Python Function
圖 13 Python編輯測試用例
? 把測試用例導(dǎo)入到Test Table才可以執(zhí)行哦!
圖 14 Python測試用例導(dǎo)入Test Table ? ? ?
Method 2? Test Table
? ? Test Table?是我們常見的也是大多數(shù)工程師正在使用的一種編輯方式,他的好處在于對于初學(xué)者很友好,上手比較簡單。 ?
圖 15 Test Table 編輯界面
在Test Table中擁有許多指令,都是可以直接用。只需要按照要求在輸入?yún)^(qū)進(jìn)行輸入,編譯成功后,在我們的CANoe中就可以進(jìn)行自動化測試了。 ?
圖 16 Test Commands 1
圖 17?Test Commands 2 ? ? ?
Method 3? Test Sequence Diagram
? ? Test Sequence Diagram?顧名思義它是一種序列圖形式的編輯方式,他的好處在于對整個測試用例而言讓人看上去很直觀,但是操作上面就要稍微比Test Table要難了。 ?
圖 18 Test Sequence Diagram編輯區(qū)
? 在Test Sequence Diagram的編輯取中集成了許多的控件,這些控件就是我們搭建序列圖的關(guān)鍵,可以讓我們靈活使用。輸入?yún)^(qū)的操作和Test Table類似,也需要去使用Test Commands中的函數(shù)去進(jìn)行輸入。 ? Test Sequence Diagram還擁有Path View,把我們序列圖方式寫出來的測試用例表格化,方便編寫人員的檢查工作。 ?
圖 19 Test Sequence Diagram中Path View ? ? ?
Method 4? State Diagram
? ? State Diagram狀態(tài)機(jī)的編輯方式,他對整個State Diagram中編寫的路徑,全部至少遍歷一次和轉(zhuǎn)移路徑的總數(shù)最少,盡可能避免已經(jīng)走過的路徑。 ?
圖 20 State Diagram編輯區(qū)
State Diagram也是有Path View界面。 ?
圖 21?State Diagram中Path View ? ? ? ?
State Diagram的路徑介紹
??從Initial元素開始,先進(jìn)入一個分支,進(jìn)而進(jìn)入更深層的分支;
? 走遍周圍所有的還沒有走過的遷移,直到a、b、c任意一個條件滿足:
? ? 到達(dá)Final元素;
? ? 到達(dá)了一個已經(jīng)進(jìn)入過的State(即形成了循環(huán));
? ? 周圍已經(jīng)沒有未經(jīng)歷過的遷移(即形成了循環(huán));
??在b和c條件下,路徑選擇將會以盡快到達(dá)Final元素為目標(biāo)執(zhí)行。
? ?
圖 22 測試用例路徑 ? 輸入?yún)^(qū)的操作和Test Table類似,也需要去使用Test Commands中的函數(shù)去進(jìn)行輸入。 ? ? ?
Method 5? CAPL File
? ? CAPL File就是用CANoe獨有的編程語言進(jìn)行測試用例的編輯,使用這種方式就要求編輯人員對CAPL編程要精通,用純CAPL的形式編輯出來導(dǎo)入到Test Table中。 ?
圖 23 CAPL編輯區(qū)域
圖 24?CAPL編輯測試用例
把測試用例導(dǎo)入到Test Table才可以執(zhí)行哦! ?
圖 25 CAPL測試用例導(dǎo)入Test Table ? ? ?
Method 6? C# File
? ? C# File就是用C#進(jìn)行測試用例的編輯,這就對C#精通的工程師比較友好,用C#的形式編輯出來導(dǎo)入到Test Table中。 ?
圖 26 C#編輯區(qū)域
圖 27 C#編輯測試用例
把測試用例導(dǎo)入到Test Table才可以執(zhí)行哦! ?
圖 28 C#測試用例導(dǎo)入Test Table ? ? ?
總? 結(jié)
? ? vTESTstudio作為一款編輯測試用例的軟件,具有高覆蓋度及復(fù)用性、變體及追蹤特性、編輯形式多樣、易于后期的維護(hù)等優(yōu)點。并且vTESTstudio與CANoe聯(lián)合使用,使得自動化測試更加的方便快捷。北匯信息作為Vector的合作伙伴,已為多家OEM/Tier1定制部件級功能測試系統(tǒng)(包括車身域控制器,及傳統(tǒng)分布式控制器功能測試開發(fā)),提供系統(tǒng)級及實車級測試驗證服務(wù),期待交流分享和合作的機(jī)會。
編輯:黃飛
?
評論
查看更多