0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

TPT中腳本評(píng)估的使用(上) 強(qiáng)大的內(nèi)置函數(shù)庫(kù)

北匯信息POLELINK ? 2022-07-27 11:39 ? 次閱讀

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)成

poYBAGLgrh6AX1g7AACFIi4y6d0822.png

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ù)。

pYYBAGLgrkKATFtFAADlof_awD4664.png

除了基礎(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ú)疑大大提升了工具的使用范疇。

pYYBAGLgrlOAa5Z-AAAtotUsJPg948.png

使用TPT腳本進(jìn)行信號(hào)評(píng)估

使用TPT腳本進(jìn)行信號(hào)行為檢查的完整流程如下圖所示,通過(guò)這個(gè)流程我們就可以實(shí)現(xiàn)對(duì)幾乎所有測(cè)試場(chǎng)景的評(píng)估。

poYBAGLgrmqAMRFVAABwlq-8Z3M904.png

聲明評(píng)估變量

就和大部分的編程語(yǔ)言一樣,編寫(xiě)程序的第一步就是變量的聲明,TPT提供了如下表所示的多種變量的聲明:

poYBAGLgryyAc7iRAACUCXd8sZo149.png

這些評(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)一步的操作。

poYBAGLgrzmASeNKAAA1FPdEmpY945.png

同其它的編程語(yǔ)言一樣,我們可以把多個(gè)值組成列表、矩陣等數(shù)據(jù)結(jié)構(gòu),TPT提供了列表、矩陣類(lèi)型的評(píng)估變量的聲明,如下圖所示:

pYYBAGLgr0WAAe2IAABDz8D5sX0832.png

此圖中我們就聲明了一個(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ě),如下圖所示:

poYBAGLgr1mAV5uQAADsNSgFpZM279.png

我們可以用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í)域上的差值。

poYBAGLgr2iAQVIiAABJkI6mf8I662.png

poYBAGLgr3KAB-6OAADLYofW4nM052.png

篩選時(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í)間篩選的效率。

poYBAGLgr8eAU6oYAAAjvZWNLwM477.png

如上圖所示,這個(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á)式的元素。

pYYBAGLgr9-AC3WMAAC3oUNSvbY517.png

除了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ò)與否。

poYBAGLgsA6AbkXJAACPrUkF_X8201.png

還有一個(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ù)。

poYBAGLgsByAYogiAACgf5JbRT0260.png

