李艷艷
摘要 在分析軟件單元測試問題的基礎上,本文對基于LDRATes tbed的DSP軟件單元測試方法展開了分析,介紹了相應的測試工具和測試過程,為關注這一話題的人們提供參考。
【關鍵詞】LDRA Testbed DSP 軟件單元測試
1 軟件單元測試概述
所謂的軟件單元測試,就是對軟件基本組成單元進行測試,測試對象為模塊,即軟件設計中的最小單位,擁有明確的功能和唯一標識,可以實現特定算法,獲得局部數據,能與其他模塊和外界相互獲取數據,被其他模塊調用。在單元測試方面,需要采用靜態測試、動態測試、單元輸入輸出測試等測試,能夠實現多個模塊的同時測試,并完成錯誤定位。在實際測試時,需要制定測試計劃和創建相應環境,完成最小運行調度系統的構造,以便對上一級模塊進行模擬,同時對單元函數接口和生成測試數據的過程進行模擬。通過將數據傳輸給被測模塊,按相關結果進行“主程序”打印,可以確定軟件單元功能、接口是否符合設計要求,能否進行輸入和運行中錯誤的正確處理。通過對測試中發現的問題進行修改,則能更好的完成軟件單元設計。
2 基于LDRA Testbed的DSP軟件單元測試
2.1 測試工具
在對DSP軟件單元進行測試時,需要采用LDRA Testbed這種測試工具。相較于Logiscope、AsmTester等工具,LDRA Testbed不僅可用于實現軟件單元靜態測試,同時也能提供動態測試環境,滿足單元測試在不同階段的測試需求。在LDRA Testbed中,包含各種測試模塊。利用源代碼的語法分析功能,LDRA Testbed可進行靜態測試分析,如編碼規則驗證、程序質量評估等。利用其動態測試模塊,可以對軟件單元進行運行,并完成運行狀態記錄,得到測試覆蓋率報告。而在該模塊中,包含修正條件、語句覆蓋等多種可度量覆蓋標準,可以確保測試覆蓋率達到規定要求。采用LDRA Testbed的單元測試模塊,可以利用TBrun子程序對DSP軟件單元進行測試,完成被測單元輸入、輸出數據流的分析,獲得接口函數調用、參數、返回值等各種細節信息,實現單元測試結果的自動化分析。利用該模塊,在命令行界面或圖形界面上,可以完成測試序列的自動創建,通過黑盒、白盒等測試查找未被覆蓋的單元,提出相應的改進方案。針對測試過程,采用該模塊可以完成代碼變更自動偵測,并對數據結果進行存儲,完成代碼回歸測試和分析,因此可以使測試效率和有效性得到保證。
2.2 測試過程
2.21 靜態測試
在DSP軟件單元測試中,首先需要完成靜態測試。具體來講,就是先通過靜態分析,利用LDRA Testbed生成靜態函數調用結果,反映函數調用層次。在結果中,可以清楚觀察到函數與函數間的調用關系,同時也能結合各函數扇入/扇出數對關系的復雜度進行反映。根據用戶設定的編碼規則集,可分析單元源代碼,確定DSP軟件中是否存在違反規則的單元。采用LDRA Testbed對代碼清晰性、可測試性、復雜度等進行分析,可以得到相應的質量和度量報告。在實際測試過程中,為方便進行違反規則單元的辨識,可以自己規定報告編制規則,也可以采用國軍標5369等行業認可標準,以便對DSP軟件單元進行快速修正,促使軟件開發時間得到節省。
2.2.2 動態測試
針對DSP軟件,在單元動態測試階段需要完成相應動態測試環境配置。首先,需要對Testbed編譯器進行修改,進行TiCodeComposer編譯器的選擇。其次,需進行仿真模擬器的調用,進行CCStudio的正確使用。在DSP軟件單元測試中,采用LDRA Testbed無法提供直接的動態測試,所以需要采用CCStudio聯協方式完成動態測試環境搭建,提供相應的目標機和操作系統。采用該方法,需要完成目標開發板的合理選擇,利用編譯得到的測試驅動程序進行運行過程仿真。再者,需要利用具體編譯鏈接信息對Testbed動態測試命令進行修正,如針對F28xx系列的DSP軟件,編譯時需要采用c12000.exe,鏈接時需要采用Ink2000.exe。完成環境配置后,需要進行測試用例設置,對動態測試模塊進行運行。在測試過程中,各函數都能的得到代碼覆蓋,結合覆蓋率信息,可以確定測試不完全的軟件單元。
2.2.3 單元測試
結合靜態分析和動態測試結果,可以利用TBrun進行DSP軟件單元測試。首先,需要像動態測試過程一樣,進行相應測試環境的配置。而采用TBrun單元測試模塊,需要進行隔離測試,確定單元是否獨立。在測試過程中,需要先完成序列的創建,其中需包含被測集合內的全部文件。為此,還要對各文件包含的函數進行分析,并在界面上一一羅列,然后對各函數進行隔離測試。其次,需要進行黑盒、白盒測試。采用二者相結合的方式,可以完成DSP軟件單元的充分測試。結合軟件需求文檔,并確認程序內部結構后,可以進行函數設置,即確定函數輸入、輸出變量,同時確定函數期望值。通過運行用例,可獲得軟件結構覆蓋率信息,并得到測試結果。最后,通過將測試用例文件導出,可進行回歸測試。而測試用例文件為tcf文件,其中包含用例執行信息,因此僅需要對保存測試用例的重新運行就能進行代碼回歸測試,并獲得相應的分析報告。
3 結論
通過研究可以發現,在DSP軟件單元測試方面,采用LDRA Testbed可以提供靜態測試、動態測試和單元測試功能,設計人員僅需要完成測試用例編寫即可完成整個測試,并且能夠從測試報告中獲得詳細的信息,確定無法覆蓋的單元,所以能夠使DSP軟件設計和測試效率得到提高。
參考文獻
[1]楊珂瑤,張小芳,曾雷杰,基于DSP的嵌入式軟件測試方法[J].計算機與現代化,2014 (10):61-65.
[2]劉凱,鄭吉洲,嵌入式實時操作系統μC/OS- II在DSP芯片上的移植與測試[J].信息安全與技術,2013,4 (06):91-94.