tcl指令碼語言在測試系統中的應用
1引言
隨著通訊電源裝置自動化和智慧型化程度的提高,電源系統可以在更為複雜的環境條件下處理各種異常情況,同時使用者對電源的技術效能也已非常重視,新的功能需求不斷提出,電源廠家也大力投入新產品的開發。首先應不斷推出效能**比更優的新產品。其次通過改進效能、增加新功能、改變結構外觀等不斷推出新品種、新系列,全方位滿足使用者的不斷增長的需求。隨著產品系列的不斷完善,測試的工作量變得巨大,需要提高測試效率來保證產品的穩定性和可靠性。這就要求廠家搭建電源系統方便快捷的測試系統,提高電源系統的長期可靠性、電網適應性、操作和維護的方便性,減少維護費用。
測試系統的搭建的方式很多,當前主要有兩種:
一種測試系統是利用商用的測試儀器通訊介面(如gpib或者串列埠),結合圖形化的開發軟體(如labview等);這種測試系統成本相對較高,開發周期短;適合對標準功能和效能指標進行快速高效的測試,測試操作人員主要是測試用例的選擇和測試結果的判斷,主要用在生產過程中的檢驗測試;
另一種是為了測試待測系統某些特殊功能或者效能指標,自行開發的訊號源和採集器,相應的控制軟體也是自行研發,其中測試內容和測試過程定義都是固化在控制軟體中,測試內容的增加和改變、測試過程的調整變化都需要修改控制軟體;
當前的測試系統在功能和效能方面都在不斷改進,已經在測試覆蓋率、測試效率等方面有了很大的提公升,但是在擴充套件性和靈活性方面還存在一些不足之處,測試過程的步驟和資料分布在程式中,更改或者增加測試用例都需要開發人員更改軟體,使用人員只能進行選擇和設定。測試用例的數量也是很有限,無法根據待測裝置和測試情況及時補充測試用例。
為了改善自動化測試系統的擴充套件性、靈活性和可管理性,就需要採用指令碼方式分離測試程式和測試過程、分離測試用例和測試資料的方法。
2tcl指令碼介紹
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指令碼語言的特點也很適合好的測試用例在擴充套件性、重用和管理等方面的要求。
3tcl指令碼在測試系統中應用模型
針對現在的兩種型別的測試系統,tcl指令碼的應用相應的也可以有兩種方式,對於自行開發的測試系統,只需要進行小的改動嵌入tcl指令碼,主要是實現測試系統各個元件的粘合協調並提供擴充套件能力,將測試用例部分從程式中分離出來;對於主要是測試儀器的整合型別的測試系統,則可以完全由tcl指令碼來完成測試系統的構建和管理。
下面就兩種方式分別建立相應的應用模型:
3.1嵌入tcl指令碼的測試系統模型
在該模型中,通過測試系統管理程式中對tcl指令碼直譯器的呼叫,實現對測試過程定義和測試用例的擴充套件;在儀器控制api層與應用介面之間嵌入tcl指令碼擴充套件介面模組測試過程的呼叫和測試用例的執行,並在介面顯示測試過程和測試結果。
這種方式的測試系統通過tcl指令碼的嵌入實現測試用例的指令碼化,實現測試系統與測試用例的分離,在測試用例的擴充套件和重用方面有很大提公升;同時也可以看到,測試儀器工具和裝置等的控制封裝還是整合在測試系統應用程式中,在增加或者改變測試環境時則需要修改測試系統應用程式,因此主要適用於測試環境相對穩定的測試系統中。
3.2基於tcl指令碼的測試系統模型
為了使測試系統可用性更強,對儀器工具的控制和測試過程進行兩級封裝,首先是儀器控制命令的封裝,儀器的一項功能可能需要有多次指令和返回的互動才能完成,直接使用指令的程式設計工作量很大,對這些指令進行封裝,實現儀器控制介面api,達到每一項功能可以用乙個控制函式實現;同時,將儀器的配置情況和連線情況用資料檔案的形式儲存,硬體環境的更改時只需要更新該配置資料檔案。
第二層封裝是測試過程的封裝,對於基本的測試專案,預先完成測試過程的指令碼描述,留出資料介面,測試人員在使用測試系統時可以設定相關資料,對測試過程直接呼叫完成測試用例的執行。同時測試人員可以編寫自己的測試用例,通過對儀器控制命令和基本測試過程的呼叫實現需要的測試過程。
測試系統的介面設計可以利用其中的tk擴充套件包來開發,可以快捷高效地實現,並與測試用例很好地整合。完成測試指令碼的生成、測試用例的管理、測試指令碼的執行、測試結果的儲存和測試報告的生成等功能。
該模型在應用中可以很方便地擴充套件使得測試系統更加完善,一部分是測試用例和測試資料的劃分,為了使測試用例的重用性更強,模型中把測試用例和測試資料分離,測試用例指令碼中描述測試過程和資料處理,而測試資料中包括測試輸入和期望結果等內容。另一部分是測試管理支援,測試管理工具一般都能夠很好地管理測試指令碼,通過測試管理工具管理的測試用例與tcl指令碼的關聯和呼叫執行,這只需要在測試系統應用中留有命令列介面,就可以實現測試過程的整合管理,測試計畫、測試設計、測試執行及結果輸出、測試資料記錄分析及度量工作等都可以在乙個管理平台上完成。
4總結測試系統中引入tcl指令碼,使得測試系統的擴充套件性增強,功能和測試用例的增加、完善和修改不再需要公升級軟體,測試人員可以根據測試需要隨時更改測試過程和測試輸入資料,使測試用例更加豐富全面;
通過儀器控制命令的封裝使測試人員更關注測試過程的設定;
測試用例和測試資料的分離使測試用例指令碼的重用性大大提公升,使得測試用例設計方法得以充分應用。
自動化測試 TCL指令碼語言
tcl 是一種 指令碼語言。最早稱為 工具命令語言 tool command language 但是目前已經不是這個含義,不過我們仍然稱呼它為tcl。由john ousterhout建立。tcl很好學,功能很強大。tcl經常被用於 快速原型開發,指令碼程式設計,gui和測試等方面。tcl語言是乙個解...
在Linux系統下安裝Perl指令碼語言
linux 和 perl 都屬於自由軟體,將二者結合真是妙不可言。遵循以下步驟一般就可安裝好 perl perl 就能在 linux 下歡唱。1 http www.cpan.org src readme.html取得最新版本的 perl,當前版本為 5.6.0,即 stable.tar.gz。2 解...
Perl指令碼語言在Linux系統下的安裝步驟
本文向大家簡單介紹一下如何在linux系統下安裝perl指令碼語言,linux和perl都屬於自由軟體,將二者結合真是妙不可言。ad 本文和大家重點討論一下在linux系統下安裝perl指令碼語言,linux和perl都屬於自由軟體,將二者結合真是妙不可言。遵循以下步驟一般就可安裝好perl指令碼語...