李芳芳,余慧敏,魏冬冬,陳琦,嚴漪敏
(上海航天電子技術(shù)研究所,上海,201109)
控制計算機是控制系統(tǒng)的核心部件之一,是控制系統(tǒng)的計算中心、控制中心和通信中心,它收集各種傳感器信息,按照設(shè)定的控制算法進行快速解算,按時序向執(zhí)行機構(gòu)發(fā)出各種控制指令以完成系統(tǒng)的姿態(tài)控制等任務(wù),控制計算機的性能直接影響到武器的整體性能,其工作的可靠與否直接影響發(fā)射的精度乃至發(fā)射的成功與否。
在干擾作用下控制計算機系統(tǒng)會出現(xiàn)除輸入輸出不正常的情況外,甚至?xí)霈F(xiàn)無法檢測出信號情況,導(dǎo)致工作狀態(tài)紊亂,故在有干擾的情況下,抗干擾算法在控制計算機中起著至關(guān)重要。因此對控制計算機軟件抗干擾算法的測試是必不可少的過程,對其測試方法的研究也隨之而來。
通過labview設(shè)計平臺,定制輸入,根據(jù)目標輸入的特點繪制輸入信號,用于以后的測試。
優(yōu)點:操作簡單,易于控制;缺點:無法給出準確目標位置,無法精確定位錯誤原因。
直接在測試單元模塊前,修改功能塊的輸入值,運行軟件查看輸出值是否為期望值,類似于二方測試中的單元測試,單元測試是對軟件基本組成單元進行的測試,在C語言中單元指函數(shù)或者子過程,在類單元測試中可以對多個函數(shù)同時進行測試。
優(yōu)點:無需考慮前端程序影響,只考慮待測試功能項,提高測試效率;缺點:無法體現(xiàn)抗干擾的整個過程,插樁麻煩。
某型號控制計算機通過FPGA采樣,再經(jīng)過一系列的算法獲得脈沖的基本信息,在后續(xù)算法中通過對基本信息的處理、融合獲得有效信息來形成一系列的控制指令。為了盡可能真實地體現(xiàn)控制計算機的工作原理,從原始數(shù)據(jù)著手,通過在中斷程序、初始程序以及主函數(shù)中寫代碼,通過CCS編譯器的數(shù)據(jù)load功能,向添加的基本信息數(shù)組所在的地址,注入寫好的基本脈沖信息,根據(jù)不同的測試需求設(shè)置不同的脈沖信息,具體操作方法如下圖1-圖3所示。

圖1

圖2

圖3

