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