?

基于WPF的自研GPU自動化測試工具

2021-01-20 06:21聶瞾張琛齊宇心馬城城中國航空工業集團公司西安航空計算技術研究所集成電路與微系統設計航空科技重點實驗室
數碼世界 2020年12期
關鍵詞:測試工具繪圖繪制

聶瞾 張琛 齊宇心 馬城城 中國航空工業集團公司西安航空計算技術研究所/集成電路與微系統設計航空科技重點實驗室

引言

當前測試主要采用人工執行并進行比對的方式,在FPGA平臺上,先添加并編譯驗證項,然后上電執行繪圖程序,待執行完畢將結果顯示到與顯示控制單元連接的屏幕上,通過人眼將標準圖與屏幕結果進行對比??梢钥闯?,該測試過程十分繁瑣、測試操作比較復雜,測試耗時也相對較大,最為重要的是合格判據需要依賴人眼來比對,大大增加誤判、漏判的可能性。影響測試工作的效率和準確性。

針對以上問題,本文基于自動化測試思路,設計一種面向自研GPU的自動化測試工具,采用.NET Framework提供的用于Windows的現代圖形顯示系統技術WPF(windows presentation Foundation),實現包含驗證項檢測、合格判據生成、自動化測試和測試結果比對等4個模塊的測試工具。

1 測試流程

為了驗證自研GPU繪圖能力的功能正確性和性能,需要測試人員編寫針對性的測試用例,通過將GPU繪制的內容與標準結果進行比對和判斷,完成GPU測試工作。在人工驗證過程中,首先添加并編譯驗證項源代碼,編譯通過后上電FPGA測試平臺執行驗證項,隨后等待顯示控制單元將GPU繪制的結果顯示到屏幕上,最后將標準圖片與GPU在屏幕繪制的內容進行比較,若驗證通過則進行下一項,否則保存錯誤圖片并記錄錯誤現象和原因。不難發現,人工測試方法過程十分繁瑣,需要不斷往復的執行和對比結果和標準圖片,費時費力且不能有效確保人工對比的準確性,因此開發GPU自動化測試工具即為必要。

2 模塊劃分

根據測試流程可以將測試過程劃分為4個模塊,具體為驗證項檢測、合格判據生成、自動化測試和和測試結果比對。其主要內容如下:

(1)驗證項檢測負責入口函數名稱的檢測,確保所有驗證項入口函數的統一性和唯一性,調整和修改為滿足自動化測試要求的統一命名規范,保證程序運行的穩定性。

(2)合格判據生成的作用是生成與驗證項對應的標準圖片,用于測試結果的比對,通過將繪制結果與標準圖片進行判斷,確定GPU的繪圖的正確性。

(3)自動化測試是通過自動化手段,依次執行每個驗證項,完成驗證項的編譯、執行和繪圖結果的保存。為了消除驗證項之間的影響,需要在每個驗證項結束后通過軟復位方式重置FPGA測試平臺。

(4)測試結果對比是將標準圖片與GPU繪制內容進行比較,采用逐像素對比方式,設定一個誤差范圍,如果二者在某一個像素處相似度超過誤差范圍,則表明繪圖內容有誤,打印錯誤信息記錄錯誤的驗證項,否則進行下一項的比對。

3 軟件實現

使用WPF實現時,窗口主界面分為標題和內容上下2部分。標題位于窗口上側,負責軟件名稱和制作團隊的展示,剩余區域顯示內容部分,包含4個模塊。為了統一各模塊的風格和操作方式,設計中,首先使用TabControl將每個模塊作為一個TabItem來包含,每個模塊再按橫向分為3列,左側采用TreeView以樹的形式顯示驗證項,中間區域顯示可供用戶點選的配置信息,右側使用Textbox顯示執行結果和打印信息。軟件界面如圖1所示。

圖1 軟件界面

驗證項檢測模塊,用戶首先點擊上方“選擇”按鈕,選擇驗證項所在的根文件目錄,在軟件遞歸搜索后通過左側TreeView控件顯示出來。然后用戶在中間區域進行選項的配置,包括入口函數的檢測、驗證項處理(檢測、替換原文件和復制到給定位置3種方式)以及編碼格式的選擇。最后點擊“開始執行”運行檢測代碼并將結果信息輸出至右側。

合格判據生成通過將用戶選擇的驗證項與Windows環境下的OpenGL庫聯合編譯鏈接,并將繪圖結果按照驗證項名稱進行保存。用戶勾選驗證項后,自動化測試工具調用Windows下的g++編譯器編譯驗證項源代碼并將OpenGL庫作為參數傳遞,編譯完成后,使用命令提示符中的process命令執行生成的exe,最后調用保存圖片函數完成合格判據的生成。

自動化測試根據勾選的驗證項生成循環執行時所需要的驗證項結構體數組。其原理是通過數組定義驗證項信息,執行時按照數組下標依次執行每個驗證項,在每次循環結束后調用保存圖片接口和軟復位接口,直至執行完成所有驗證項。

測試結果對比作為測試的最后環節,其作用是將FPGA平臺結果和標準圖片進行對比,首先選擇自動化測試后生成的FPGA結果路徑,然后指定對應于這些驗證項的標準圖片路徑。點擊執行后,工具遍歷搜索文件并按像素對每對圖片進行判斷,最后將結果打印出來。

4 總結

本文基于自動化測試思路,設計并實現了一種基于WPF的自動化測試工具,從測試流程、模塊劃分和軟件實現3個角度進行闡述,構建了包括驗證項測試、合格判據生成、自動化測試和測試結果對比四個模塊的軟件系統。實踐結果表明,自動測試方法克服了人工測試方法低效、費時和不準確的問題,有效提高GPU測試工作的效率和準確度。

猜你喜歡
測試工具繪圖繪制
“禾下乘涼圖”繪圖人
繪制童話
作品賞析
繪制世界地圖
垂涎三尺
基于移動平臺APP測試
手車式真空斷路器回路電阻測試電流線接頭研究
淺談響應時間測試分析方法
神秘的不速之客
繪圖機器人
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合