TCL指令碼語言在測試系統中的應用

Augusdi發表於2017-01-13


TCL指令碼語言在測試系統中的應用

1  引言

隨著通訊電源裝置自動化和智慧化程度的提高,電源系統可以在更為複雜的環境條件下處理各種異常情況,同時使用者對電源的技術效能也已非常重視,新的功能需求不斷提出,電源廠家也大力投入新產品的開發。首先應不斷推出效能價格比更優的新產品。其次通過改進效能、增加新功能、改變結構外觀等不斷推出新品種、新系列,全方位滿足使用者的不斷增長的需求。隨著產品系列的不斷完善,測試的工作量變得巨大,需要提高測試效率來保證產品的穩定性和可靠性。這就要求廠家搭建電源系統方便快捷的測試系統,提高電源系統的長期可靠性、電網適應性、操作和維護的方便性,減少維護費用。

測試系統的搭建的方式很多,當前主要有兩種:

一種測試系統是利用商用的測試儀器通訊介面(如GPIB或者串列埠),結合圖形化的開發軟體(如LabVIEW等);這種測試系統成本相對較高,開發週期短;適合對標準功能和效能指標進行快速高效的測試,測試操作人員主要是測試用例的選擇和測試結果的判斷,主要用在生產過程中的檢驗測試;

另一種是為了測試待測系統某些特殊功能或者效能指標,自行開發的訊號源和採集器,相應的控制軟體也是自行研發,其中測試內容和測試過程定義都是固化在控制軟體中,測試內容的增加和改變、測試過程的調整變化都需要修改控制軟體;

當前的測試系統在功能和效能方面都在不斷改進,已經在測試覆蓋率、測試效率等方面有了很大的提升,但是在擴充套件性和靈活性方面還存在一些不足之處,測試過程的步驟和資料分佈在程式中,更改或者增加測試用例都需要開發人員更改軟體,使用人員只能進行選擇和設定。測試用例的數量也是很有限,無法根據待測裝置和測試情況及時補充測試用例。

為了改善自動化測試系統的擴充套件性、靈活性和可管理性,就需要採用指令碼方式分離測試程式和測試過程、分離測試用例和測試資料的方法。

2  TCL指令碼介紹

Tcl (Tool Command Language) 語言是一種可嵌入的命令指令碼化語言 (Command Script Language)。“可嵌入”是指把很多應用有效,無縫地整合在一起;“命令”是指每一條 Tcl 語句都可以理解成命令加引數的形式。

Tcl是基於字串的解釋型命令語言,一種簡明,高效,可移植性好的程式語言。具有高層程式語言、好的可移植性和擴充套件性、支援重用、簡單易學等特點;

其中重要的擴充套件部分Tk (Tool Kit) 是基於 Tcl 的圖形程式開發工具箱,可快速地開發基於圖形介面 Windows 的程式。

TCL語言作為應用的粘合劑,適合與C整合使用,C 程式呼叫Tcl/Tk 的直譯器來執行Tcl/Tk指令碼;C函式也可以作為 Tcl/Tk 過程。

TCL指令碼語言最初就是基於整合測試系統而開發出來的,測試系統中眾多的測試儀器工具需要集中控制,按照測試用例執行流程統一排程協調。同時TCL指令碼語言的特點也很適合好的測試用例在擴充套件性、重用和管理等方面的要求

3  TCL指令碼在測試系統中應用模型

針對現在的兩種型別的測試系統,TCL指令碼的應用相應的也可以有兩種方式,對於自行開發的測試系統,只需要進行小的改動嵌入TCL指令碼,主要是實現測試系統各個元件的粘合協調並提供擴充套件能力,將測試用例部分從程式中分離出來;對於主要是測試儀器的整合型別的測試系統,則可以完全由TCL指令碼來完成測試系統的構建和管理。

下面就兩種方式分別建立相應的應用模型:

3.1  嵌入TCL指令碼的測試系統模型

在該模型中,通過測試系統管理程式中對TCL指令碼直譯器的呼叫,實現對測試過程定義和測試用例的擴充套件;在儀器控制API層與應用介面之間嵌入TCL指令碼擴充套件介面模組測試過程的呼叫和測試用例的執行,並在介面顯示測試過程和測試結果。

這種方式的測試系統通過TCL指令碼的嵌入實現測試用例的指令碼化,實現測試系統與測試用例的分離,在測試用例的擴充套件和重用方面有很大提升;同時也可以看到,測試儀器工具和裝置等的控制封裝還是整合在測試系統應用程式中,在增加或者改變測試環境時則需要修改測試系統應用程式,因此主要適用於測試環境相對穩定的測試系統中。

3.2   基於TCL指令碼的測試系統模型

為了使測試系統可用性更強,對儀器工具的控制和測試過程進行兩級封裝,首先是儀器控制命令的封裝,儀器的一項功能可能需要有多次指令和返回的互動才能完成,直接使用指令的程式設計工作量很大,對這些指令進行封裝,實現儀器控制介面API,達到每一項功能可以用一個控制函式實現;同時,將儀器的配置情況和連線情況用資料檔案的形式儲存,硬體環境的更改時只需要更新該配置資料檔案。

第二層封裝是測試過程的封裝,對於基本的測試專案,預先完成測試過程的指令碼描述,留出資料介面,測試人員在使用測試系統時可以設定相關資料,對測試過程直接呼叫完成測試用例的執行。同時測試人員可以編寫自己的測試用例,通過對儀器控制命令和基本測試過程的呼叫實現需要的測試過程。

測試系統的介面設計可以利用其中的TK擴充套件包來開發,可以快捷高效地實現,並與測試用例很好地整合。完成測試指令碼的生成、測試用例的管理、測試指令碼的執行、測試結果的儲存和測試報告的生成等功能。

該模型在應用中可以很方便地擴充套件使得測試系統更加完善,一部分是測試用例和測試資料的劃分,為了使測試用例的重用性更強,模型中把測試用例和測試資料分離,測試用例指令碼中描述測試過程和資料處理,而測試資料中包括測試輸入和期望結果等內容。另一部分是測試管理支援,測試管理工具一般都能夠很好地管理測試指令碼,通過測試管理工具管理的測試用例與TCL指令碼的關聯和呼叫執行,這隻需要在測試系統應用中留有命令列介面,就可以實現測試過程的整合管理,測試計劃、測試設計、測試執行及結果輸出、測試資料記錄分析及度量工作等都可以在一個管理平臺上完成。

4  總結

測試系統中引入TCL指令碼,使得測試系統的擴充套件性增強,功能和測試用例的增加、完善和修改不再需要升級軟體,測試人員可以根據測試需要隨時更改測試過程和測試輸入資料,使測試用例更加豐富全面;

通過儀器控制命令的封裝使測試人員更關注測試過程的設定;

測試用例和測試資料的分離使測試用例指令碼的重用性大大提升,使得測試用例設計方法得以充分應用。


相關文章