TCL指令碼語言在測試系統中的應用
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指令碼,使得測試系統的擴充套件性增強,功能和測試用例的增加、完善和修改不再需要升級軟體,測試人員可以根據測試需要隨時更改測試過程和測試輸入資料,使測試用例更加豐富全面;
通過儀器控制命令的封裝使測試人員更關注測試過程的設定;
測試用例和測試資料的分離使測試用例指令碼的重用性大大提升,使得測試用例設計方法得以充分應用。
相關文章
- BurpSuite在非Web應用測試中的應用UIWeb
- JDBC 在效能測試中的應用JDBC
- 單元測試在Unity中的應用Unity
- 驗證碼處理在自動化測試中的應用
- Lua指令碼在Redis事務中的應用實踐指令碼Redis
- Lua 指令碼在 Redis 事務中的應用實踐指令碼Redis
- 自動化測試在國際軟體測試中的應用
- 自然語言理解技術在電商行業中的應用行業
- 函數語言程式設計及其在react中的應用函數程式設計React
- nodejs在自然語言處理中的一些小應用NodeJS自然語言處理
- AutoML 在推薦系統中的應用TOML
- 使用shell指令碼在Linux中管理Java應用程式指令碼LinuxJava
- 比特幣指令碼語言比特幣指令碼
- C++ 的指令碼語言:ChaiScriptC++指令碼AI
- 條碼倉庫管理系統在食品行業中的應用行業
- Shell指令碼之for迴圈語句的應用指令碼
- 論系統測試技術及應用
- 模板與例項在系統中的應用
- 前沿探索|AI 在 API 開發測試中的應用AIAPI
- 數字證書及其在安全測試中的應用
- javascript是指令碼語言嗎JavaScript指令碼
- 指令碼語言怎麼理解指令碼
- C語言[工程專案應用]gtest測試框架編寫以及自定義測試框架C語言框架
- Shell指令碼應用 – for、while迴圈語句指令碼While
- shell指令碼中的變數及應用指令碼變數
- 自然語言處理工具包 HanLP在 Spring Boot中的應用自然語言處理HanLPSpring Boot
- PYTHON測試指令碼Python指令碼
- 在Linux中,如何進行系統效能的峰值測試?Linux
- 用C語言在Linux系統下建立守護程式(Daemon)C語言Linux
- 小乾貨~ NFS在Linux系統中的應用NFSLinux
- FMEA在安防技術系統中的應用
- TiDB 在量化派風控系統中的應用TiDB
- 為什麼自制指令碼語言是程式語言的最高境界?指令碼
- Shell指令碼語言有什麼優勢?linux系統學習步驟指令碼Linux
- 多語言應用後臺系統大家是怎麼處理的
- .NET應用系統的國際化-多語言翻譯服務
- 編譯語言、解釋語言與指令碼語言之間的區別編譯指令碼
- 為何Rust語言在區塊鏈中應用廣泛? - RedditRust區塊鏈
- 在Linux中,如何使用指令碼進行系統配置和部署?Linux指令碼