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