下期預(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)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • TPT
    TPT
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    6995
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TimSort:一個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法

    排序算法呢? 本文將帶你走進(jìn) TimSort,一個(gè)在標(biāo)準(zhǔn)函數(shù)庫(kù)中廣泛使用的排序算法。 這個(gè)算法由工程師 Tim Peters 于 2001 年專(zhuān)為 Python 設(shè)計(jì),并自 Python 2.3 版本起
    的頭像 發(fā)表于 01-03 11:42 ?101次閱讀

    Mathematica 在數(shù)據(jù)分析的應(yīng)用

    數(shù)據(jù)分析是現(xiàn)代科學(xué)研究和商業(yè)決策不可或缺的一部分。隨著數(shù)據(jù)量的爆炸性增長(zhǎng),對(duì)數(shù)據(jù)分析工具的需求也在不斷增加。Mathematica,作為一種強(qiáng)大的計(jì)算軟件,以其獨(dú)特的符號(hào)計(jì)算能力和廣泛的內(nèi)置
    的頭像 發(fā)表于 12-26 15:41 ?154次閱讀

    Linux從零到精通:最簡(jiǎn)單的Shell腳本入門(mén)教程

    通過(guò)簡(jiǎn)單的命令和腳本,實(shí)現(xiàn)對(duì)系統(tǒng)的靈活控制和自動(dòng)化管理。 shell腳本前言 shell腳本入門(mén) shell變量基礎(chǔ) shell變量子串 shell數(shù)值運(yùn)算 條件表達(dá)式 流程控制語(yǔ)句 shell
    的頭像 發(fā)表于 12-05 09:56 ?592次閱讀
    Linux從零到精通:最簡(jiǎn)單的Shell<b class='flag-5'>腳本</b>入門(mén)教程

    HAL庫(kù)函數(shù)調(diào)用示例

    HAL(Hardware Abstraction Layer,硬件抽象層)庫(kù)是STM32等微控制器中常用的庫(kù),它為開(kāi)發(fā)者提供了訪問(wèn)和控制硬件設(shè)備的接口。以下是一些常用的HAL庫(kù)函數(shù)及其調(diào)用示例: 一
    的頭像 發(fā)表于 12-02 14:01 ?596次閱讀

    常用SQL函數(shù)及其用法

    SQL(Structured Query Language)是一種用于管理和操作關(guān)系數(shù)據(jù)庫(kù)的編程語(yǔ)言。SQL 提供了豐富的函數(shù)庫(kù),用于數(shù)據(jù)檢索、數(shù)據(jù)更新、數(shù)據(jù)刪除以及數(shù)據(jù)聚合等操作。以下是一些常用
    的頭像 發(fā)表于 11-19 10:18 ?375次閱讀

    針對(duì)TI汽車(chē)處理器新的SAFERTOS庫(kù)評(píng)估

    體驗(yàn)SAFERTOS針對(duì)TI 汽車(chē)處理器TDA4x/DRA8x的免費(fèi)SAFERTOS二進(jìn)制評(píng)估包。在高性能C66x DSP、強(qiáng)大的C7x DSP和ARM Cortex R5F處理器內(nèi)核探索SAFERTOS的
    的頭像 發(fā)表于 10-09 15:50 ?442次閱讀
    針對(duì)TI汽車(chē)處理器新的SAFERTOS<b class='flag-5'>庫(kù)</b><b class='flag-5'>評(píng)估</b>包

    怎么在TMDSEVM6678: 6678自帶的FFT接口和CUDA提供CUFFT函數(shù)庫(kù)選擇?

    請(qǐng)教一下gpgpu包括4個(gè)Riscv cpu和一個(gè)DPU, 沒(méi)有6678,要替換原來(lái)信號(hào)處理用的6678,該怎么在6678自帶的FFT接口和CUDA提供CUFFT函數(shù)庫(kù)選擇?
    發(fā)表于 09-27 07:20

    利用vMeasure eMobilityAnalyzer函數(shù)庫(kù)分析電機(jī)性能

    本文利用vMeasure eMobilityAnalyzer函數(shù)庫(kù)的克拉克變換功能,將三相電機(jī)定子電流或電壓轉(zhuǎn)換為兩相電流或電壓,幫助工程師更有效地、可視化地分析電機(jī)的行為并對(duì)控制算法進(jìn)行針對(duì)性的優(yōu)化,從而提高電機(jī)的性能和效率。
    的頭像 發(fā)表于 09-13 11:37 ?426次閱讀
    利用vMeasure eMobilityAnalyzer<b class='flag-5'>函數(shù)庫(kù)</b>分析電機(jī)性能

    思瑞浦發(fā)布創(chuàng)新CAN收發(fā)器TPT1462xQ

    半導(dǎo)體行業(yè)的佼佼者思瑞浦3PEAK近日宣布了一項(xiàng)重要?jiǎng)?chuàng)新成果——推出高性能CAN信號(hào)改善功能收發(fā)器TPT1462xQ。該產(chǎn)品不僅嚴(yán)格遵循ISO 11898-2:2024高速CAN規(guī)范的物理層標(biāo)準(zhǔn),更在信號(hào)質(zhì)量實(shí)現(xiàn)了質(zhì)的飛躍,為現(xiàn)代汽車(chē)電子系統(tǒng)提供了
    的頭像 發(fā)表于 07-30 17:30 ?836次閱讀

    控流程工業(yè)首款A(yù)I時(shí)序大模型TPT發(fā)布

    點(diǎn)燃AI引擎,打造工業(yè)應(yīng)用新范式? 杭州2024年6月7日?/美通社/ --?6月5日,由中控技術(shù)傾力打造的流程工業(yè)首款A(yù)I時(shí)序大模型TPT(Time-series Pre-trained
    的頭像 發(fā)表于 06-07 14:23 ?535次閱讀
    <b class='flag-5'>中</b>控流程工業(yè)首款A(yù)I時(shí)序大模型<b class='flag-5'>TPT</b>發(fā)布

    使用STM32FEBKC6T6開(kāi)發(fā)FOC,如何使用函數(shù)庫(kù)

    本人使用STM32FEBKC6T6 開(kāi)發(fā)FOC,但是,不知道如何使用她的函數(shù)庫(kù), 在ST Motor Control Workbench 4.0生成《stm32f30x_MC_it.c文件》里面
    發(fā)表于 05-15 08:22

    CMSIS的DSP數(shù)字信號(hào)處理函數(shù)庫(kù)應(yīng)用

    為了使用DSP數(shù)據(jù)庫(kù),需要在IAR開(kāi)發(fā)環(huán)境,對(duì)工程文件選項(xiàng)General的連接庫(kù)設(shè)置,選擇CMSIS DSP。在程序
    發(fā)表于 03-25 10:52 ?1557次閱讀
    CMSIS的DSP數(shù)字信號(hào)處理<b class='flag-5'>函數(shù)庫(kù)</b>應(yīng)用

    PHP用戶(hù)定義函數(shù)詳細(xì)講解

    描述 在所有編程和腳本語(yǔ)言中,函數(shù)是可以在程序重復(fù)使用的語(yǔ)句塊。在 PHP ,函數(shù)的概念與另一種語(yǔ)言(如“C”)
    的頭像 發(fā)表于 03-20 14:27 ?430次閱讀

    TC264有矩陣庫(kù)或三角函數(shù)的加速庫(kù)嗎?

    在 illd 搜索了很長(zhǎng)時(shí)間,并使用了 Google 等搜索引擎。我似乎沒(méi)有找到矩陣庫(kù)或相關(guān)的三角函數(shù)庫(kù)。不過(guò),我倒是找到了一個(gè)類(lèi)似于 atan2 的反正切加速函數(shù)
    發(fā)表于 03-05 07:47