TPT作為一款功能強(qiáng)大的嵌入式軟件測(cè)試工具,覆蓋MiL、SiL、PiL、HiL、ViL等全階段的測(cè)試過(guò)程,將測(cè)試執(zhí)行到測(cè)試報(bào)告生成的所有步驟實(shí)現(xiàn)自動(dòng)化,大大提高我們做軟件測(cè)試的效率。TPT之所以在嵌入式測(cè)試中如此高效,少不了其腳本評(píng)估這個(gè)特色功能的支撐,今天我就帶領(lǐng)大家來(lái)了解一下TPT中腳本這個(gè)特性。
您將在本文及后續(xù)文章了解到的:
- 通過(guò)TPT腳本對(duì)任意時(shí)間的信號(hào)行為進(jìn)行檢查的方法
- TPT腳本中對(duì)信號(hào)進(jìn)行處理以及讀寫(xiě)的方法
- 通過(guò)TPT腳本對(duì)測(cè)試需求、測(cè)試報(bào)告等內(nèi)容進(jìn)行管理的方法
- TPT腳本與Python標(biāo)準(zhǔn)庫(kù)、擴(kuò)展庫(kù)、MATLAB、以及其它外部軟件的交互方案
- TPT腳本的封裝、集成以及團(tuán)隊(duì)管理方案
TPT腳本評(píng)估的語(yǔ)法構(gòu)成
TPT中的腳本由三個(gè)方面組成,分別是Python基本語(yǔ)法、TPT內(nèi)置函數(shù)以及MATLAB等其它程序的接口。
首先TPT腳本的語(yǔ)法框架是基于Python 2.7的,所以我們可以在TPT中使用Python2.7中的絕大部分語(yǔ)法特性,比如說(shuō)Python中的選擇語(yǔ)句、循環(huán)語(yǔ)句等流程控制語(yǔ)法,列表、元組、字典等數(shù)據(jù)結(jié)構(gòu),甚至我們還可以使用Python中的函數(shù)、類(lèi)等語(yǔ)法結(jié)構(gòu)。如下圖所示,我們使用上述語(yǔ)法,對(duì)信號(hào)狀態(tài)進(jìn)行判斷,同時(shí)建立了一個(gè)對(duì)信號(hào)圖像進(jìn)行設(shè)置的函數(shù)。
除了基礎(chǔ)的Python語(yǔ)法框架,TPT針對(duì)嵌入式軟件測(cè)試的特點(diǎn),提供了一套強(qiáng)大的函數(shù)庫(kù),覆蓋到測(cè)試的方方面面。從評(píng)估區(qū)間查找到信號(hào)行為檢查,從測(cè)試需求管理到測(cè)試報(bào)告設(shè)置,我們都可以通過(guò)調(diào)用一兩個(gè)函數(shù)去完成。這種用簡(jiǎn)單幾行腳本就完成一個(gè)復(fù)雜測(cè)試步驟的能力,是其它大部分測(cè)試軟件所沒(méi)有的。
除了這些特點(diǎn)之外,TPT腳本還提供了與MATLAB等其它工具的交互接口,比如,我們可以使用M語(yǔ)言進(jìn)行數(shù)據(jù)處理,這無(wú)疑大大提升了工具的使用范疇。
使用TPT腳本進(jìn)行信號(hào)評(píng)估
使用TPT腳本進(jìn)行信號(hào)行為檢查的完整流程如下圖所示,通過(guò)這個(gè)流程我們就可以實(shí)現(xiàn)對(duì)幾乎所有測(cè)試場(chǎng)景的評(píng)估。
聲明評(píng)估變量
就和大部分的編程語(yǔ)言一樣,編寫(xiě)程序的第一步就是變量的聲明,TPT提供了如下表所示的多種變量的聲明:
這些評(píng)估變量和標(biāo)準(zhǔn)的Python變量有著本質(zhì)的區(qū)別,Python變量都是和時(shí)間無(wú)關(guān)的標(biāo)量,而這些TPT變量是建立在時(shí)間域上的,它們的值隨時(shí)間變化而變化。
TPT在腳本中之所以做出這樣的區(qū)別,是為了能讓變量更好的表示信號(hào)的實(shí)際情況。如下圖所示,我們首先聲明了一個(gè)TPT評(píng)估變量,之后把一個(gè)開(kāi)關(guān)信號(hào)賦值給這個(gè)評(píng)估變量,之后方便我們對(duì)信號(hào)進(jìn)行進(jìn)一步的操作。
同其它的編程語(yǔ)言一樣,我們可以把多個(gè)值組成列表、矩陣等數(shù)據(jù)結(jié)構(gòu),TPT提供了列表、矩陣類(lèi)型的評(píng)估變量的聲明,如下圖所示:
此圖中我們就聲明了一個(gè)列表形式的評(píng)估變量,并給列表中的兩個(gè)元素賦了開(kāi)關(guān)和光強(qiáng)兩個(gè)不同類(lèi)型的信號(hào)。通過(guò)這樣的列表形式的評(píng)估變量的使用,方便了我們對(duì)多個(gè)評(píng)估變量的聲明。假如我們的項(xiàng)目工程中有多個(gè)作用類(lèi)似的信號(hào),我們不妨考慮使用列表形式的評(píng)估變量來(lái)處理它們,這樣可以使評(píng)估整潔又便利。
目標(biāo)信號(hào)獲取
我們?cè)诼暶髁薚PT評(píng)估變量之后,就可以去獲取評(píng)估中需要用到的信號(hào),比如說(shuō)待檢查信號(hào)、參考信號(hào)、輔助信號(hào)等等。這些信號(hào)的獲取方式也是十分豐富的,可以從TPT工程以及MATLAB模型中獲取,可以從各類(lèi)文件中加載,也可以從信號(hào)運(yùn)算結(jié)果中獲取。 從TPT工程中直接獲取就不用說(shuō)了,直接輸入信號(hào)名稱(chēng)就可以了,今天我們來(lái)看看后兩種方式。
TPT支持用.tptbin、.mdf、 .mat、.csv等多種格式對(duì)信號(hào)進(jìn)行讀寫(xiě),如下圖所示:
我們可以用excel或MATLAB中去定義信號(hào),然后再用TPT去讀取這些信號(hào),這無(wú)疑方便了TPT和各種工具之間的數(shù)據(jù)交互。
有時(shí)候我們想要的信號(hào)是原信號(hào)數(shù)學(xué)處理之后的結(jié)果,針對(duì)這種情況,TPT也內(nèi)置了多種信號(hào)處理的函數(shù),比如說(shuō)積分、微分、濾波、兩信號(hào)時(shí)域求差等等。通過(guò)這些信號(hào)處理函數(shù),我們可以輕松的得到各種我們想要的信號(hào),這條信號(hào)的值是兩個(gè)輸入信號(hào)在時(shí)域上的差值。
篩選時(shí)間區(qū)間
我們?cè)跈z查信號(hào)行為之前,首先要確定要檢查的時(shí)間點(diǎn),這點(diǎn)是很多測(cè)試工具的痛點(diǎn)。它們一般讓測(cè)試工程師直接指定要檢查的時(shí)間點(diǎn),但是有時(shí)候我們想要檢查的時(shí)間點(diǎn)是無(wú)法直接用數(shù)值來(lái)給定的,我們很多情況下是要檢查某種狀況下的信號(hào)行為。
TPT在時(shí)間區(qū)間的篩選上是比較強(qiáng)大的,內(nèi)置多個(gè)時(shí)間篩選函數(shù),幫助我們快速的確定一個(gè)或多個(gè)時(shí)間點(diǎn)或時(shí)間段。
這些函數(shù)中最有亮點(diǎn)的就是regexp()這個(gè)時(shí)間匹配函數(shù)。這個(gè)函數(shù)是 Regular Expression這個(gè)詞組的縮寫(xiě),看到這里大家應(yīng)該就明白了,這個(gè)函數(shù)使用的正是大名鼎鼎的正則表達(dá)式。
正則表達(dá)式的歷史可以追溯到二十世紀(jì)五十年代,它被多種系統(tǒng)以及編程語(yǔ)言廣泛使用,是上個(gè)世紀(jì)計(jì)算機(jī)領(lǐng)域的一項(xiàng)重要成就。我們經(jīng)常用正則表達(dá)式去搜索匹配一些字符串,TPT創(chuàng)新地將這種方法運(yùn)用在時(shí)間匹配上面,大大提高了我們時(shí)間篩選的效率。
如上圖所示,這個(gè)正則表達(dá)式就匹配了首先信號(hào)的值等于3,接著值選擇性的等于5,最后等于4這樣一段信號(hào)。例如34或354這樣的時(shí)間區(qū)間??梢韵氲剑偃缥覀兿胍苯尤フ疫@樣一段信號(hào)是極為困難的,但正則表達(dá)式幫助我們輕松的匹配到了,這就是正則表達(dá)式的優(yōu)勢(shì)所在。
假如您是正則表達(dá)式的高手,那么在復(fù)雜的時(shí)間區(qū)間中去找待評(píng)估的時(shí)間段對(duì)您來(lái)說(shuō)是輕而易舉,因?yàn)門(mén)PT中的正則表達(dá)式的特性和標(biāo)準(zhǔn)正則表達(dá)式的特性幾乎相同,下圖就是TPT中的正則表達(dá)式的元素。
除了regexp()這個(gè)函數(shù)外,TPT還內(nèi)置了其它許多時(shí)間匹配的函數(shù),幫助您快速地匹配時(shí)間區(qū)間。比如說(shuō)trigger()函數(shù)通過(guò)信號(hào)上升沿和下降沿去匹配時(shí)間區(qū)間,Interval()通過(guò)指定時(shí)間點(diǎn)去匹配時(shí)間區(qū)間等等,這些特性您可以在TPT腳本中去感受探索。
信號(hào)行為檢查
我們?cè)谄ヅ涞搅舜?a target="_blank">檢測(cè)的時(shí)間段之后,接著就是對(duì)這個(gè)時(shí)間段的信號(hào)行為進(jìn)行檢查,去評(píng)判信號(hào)的變化是否符合我們的預(yù)期,這也決定了被測(cè)系統(tǒng)對(duì)應(yīng)部分的功能是否滿(mǎn)足我們的需求。這個(gè)環(huán)節(jié)無(wú)疑是測(cè)試中很重要的一部分,所以TPT提供了豐富的信號(hào)檢查函數(shù),幫助我們輕松的評(píng)判信號(hào)的行為。
這些檢查函數(shù)可以去評(píng)判一個(gè)表達(dá)式的正確性,也可以去檢查一個(gè)信號(hào)是否處于某個(gè)區(qū)間,甚至可以幫助我們檢查兩個(gè)信號(hào)的相似程度。下面我們就來(lái)看幾個(gè)較為典型的例子。
我們?cè)跍y(cè)試中最簡(jiǎn)單、最常用的是checkAlways()和assertAlways()這兩個(gè)函數(shù),如下圖所示。這兩個(gè)函數(shù)會(huì)直接檢查待檢查表達(dá)式的正確性,并根據(jù)檢查結(jié)果決定與之鏈接的測(cè)試用例的通過(guò)與否。
還有一個(gè)值得一提的是hose( )函數(shù),如下圖所示,這個(gè)函數(shù)可以根據(jù)參考信號(hào)生成一個(gè)誤差帶,之后檢查目標(biāo)信號(hào)是否在誤差帶范圍之類(lèi)。這個(gè)函數(shù)的應(yīng)用場(chǎng)景也是很多的,比如我們?cè)谧鯾ack-to-back測(cè)試的時(shí)候,需要將兩次的信號(hào)進(jìn)行對(duì)比,這時(shí)候我們就可以用到這個(gè)函數(shù)。
下期預(yù)告
在本篇文章中,我們介紹了TPT腳本的語(yǔ)法構(gòu)成以及使用它進(jìn)行測(cè)試評(píng)估的方法。在下篇文章中,我們將介紹其它的擴(kuò)展部分,其中包括有:使用TPT腳本進(jìn)行測(cè)試需求管理、測(cè)試報(bào)告管理;TPT腳本與其它庫(kù)與軟件的交互與集成;TPT腳本的封裝與管理等等。相信通過(guò)下篇的閱讀,您能通過(guò)TPT輕松地解決測(cè)試中的一些相關(guān)難點(diǎn)。
PikeTec公司是全球知名的基于模型的嵌入式系統(tǒng)測(cè)試工具TPT的軟件供應(yīng)商,總部位于德國(guó)柏林,其創(chuàng)始人均在戴姆勒公司擁有十多年的軟件測(cè)試經(jīng)驗(yàn)。TPT產(chǎn)品曾被評(píng)為2005年戴姆勒最佳創(chuàng)新軟件,并在戴姆勒、大眾、奧迪、保時(shí)捷、通用等汽車(chē)整車(chē)廠及多家零部件企業(yè)(博世、大陸、海拉等)中得到廣泛應(yīng)用,如戴姆勒的多個(gè)車(chē)型的混合動(dòng)力汽車(chē)的動(dòng)力總成、電池管理控制器的測(cè)試,博世的汽油機(jī)和柴油機(jī)控制系統(tǒng)測(cè)試等。
北匯信息作為PikeTec在中國(guó)的獨(dú)家合作伙伴,致力于幫助中國(guó)客戶(hù)提升嵌入式控制系統(tǒng)的開(kāi)發(fā)效率。目前,TPT已被眾多國(guó)內(nèi)知名主機(jī)廠和零部件企業(yè)認(rèn)可,在新能源(VCU/BMS/MCU)以及ADAS等領(lǐng)域中被廣泛應(yīng)用。
-
TPT
+關(guān)注
關(guān)注
0文章
23瀏覽量
6995
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論