圖4 抗干擾算法流程圖
數(shù)據(jù)注入未破壞軟件原有的運行路徑,只是改變了中斷脈沖采樣的結(jié)果,這點和插樁以及上面提到的“類單元測試”方法有本質(zhì)區(qū)別的。
優(yōu)點:能給出脈沖位置,精確定位錯誤位置,能真實體現(xiàn)抗干擾的整個過程;缺點:數(shù)據(jù)準備工作比較復(fù)雜,需耗費大量時間。
抗干擾算法的簡要流程圖如下圖4所示。
現(xiàn)選擇性介紹現(xiàn)有三種抗干擾測試方法在各部分功能中的應(yīng)用的優(yōu)缺點。
本功能項為驗證FPGA軟件與DSP軟件接口的正確性,采樣時序的正確性,而數(shù)據(jù)注入方法與“類單元測試”方法均是通過仿真器修改DSP軟件,對軟件的流程和算法進行測試,無法完成與外界接口的測試,故此功能項只能采用脈沖定制的方法來進行測試。
2.2.1 脈沖形狀有效性判斷
程序中根據(jù)脈沖的基本信息對脈沖進行分類,脈沖基本信息包含的脈沖幅值、寬度等,對脈沖進行識別時,各個條件下脈沖各個基本信息滿足、不滿足的情況均要考慮到。
某控制計算機抗干擾算法軟件,考慮到各個條件,共需設(shè)計40個用例,即需要設(shè)計40個脈沖,若采用數(shù)據(jù)注入的方法,可通過注入準備好的含脈沖基本信息的40個脈沖,一次執(zhí)行40個用例,通過打斷點查看全局變量的白盒測試方法,查看代碼對輸入脈沖處理的正確性。
若采用脈沖定制的方法,則需要定制脈沖多次,并且需要執(zhí)行多個用例,也可能受定制脈沖設(shè)計限制,有些等價類無法全部覆蓋。
若采用“類單元測試”方法,需要在程序中添加大量的賦值語句,不方便操作。
由此,可看出在脈沖形狀有效性判斷時采用數(shù)據(jù)注入方法最簡單有效。
2.2.2 有效脈沖判斷
滿足脈沖形狀的脈沖經(jīng)過位置判斷后才能判斷為有效脈沖,在不同階段采用不同的波門判斷方法。
若采用脈沖定制方法,通過輸入可以直接判斷出脈沖的一些基本信息,但是脈沖位置需要通過復(fù)雜的算法計算才能得出,脈沖位置與峰值時刻相關(guān),定制脈沖時并不能直觀得知脈沖位置,為有效脈沖判斷帶來難度。
若采用“類單元測試”方法,直接在位置判斷處,修改脈沖位置,不能真實反映脈沖處理過程。
采用數(shù)據(jù)注入方法,數(shù)據(jù)中包含脈沖位置信息,可以很好的體現(xiàn)脈沖識別的整個過程,缺點就是需要準備大量的數(shù)據(jù)。
綜合考慮后,采用數(shù)據(jù)注入的方法對脈沖識別功能進行測試。
中間算法輸入為經(jīng)過脈沖識別后的有效脈沖。此功能項可采用“類單元測試”方法。
若采用脈沖定制方法,一方面無法確切得知脈沖位置,另一方面,無法準確查找錯誤原因。
若采用數(shù)據(jù)注入方法,由于在不同階段,采用不同的方法對脈沖的有效性進行判斷,會增加測試的復(fù)雜度。
在保證前面脈沖識別功能項正確的前提下,可以采用“類單元測試”的方法,在中間算法前直接對有效脈沖位置、相位等參數(shù)進行賦值。這樣可以很大地提高測試效率。
階段轉(zhuǎn)換是一個連續(xù)的過程,每隔一段時間進行一次判斷,滿足條件就轉(zhuǎn)階段,不滿足條件就保持。此功能項的測試采用數(shù)據(jù)注入的方法進行測試。
若采用脈沖定制方法,一方面無法確切得知脈沖位置,另一方面,無法準確查找錯誤原因。
若采用“類單元測試”方法,無法體現(xiàn)轉(zhuǎn)階段的過程性。
現(xiàn)有的抗干擾測試方法各有優(yōu)缺點,脈沖定制方法,能很好地對脈沖采樣功能進行測試,但由于無法精確確定脈沖的位置,對后續(xù)查找錯誤原因帶來困難;“類單元測試”方法,簡單易行,但是無法對整個流程進行測試;數(shù)據(jù)注入方法,雖然查找錯誤方便,能對除脈沖采樣外的整個過程進行測試,但是數(shù)據(jù)準備工作需要花費大量的時間。
故我們針對抗干擾算法的特點以及三種測試方法的優(yōu)缺點,提出不同功能項采用不同測試方法的想法,一些無需脈沖精確位置的功能項測試,如脈沖采樣功能采用定制脈沖的測試方法,而一些比較獨立的功能項可采用“類單元測試”方法,一些需要脈沖精確位置或需體現(xiàn)處理過程的功能項測試如脈沖識別功能項、階段轉(zhuǎn)換功能項,采用數(shù)據(jù)注入的測試方法。
抗干擾算法是控制計算機軟件的核心部分,因此對抗干擾測試方法的研究至關(guān)重要,仍需要不斷進行研究總結(jié)。
參考文獻
[1] Ron Patton著,張小松,王玨,曹躍等譯.軟件測試[M].機械工業(yè)出版社 ,2006.
[2]柳純錄.軟件評測師教程[M].清華大學(xué)出版社,2005.