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