作者 | 冰糖葡萄皮
小編 | 吃不飽
上篇我們介紹了被測對象、動(dòng)態(tài)測試和測試用例的概念,還提出了如何省時(shí)省力評估自動(dòng)生成的測試用例的話題。事實(shí)上TPT能夠?qū)崿F(xiàn)測試用例和評估解耦,為每條用例/多條用例創(chuàng)建符合其場景的測試評估:可以通過GUI界面來進(jìn)行信號對比、事件查詢、信號邊界檢查、信號序列的正確性判斷以及信號調(diào)理;也可以通過腳本語言實(shí)現(xiàn)復(fù)雜場景的評估。本文會(huì)介紹測試級別和測試環(huán)境,并帶大家進(jìn)一步了解模型動(dòng)態(tài)測試工具——TPT。
什么是測試級別
ASPICE定義了以下五個(gè)測試級別:1. 軟件單元測試(SWE.4)2. 軟件集成與集成測試(SWE.5)3. 軟件合格性測試(SWE.6)4. 系統(tǒng)集成與集成測試(SYS.4)5. 系統(tǒng)合格性測試(SYS.5)01軟件單元測試
軟件單元測試也被稱為模塊測試或功能測試。在單元測試中,測試對象是最小的軟件組件,即單元。單元經(jīng)常變化,因此單元測試必須經(jīng)常調(diào)整、補(bǔ)充并再次執(zhí)行。單元測試有兩個(gè)主要目標(biāo):
1. 早期質(zhì)量保證2. 快速檢測模型/代碼更改中的交叉影響因?yàn)檐浖蜍浖M件是永久地調(diào)整和更改的,并且后續(xù)的回歸測試也總是充滿了重復(fù)性,因此最簡單的方法是在持續(xù)集成環(huán)境中自動(dòng)化執(zhí)行單元測試。TPT可以通過與Jenkins的集成實(shí)現(xiàn)自動(dòng)化測試,提高測試效率。主要可實(shí)現(xiàn)的功能包括:基于TPT的Jenkins節(jié)點(diǎn)環(huán)境導(dǎo)入測試接口;自動(dòng)生成TPT測試框架;自動(dòng)執(zhí)行TPT工程測試用例;自動(dòng)生成測試報(bào)告。用Jenkins自動(dòng)執(zhí)行測試工程代替測試工程師手動(dòng)執(zhí)行,既能縮短測試周期,又能避免重復(fù)性勞動(dòng)。
圖1. Jenkins端TPT測試結(jié)果
02軟件集成與集成測試
單元測試之后是軟件集成測試。軟件集成是單個(gè)軟件組件的組裝,這里的重點(diǎn)是測試軟件組件之間的兼容性。集成測試通常分幾個(gè)階段進(jìn)行,根據(jù)整個(gè)軟件的結(jié)構(gòu),在幾個(gè)中間階段到幾百個(gè)中間階段之間提供集成測試。中間階段的數(shù)量和選擇最終取決于軟件體系結(jié)構(gòu)和軟件設(shè)計(jì)。元素和級別越多,集成測試的中間階段就越多。通常,集成測試是自下向上開發(fā)的,首先集成和測試幾個(gè)單元(大約3-5個(gè))。然后,所得到的單元組合與其他已經(jīng)測試過的單元組合或其他單元集成在下一個(gè)中間階段,并再次測試。這個(gè)迭代鏈一直持續(xù)到ECU的整個(gè)軟件被構(gòu)建和測試完畢。
圖2. 集成測試迭代圖
大量的集成測試一開始聽起來工作量很大,但它有一個(gè)明顯的優(yōu)勢,就是可以更快更好地發(fā)現(xiàn)錯(cuò)誤。而在TPT中,單元的測試用例能夠一定程度上復(fù)用到集成測試,為用戶減少集成測試階段的工作量。在《單元測試用例復(fù)用到集成測試?Testlet Library來助力!》一文中介紹了詳細(xì)操作方法。集成測試的另一大優(yōu)勢在于,集成測試階段發(fā)現(xiàn)的錯(cuò)誤可以更容易地定位到其原因,從而大大簡化了問題分析。經(jīng)驗(yàn)表明,大多數(shù)軟件錯(cuò)誤都是在集成測試中發(fā)現(xiàn)的。
03軟件合格性測試
集成測試完成后,軟件合格性測試緊隨其后。軟件合格性測試通常在目標(biāo)硬件上執(zhí)行。軟件合格性測試中的測試對象與集成測試中的最后一個(gè)測試對象相同:它是完全集成的軟件。然而,它們各自的目的不同:
集成測試的目的:檢查軟件組件之間的兼容性。
軟件合格性測試目的:檢查軟件是否符合要求,例如與傳感器和執(zhí)行器的兼容性。
軟件合格性測試之后是進(jìn)一步的集成測試。但是,這一次不是在軟件級別,而是在系統(tǒng)組件級別。該過程與軟件集成測試相同。ECU與一個(gè)或多個(gè)傳感器或執(zhí)行器一起測試,然后逐步添加其他組件,直到系統(tǒng)層面。
04系統(tǒng)合格性測試
最后是系統(tǒng)合格性測試。在此過程中,將所有系統(tǒng)組件集成到一個(gè)系統(tǒng)中并進(jìn)行測試。系統(tǒng)測試的重點(diǎn)是確定是否符合系統(tǒng)需求和系統(tǒng)的可交付性。
什么是測試環(huán)境
測試環(huán)境是指執(zhí)行測試所需要的環(huán)境,包括硬件、儀器、模擬器、軟件工具和其他支持要素。測試環(huán)境應(yīng)該盡可能接近真實(shí)的生產(chǎn)環(huán)境,以便更準(zhǔn)確地模擬實(shí)際環(huán)境中的操作和運(yùn)行情況,從而確保軟件在生產(chǎn)環(huán)境中的可靠性和穩(wěn)定性。在這種情況下,我們經(jīng)常會(huì)討論在環(huán)測試,例如:模型在環(huán)(Model-in-the-loop ,MiL)軟件在環(huán)(Software-in-the-loop ,SiL)處理器在環(huán)(Processor-in-the-loop ,PiL)硬件在環(huán)(Hardware-in-the-loop ,HiL)“在環(huán)”指的是測試對象與模擬生產(chǎn)環(huán)境的組件之間的一種特殊類型的交互。在“在環(huán)測試”中,環(huán)境對測試對象的狀態(tài)和計(jì)算做出反應(yīng)。TPT可以靈活適應(yīng)于MiL/SiL/PiL/HiL/ViL整個(gè)在環(huán)測試階段,并且支持各階段的開發(fā)平臺。
圖3. TPT在環(huán)測試支持平臺總覽
現(xiàn)代新能源汽車軟件的開發(fā)往往基于模型,而大多數(shù)模型是用MATLAB/Simulink/TargetLink或ASCET創(chuàng)建的。這些模型通常在開發(fā)環(huán)境中直接以單元和軟件集成的形式作為模型在環(huán)(MiL)進(jìn)行驗(yàn)證。這種類型的動(dòng)態(tài)測試可以發(fā)現(xiàn)控制策略和邏輯中的錯(cuò)誤。嵌入式系統(tǒng)的仿真是在同樣仿真的環(huán)境模型中執(zhí)行的。這種非常早期的測試的優(yōu)點(diǎn)是可以快速檢測到模型構(gòu)建中已經(jīng)存在的錯(cuò)誤,并有可能對其進(jìn)行修正。
模型在環(huán)-MiL
TPT在MiL環(huán)境能夠自動(dòng)從Simulink、TargetLink及ASCET模型獲取接口信息并生成測試框架,通過測試框架將測試用例定義的輸入信號激勵(lì)給到被測模型,再回采被測模型的輸出結(jié)果并對其進(jìn)行評估,整個(gè)過程由TPT自動(dòng)完成,無需用戶自定義。
圖4. 基于MATLAB/Simulink的TPT MiL測試過程
軟件在環(huán)-SiL
在軟件在環(huán)測試(SiL)中,測試代碼是在PC上測試的。這要么是手寫的,要么是從模型生成的。這兩種代碼的作用域是不同的。
測試模型生成的代碼:檢查代碼生成器是否正常工作。生成的代碼的功能應(yīng)該盡可能接近模型。
手寫代碼:SiL可能是第一個(gè)測試級別。與MiL一樣,目標(biāo)是在早期階段發(fā)現(xiàn)錯(cuò)誤。
對于第1種模型生成的代碼,為了驗(yàn)證生成的代碼與原模型的等效性,應(yīng)當(dāng)進(jìn)行背靠背測試。在TPT中,背靠背測試尤為便捷。以Simulink模型為例,用戶只需要點(diǎn)擊FUSION DLL就能調(diào)用Simulink生成代碼,并且一鍵生成SiL測試平臺,同時(shí)運(yùn)行MiL和SiL平臺,還能自動(dòng)實(shí)現(xiàn)對兩個(gè)平臺測試數(shù)據(jù)的對比,完成等效性驗(yàn)證。
處理器在環(huán)-PiL
在SiL中測試的代碼還不能在嵌入式ECU上執(zhí)行。為了執(zhí)行,必須為目標(biāo)處理器編譯代碼。在這個(gè)過程中生成的代碼可以通過兩種方式進(jìn)行測試:
1. 通過調(diào)試器與目標(biāo)芯片環(huán)境。
2. 在PC上模擬處理器的虛擬環(huán)境。
在這兩種情況下,都提到了處理器在環(huán)(PiL),實(shí)際上是指為目標(biāo)處理器架構(gòu)構(gòu)建的軟件測試。處理器在環(huán)測試的主要目標(biāo)是檢測編譯器錯(cuò)誤,或者在軟件組件非常接近硬件的情況下,例如驅(qū)動(dòng)程序或執(zhí)行器的控制,在早期階段檢查硬件和軟件組件的兼容性。在《PiL測試實(shí)戰(zhàn)(上)| 單元級代碼的PiL測試》一文中介紹了TPT做PiL測試的解決方案。簡單來說,TPT將測試用例數(shù)據(jù)發(fā)送到UDE,并讀取UDE從目標(biāo)板讀到的輸出信號數(shù)據(jù)進(jìn)行評估。這個(gè)過程中可以直接復(fù)用MiL/SiL環(huán)境的測試用例,單元級軟件測試可實(shí)現(xiàn)同一測試工程覆蓋MiL/SiL/PiL所有階段。
圖6. TPT+UDE PiL測試方案
硬件在環(huán)-HiL
下一個(gè)邏輯步驟是硬件測試,即在帶有外圍設(shè)備的物理ECU上完成軟件測試,重點(diǎn)是輸入和輸出、通信總線和其他接口如何實(shí)時(shí)交互。這種測試的術(shù)語是硬件在環(huán)(Hardware-in-the-Loop ,HiL)。HiL測試從ECU開始,可以實(shí)現(xiàn)到系統(tǒng)網(wǎng)絡(luò)級別。
圖7. TPT與VECTOR CANoe集成TPT支持通過XiL-API接口與HiL設(shè)備進(jìn)行集成,包括:VT System、dSPACE、NI Veristand、Concurrent iHawk、Speedgoat??梢园l(fā)送測試用例到HiL設(shè)備執(zhí)行,接受測試數(shù)據(jù)進(jìn)行評估,支持實(shí)時(shí)測試、故障注入,也可以通過CANape/INCA對ECU進(jìn)行標(biāo)定和測量。
05總結(jié)
在汽車軟件測試中,有許多術(shù)語和方法。在我們看來,掌握這些背景知識、合理運(yùn)用測試工具和測試方法,是成功實(shí)現(xiàn)嵌入式系統(tǒng)測試的關(guān)鍵。本文帶大家從工具的層面出發(fā),介紹了TPT在不同測試級別和測試環(huán)境中的作用。北匯信息之前也發(fā)布了許多測試方法、實(shí)踐經(jīng)驗(yàn)等文章,歡迎大家訂閱,并留言與我們交流!
-
測試
+關(guān)注
關(guān)注
8文章
5269瀏覽量
126599 -
TPT
+關(guān)注
關(guān)注
0文章
23瀏覽量
6980 -
汽車測試
+關(guān)注
關(guān)注
0文章
62瀏覽量
8778 -
汽車
+關(guān)注
關(guān)注
13文章
3493瀏覽量
37252
發(fā)布評論請先 登錄
相關(guān)推薦
評論