概括起來講,死鎖問題解決思路就是九個字“要么都給,要么都不給”,這就是所謂的資源申請原子性。每個測試任務(wù)一次性向軟件平臺申請所需的所有資源,軟件平臺要么釋放全部所需資源,要么什么都不返回。
通過上述方式,軟件平臺有效地管理了系統(tǒng)中測試資源的使用情況,將測試任務(wù)對儀器的無序同時訪問轉(zhuǎn)變?yōu)橛行蛟L問,從而支持了系統(tǒng)級的并行測試實現(xiàn)。
(2)多線程測試任務(wù)管理問題解決思路
我們采用了基于事件的異步模式實現(xiàn)多線程測試任務(wù)管理思路。所謂事件就是啟動測試、暫停測試、繼續(xù)測試、中止測試以及跨線程傳遞測試數(shù)據(jù)等消息。而所謂異步模式就是指主界面啟動測試線程后繼續(xù)運(yùn)行自身工作,而不必一直阻塞自身線程,還可以取消某個或所有正在執(zhí)行的測試線程。另外,客戶端還可以通過訂閱和處理相關(guān)事件實現(xiàn)運(yùn)行完畢后的數(shù)據(jù)和報表處理等工作。因此,這種模式特別適合并行測試任務(wù)的管理。
(3)并行測試任務(wù)調(diào)度規(guī)劃自動生成問題解決思路
并行測試任務(wù)調(diào)度規(guī)劃不但要自動生成,而且要保證可靠性和效率最高,這就是一個所謂的“尋優(yōu)”問題。在解決尋優(yōu)問題方面有很多全局隨機(jī)最優(yōu)化算法,比如:遺傳模擬退火算法和蟻群算法,其實都可以用來解決任務(wù)調(diào)度規(guī)劃自動生成和優(yōu)化問題。目前,我們實現(xiàn)了遺傳模擬退火算法來自動生成并行測試任務(wù)調(diào)度規(guī)劃,經(jīng)過驗證具有良好的尋優(yōu)效果。
(4)系統(tǒng)建模問題解決思路
我們采用了一種“層次化+網(wǎng)絡(luò)化”的方式進(jìn)行系統(tǒng)建模。第一層描述系統(tǒng)有哪些UUT,第二層描述測試任務(wù)的信息和任務(wù)之間的網(wǎng)狀關(guān)系。由于測試任務(wù)之間的時序相關(guān)性只會出現(xiàn)在同一UUT下,即每個UUT的測試任務(wù)是獨(dú)立于其他UUT。如果每個UUT的測試任務(wù)是相同的,在建模時只需要單獨(dú)描述一個UUT的測試任務(wù)時序關(guān)系即可,這樣就極大地減少了建模工作量。
(5)信號鏈路動態(tài)建立問題解決思路
我們采用了一種可配置化的信號鏈路信息管理方法,改變了現(xiàn)有的資源動態(tài)管理器框架,在資源配置文件中加入了一個信號鏈路信息集,該集合由信號鏈路信息條目組成,每個條目又包含了儀器名稱、儀器端口號、UUT名稱、UUT端口號、經(jīng)過的開關(guān)名稱、開關(guān)通道等信息。資源配置文件的內(nèi)容可以通過資源配置編輯器修改和編輯,當(dāng)用戶改變了系統(tǒng)的硬件連線后,只需要通過測試資源配置編輯器修改信號鏈路信息的內(nèi)容即可,根據(jù)儀器端口和UUT端口,測試任務(wù)程序可以在運(yùn)行時得到信號鏈路信息,從而動態(tài)打通所需的信號鏈路。
某型四組件并行測試系統(tǒng)照片
我們以某型T/R組件(一塊)和放大器模塊(三塊)為測試驗證對象進(jìn)行了并行測試驗證,經(jīng)過反復(fù)運(yùn)行,性能穩(wěn)定,測試效率提高了1倍多。當(dāng)然,并行測試效率提升不是一個固定的數(shù)值,它與測試任務(wù)分布、UUT數(shù)量和儀器配備等因素密切相關(guān)。