天下武功,唯快不破。在保證安全的基礎上盡可能提高測試效率也是T/R組件測試領域不變的追求和目標。當然,提高測試效率的方法有很多,例如提高測試儀器儀表的性能(提高掃描速度和增加測試功能等)、簡化連接和校準過程以及優化測試程序和工藝等。還有沒有其它辦法呢?那就是并行測試,這也是當今自動測試技術領域發展的重要趨勢和方向之一。
所謂并行測試就是充分利用測試儀器和測試通道等資源,按照一定的調度規劃同時執行多個測試任務,從而提高測試效率。目前T/R組件測試大多采用串行順序測試的模式,即執行完一個測試任務,再啟動另一個測試任務,直至完成測試。這相當于要求幾個人累計完成1千米的跑步,現在采用的是接力跑模式,為什么不能根據每個人的能力一起跑呢?豈不是更快?多T/R組件并行測試模式就是在同一時刻,不同的T/R組件以多線程的方式執行不同的測試任務,測試任務之間所需的儀器和通道并不沖突。
1、并行測試難點
不同于數字和低頻測試儀器,當今射頻微波測試儀器自身的測試通道還比較少,一般也只能完成某一類性能參數的測試。在此基礎上,多T/R組件并行測試實現還是一個比較棘手的問題。概況來講,主要包括如下幾個方面的問題:
(1)測試資源競爭和死鎖問題
測試資源競爭問題:在執行過程中多個測試任務需要同時訪問一個資源所引起的問題,例如都需要矢量網絡分析儀怎么處理?
死鎖問題:多個測試任務互相等待對方釋放自己所需資源,從而導致這些測試都無法繼續運行的問題。
(2)多線程測試任務管理問題
并行測試是多線程執行模式,這就出現了如何對這些測試任務進行全生命周期有效管理的問題。如何按照次序啟動測試?如何暫停測試?如何繼續測試?如何中止測試?如何同步測試?如何將進度跨線程報告給主界面線程?這就好比自己干管好自己就行了,但是一個團隊干活就有團隊管理和建設的問題。
(3)并行測試任務調度規劃生成問題
當然,可以依靠人工拍腦袋的方式生成并行測試任務調度規劃,但是,測試任務發生變化怎么辦?測試對象發生變化怎么辦?如果都靠拍腦袋不是不行,但是很難,這就產生了并行測試任務調度規劃自動生成這一難題。同時,還需要解決相關的測試效率選優算法和評價體系等問題。
(4)系統建模問題
并行測試系統具有復雜的網狀特征,系統建模除了要描述包含哪些UUT、哪些測試任務、測試任務和儀器之間的耦合關系等之外,更重要的是要描述清楚并行測試任務之間的控制相關性和時序相關性。
(5)信號鏈路動態建立問題
再好的車也得跑在平坦舒適的路上方能彰顯其性能的卓越和不凡。并行測試不但要提供“路”,而且需要提供“多車道路”,更需要根據車型提供“個性化道路”。由于并行任務調度規劃并不是固定的,在測試運行之前,軟件無法確定測試任務的執行次序,從而也就無法確定測試通道的打通次序。那么,只能在測試任務運行時,根據UUT端口和被測參數來動態建立信號鏈路,并打通相應的通道。
2、并行測試解決思路
并行測試技術是對傳統串行測試技術的突破和超越,思維方式與解決途徑都發生了較大的變革,在大幅度提高測試效率的同時也帶來了較多的挑戰,下面逐一介紹解決思路。
(1)測試資源競爭和死鎖問題解決思路
概括起來講,測試資源競爭問題解決思路就是八個字“用時申請,用后歸還”。原有的軟件平臺對于測試資源的管理相當于把測試資源放到一個沒有鎖的房間里,大家也知道這房間里有什么資源,誰想用就可以拿走,不還也沒人管,其它需要資源的人干著急。而在并行測試軟件平臺里,這個房間有了變化,不但上了鎖,而且增加了一名管理員,給誰用,什么時候給?給什么資源?都是這名管理員決定的,而且用完必須歸還,不還強制拿回來,這當然就可以有效地管理系統中各儀器的運行狀態,使得多個測試任務可以有序的訪問儀器,避免同時訪問同一儀器,從而造成儀器的狀態紊亂。