在上篇中,我們講述了TPT腳本的一些基礎(chǔ)操作,例如時間區(qū)間篩選、測試評估等等。但是僅僅掌握這些基礎(chǔ)的操作是無法滿足我們在復(fù)雜測試項目中的需求的,在本文中您將了解到TPT腳本的一些高級特性,例如測試管理、腳本封裝、與其它軟件交互等等。相信在閱讀本文之后,您將在TPT腳本使用方面更上一層樓。
文章閱讀導(dǎo)圖:
使用腳本對需求和報告進(jìn)行管理
使用腳本進(jìn)行測試需求管理
在軟件測試項目中,測試需求是我們工作的軸心。測試需求不僅是我們編寫測試用例與評估的重要依據(jù),同時也是測試工作完成程度的一項重要指標(biāo),那么開展測試需求管理工作就是十分重要的了。TPT在腳本中提供了許多強(qiáng)大的函數(shù)接口幫助我們進(jìn)行測試需求的管理,下圖就列舉了測試需求管理函數(shù)庫中的一個常用模塊——REQUIREMENTS模塊的功能。
我們可以通過checked()對測試需求是否滿足進(jìn)行檢查,檢查的結(jié)果會反映到測試結(jié)果之中。
之后,我們也可以使用report ()函數(shù)將我們的需求滿足結(jié)果反饋到我們的報告之中。
使用腳本進(jìn)行測試報告管理
測試報告基本是我們測試工作的最后的一個環(huán)節(jié),也是極為重要的一個環(huán)節(jié)。一份合理美觀的測試報告可以充分的體現(xiàn)測試流程和測試結(jié)果,可以將關(guān)鍵的測試數(shù)據(jù)保存下來。
TPT腳本中提供了充分的接口,讓我們按自己的需求將報告定制化。例如我們可以在報告的指定位置添加圖像、文章段落、各類信號圖像、信號表格等模塊,下圖腳本就展示了其中一些函數(shù)的用法以及執(zhí)行結(jié)果。
同時在TPT16中,我們還可以為整個報告添加一些測試總述信息。注意這樣的腳本需要在測試執(zhí)行界面的Global Assessment處編寫。如下圖所示,我們通過腳本的編寫,在測試報告的Over View處添加了圖像與段落。
使用TPT腳本與外界程序進(jìn)行交互
TPT腳本中提供了較為豐富的與外界程序進(jìn)行交互的接口,我們可以利用這些接口對TPT的功能進(jìn)行擴(kuò)展,去實現(xiàn)我們在實際項目中想要達(dá)到的效果。
在TPT腳本中調(diào)用Python標(biāo)準(zhǔn)庫
我們在TPT腳本中可以使用import;from…import…;from…import *等語句導(dǎo)入Python中的標(biāo)準(zhǔn)函數(shù)庫。由于TPT的Python版本是2.7,所以我們只能使用Python2.7中的標(biāo)準(zhǔn)庫,而其它一些擴(kuò)展庫需要通過下文(與擴(kuò)張庫進(jìn)行交互部分)中介紹的方法導(dǎo)入。
在TPT腳本中調(diào)用外部Python腳本
我們可以通過TPT腳本去調(diào)用外部的Python腳本,這樣可以對我們原有的Python腳本進(jìn)行復(fù)用,實現(xiàn)編寫一個腳本在多個評估中使用的效果。
如圖所示,我們使用include ()這個函數(shù)調(diào)用了外部的一個腳本,這個腳本在控制臺上打印輸出一段文字。這個函數(shù)類似于C和C++中#include這個語法特性,都起到了加載外部文件的作用。
值得注意的是,我們在編寫外部腳本的時候要注意其語法特性要滿足TPT內(nèi)部的語法特性,不能使用TPT中不包含的語法特性。
通過TPT腳本與MATLAB進(jìn)行交互
TPT提供了與MATLAB進(jìn)行交互的接口,我們可以通過runMScript()函數(shù)在MATLAB工作區(qū)寫入或者讀取變量,也可以去執(zhí)行M語言程序,在MATLAB中對信號進(jìn)行計算與處理,或者針對不同的測試用例對模型本身進(jìn)行改變。
下圖是這個函數(shù)的使用示例。首先我們在MATLAB工作區(qū)創(chuàng)建了IN和OUT兩個變量,IN是TPT寫入MATLAB的變量,OUT是TPT從MATLAB讀取的變量。同時TPT把這個函數(shù)的第一個參數(shù)的內(nèi)容作為M腳本在MATLAB中執(zhí)行。這個M腳本的執(zhí)行結(jié)果是賦予OUT信號以IN信號的時域與值域的數(shù)值,之后將模型中的AUTO_MODE參數(shù)的值置為3。
除此之外,我們還可以用TPT腳本中的setMatlabSettings()函數(shù)對MATLAB平臺進(jìn)行設(shè)置,讓測試環(huán)境達(dá)到我們的要求。
通過TPT腳本與其它應(yīng)用程序或Python擴(kuò)展庫進(jìn)行交互
我們之前在腳本中調(diào)用了Python2.7的標(biāo)準(zhǔn)庫,那如何在TPT腳本中使用例如numpy、pandas、matplotlib這些較為常用的擴(kuò)展庫呢?TPT的execute()這個函數(shù)為我們提供了實現(xiàn)的可能。
我們調(diào)用execute()這個函數(shù),TPT就會自動創(chuàng)建一個我們指定的進(jìn)程,同時TPT解釋器會在execute()函數(shù)調(diào)用語句處暫停,等待外部進(jìn)程的結(jié)束。那么我們就可以通過共享內(nèi)存的方法,為TPT和外部進(jìn)程創(chuàng)建一個共同的數(shù)據(jù)緩存區(qū),通過這個緩存區(qū)實現(xiàn)TPT和外部進(jìn)程的數(shù)據(jù)交互。外部進(jìn)程結(jié)束后,我們的TPT腳本可以根據(jù)其返回的結(jié)果來進(jìn)行下一步的操作,原理如下圖所示。
整個腳本的執(zhí)行流程是TPT內(nèi)部進(jìn)程和外部進(jìn)程交叉進(jìn)行的,由于交互的速度很快,所以可以近似于是TPT內(nèi)部庫的調(diào)用,整個過程類似于“并發(fā)”這種調(diào)度方式。
TPT腳本的封裝與管理
TPT提供了對腳本進(jìn)行封裝和管理的功能。在一個項目中,有時候我們會有一些重復(fù)的計算步驟或者程序流程,這時候我們可以把這些計算步驟封裝成函數(shù),需要時我們可以對函數(shù)進(jìn)行調(diào)用,簡潔了代碼提高了效率。
同樣的,我們在項目中可能會有一些功能相似或者相互補(bǔ)充的函數(shù),這時候我們可以把這些函數(shù)進(jìn)一步封裝,把同類型的函數(shù)封裝成外部函數(shù)庫,我們在TPT中可以把這些函數(shù)庫加載進(jìn)來,方便我們的調(diào)用,加速整個項目流程。
舉個簡單的例子,如下圖所示,我們把繪圖和繪表這些固定的腳本步驟封裝成了兩個函數(shù)。通過這兩個函數(shù)的調(diào)用,我們可以輕而易舉的添加多個信號的圖像或者表格。
同樣的,我們假如定義了多個與圖形繪制有關(guān)的函數(shù),我們可以進(jìn)一步的把圖形繪制的函數(shù)歸類成一個函數(shù)庫,步驟如下圖所示。這時候我們就可以在多個項目中去使用這個函數(shù)庫,或者分享給團(tuán)隊成員,提高了代碼的復(fù)用性。
我們建立自己的外部函數(shù)庫也方便我們對工程的管理。把一些固定的步驟標(biāo)準(zhǔn)化,無疑提高了整個團(tuán)隊代碼的規(guī)范性。同時,我們還可以通過Git或SVN對團(tuán)隊的腳本庫進(jìn)行管理與共享,提高了團(tuán)隊協(xié)作性。
毫無疑問,我們需要對TPT腳本進(jìn)行一定的管理,這在大型測試項目中尤為重要,有管理的腳本比沒有管理的腳本要優(yōu)越很多。
關(guān)于PikeTec和北匯信息
PikeTec公司是全球知名的基于模型的嵌入式系統(tǒng)測試工具TPT的軟件供應(yīng)商,總部位于德國柏林,其創(chuàng)始人均在戴姆勒公司擁有十多年的軟件測試經(jīng)驗。TPT產(chǎn)品曾被評為2005年戴姆勒最佳創(chuàng)新軟件,并在戴姆勒、大眾、奧迪、保時捷、通用等汽車整車廠及多家零部件企業(yè)(博世、大陸、海拉等)中得到廣泛應(yīng)用,如戴姆勒的多個車型的混合動力汽車的動力總成、電池管理控制器的測試,博世的汽油機(jī)和柴油機(jī)控制系統(tǒng)測試等。
北匯信息作為PikeTec在中國的獨(dú)家合作伙伴,致力于幫助中國客戶提升嵌入式控制系統(tǒng)的開發(fā)效率。目前,TPT已被眾多國內(nèi)知名主機(jī)廠和零部件企業(yè)認(rèn)可,在新能源(VCU/BMS/MCU)以及ADAS等領(lǐng)域中被廣泛應(yīng)用。
-
TPT
+關(guān)注
關(guān)注
0文章
23瀏覽量
6949
發(fā)布評論請先 登錄
相關(guān)推薦
評論