洛陽電光設備研究所 河南 洛陽 471000
隨著測試技術的發展,虛擬儀器技術已越來越廣泛的應用在科研生產實踐中。以PCI總線、VXI總線、PXI總線為代表的虛擬儀器以其兼容性好、組態靈活、可擴展性強和數據傳輸速率快等優點,為多通道、高精度的測量設備的設計提供了技術保證,已成為儀器總線和綜合測試系統優秀的開發平臺之一,且在國防、工業、航空以及通信等領域得到廣泛的應用。
但是,傳統的自動測試系統往往圍繞具體對象實現的功能來進行測試程序設計,這樣造成測試軟件對測試對象有著很強的針對性,后者微小的差異都會影響軟件的結構和代碼,使得軟件的通用性很差。本文針對此點進行深入的軟件研究,采用與傳統編程方法不同的設計思想、軟件結構,使得軟件具有很好的通用性,從而保護測試系統的智力投資。
通用測試程序,是在軟件設計中通過引入數據庫實現對輸入、輸出信號的管理。開發人員只需要對產品進行硬件分析,完成檢測流程和適配器設計,并將輸入及輸出信號的類型、對應的插座和插針、取值大小等信息填入規定的表格中,程序將自動對表格進行處理,實現對產品自動測試,不需要開發人員針對每個產品編寫測試軟件。
在傳統的測試程序開發過程中,首先需要對產品進行分析,寫出詳細的測試流程,然后,程序員根據測試流程編寫代碼,再經過編譯、調試、修改等步驟,最終完成測試程序。這樣的程序當然可以完成對某個被測對象的測試,但是,由于程序編寫時是針對具體的測試流程,因此程序也具有局限性。當更換了被測對象后,由于測試流程的不同,導致必須重新編寫新的測試程序,雖然可能部分代碼可以繼續使用,但總體來說,通常程序需要進行大幅的更改并重新編譯、調試。
通過對傳統的編寫測試軟件方法的認真分析,不難發現,用軟件完成某個測試任務主要包含了兩個條件:正確的資源調用代碼、適當的資源調用順序。對產品的測試,簡單來說,就是向產品提供激勵信號,然后測量其輸出信號的一個過程。程序員根據詳細的測試流程,按照適當的順序排列資源調用代碼,操作設備為產品提供激勵信號并進行測量,這樣就完成了自動測試的過程[1]。
通用化測試程序就是要使得測試軟件代碼完全實現重用性,實現軟件的通用性,其關鍵在于要將軟件代碼與具體的測試流程相解耦,軟件設計與代碼編寫時應是針對測試資源(即測試設備中的所有資源),可以稱之為面向設備的編程方法。這種編程方法的核心理念包括兩個方面:
(1)對測試資源進行詳細的分析,針對每一種資源的調用編寫代碼,使得程序中涵蓋了全面的資源調用代碼,以便于對設備進行任何操作,通過數據影射,將測試任務影射成信號激勵/測量的需求,這個虛擬資源需求通過接口內部服務機制的解釋和定位轉換成真實資源,再驅動儀器完成真實服務,這樣,程序代碼就具有了通用性。
(2)要完成對一個產品的測試,具有針對該產品的測試流程是必不可少的,因此,程序需要具有對外接口,通過這個接口,程序可以讀入具體的測試流程,按照這個流程的順序來調用程序中的資源代碼,使得設備按此順序進行動作,從而完成對某一產品的自動測試過程[2]。
通用測試程序的編程方法中,可以通過引入數據庫或數據表格來對軟件代碼和測試流程進行解耦。將具體的測試流程規范化,使其成為一個(或多個)有標準格式的數據庫或表格文件,也就是說,任何具體產品的測試流程都需要寫成統一格式的文件,這個文件就是測試軟件與具體產品之間的接口文件。在這個文件中,測試信息以一種中立的、與具體實現無關的格式進行交換,程序讀入這個文件后,依次讀取文件中的記錄,記錄的順序是根據產品測試的流程編寫的,程序每讀取一條記錄,就按照記錄中的信息來選擇虛擬儀器模塊及通道使其進行相應的動作,為產品提供一個激勵或者進行一次測量,當程序依次讀取了所有的記錄并控制設備完成了動作后,就完成了整個測試[3]。
目前測試領域行業中廣泛應用了虛擬儀器測試系統,本方法是在此基礎上,通過以標準表格的形式將測試代碼與具體的測試流程相剝離,從而實現了測試程序的通用化。這將使得檢測設備基本框架相同或相近的情況下,開發人員將精力集中在對產品的分析上,僅針對產品編寫測試流程表格文件,不再需要重新編寫軟件代碼,大大縮短了研發周期。