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