朱晏慶
【摘 要】 航天飛行器中嵌入式軟件功能越來越復雜,軟件的可靠運行是飛行器正常工作的保障,因此,對航天嵌入式軟件的質量提出了極高的要求,軟件測試不可或缺。本文以從事的嵌入式軟件測試出發(fā),簡述了嵌入式軟件測試的基本方法,并結合測試工具的介紹和使用,描述不同測試環(huán)境下航天嵌入式軟件測試的過程和心得。
【關鍵詞】 嵌入式軟件 軟件測試 覆蓋率 性能測試
1 概述
隨著現(xiàn)代計算機技術的不斷發(fā)展,系統(tǒng)集成技術也得到了飛速提高,尤其在航天航空、武器裝備等國防科技領域。同時嵌入式軟件在系統(tǒng)集成中的位置也顯得越來越重要。嵌入式軟件規(guī)模也逐漸增大,復雜度越來越高,軟件的質量成為系統(tǒng)集成成敗的重要因素。
嵌入式軟件的測試是提高軟件質量的重要手段,只有經(jīng)過充分的軟件測試,才有可能開發(fā)出高質量、可靠安全的嵌入式軟件。
對于航天領域嵌入式軟件而言,實時性要求,可靠性和安全性要求更高。
2 嵌入式軟件測試
2.1 軟件測試的基本方法
嵌入式軟件測試的方法一般可以分為黑盒測試和白盒測試兩種。
黑盒測試是一種基于軟件功能的測試。
白盒測試在于看清軟件模塊內部的結構,如各種覆蓋率測試,數(shù)據(jù)流測試等。
按照軟件生存周期模型,嵌入式軟件測試一般又可分為單元測試、組裝測試和確認測試,其中確認測試還可包括第三方獨立測試。
單元測試以不可再分的功能模塊為測試對象,可以進行黑盒和白盒測試。在驗證功能模塊實現(xiàn)的軟件功能項的同時,可以進一步進行覆蓋率測試。
一般測試過程見圖1。
組裝測試主要測試對象是經(jīng)過單元測試以后的集成軟件模塊,其目的是驗證各軟件模塊的控制接口和數(shù)據(jù)接口是否正確,與設計是否相符。
確認測試則是在系統(tǒng)環(huán)境中進行的功能和性能測試,借助輔助測試工具,驗證軟件是否完全實現(xiàn)各功能和性能需求項。
2.2 軟件測試工具
2.2.1 VECTORCAST
VECTORCAST提供強大的單元和組裝級別的測試功能,能自動產(chǎn)生、編譯測試樁和驅動模塊,通過友好界面交互自動產(chǎn)生測試用例,并支持完全自動的回歸測試,提供SC,BC和MC/DC測試覆蓋率顯示,提供MaCabe圈復雜度分析和基本路徑分析。
2.2.2 CODETEST
CODETEST是專門針對嵌入式軟件開發(fā)出來的高性能軟件測試和分析工具,除了通常軟件測試工具的插樁技術外,CODETEST最突出的特點是有硬件套件和探頭等輔助測試設備用于精確的性能分析和系統(tǒng)級覆蓋率分析。
2.3 軟件測試實踐
嵌入式軟件主要經(jīng)過單元、組裝測試和確認測試。
下面以1750平臺和編程語言ADA為例,結合測試工具介紹各階段測試內容。
2.3.1 單元和組裝測試
我們采用了VECTORCAST這個軟件工具進行單元和組裝測試,這是基于主機平臺的測試。我們采用的編譯器是M1750-Ada。在使用該編譯器結合VECTORCAST工具時,在編譯參數(shù)打開擴展內存選項的時候,會出現(xiàn)編譯鏈接不通過或程序執(zhí)行出錯的情況。經(jīng)查,由于我們編寫的代碼加上VECTORCAST工具自身為測試而生成的可執(zhí)行代碼超出了規(guī)定的64K代碼長度,代碼出現(xiàn)跨段,因此會出現(xiàn)編譯鏈接不通過或程序執(zhí)行出錯的情況;最后通過更改編譯鏈接的腳本控制文件,指定各代碼段存放的位置,確保代碼不出現(xiàn)跨段,解決了該問題。
該工具也被用來進行組裝測試,在語句、分支和多條件判定/決策各級別測試覆蓋率方面發(fā)揮了重要作用,并且通過編寫shell腳本文件實現(xiàn)了自動的單元和組裝級別的回歸測試。
2.3.2 確認測試
在嵌入式軟件確認測試過程中,我們使用CODETEST測試工具實現(xiàn)了M1750平臺上在線的軟件動態(tài)覆蓋率測試和軟件性能測試。
首先,構建了一個真實物理接口的測試環(huán)境,與目標計算機相連接,嵌入式軟件在目標計算機中連續(xù)運行,通過使用專用適配器捕捉目標CPU的控制、地址和數(shù)據(jù)總線的信號,并采用CODETEST的應用分析軟件實時在線分析嵌入式軟件中各個模塊的運行情況,包括運行時間、頻率等,對被測軟件的運行情況有全面了解,也為我們解決其它軟件問題提供了有效的參考數(shù)據(jù)。
確認測試階段,被測軟件的長期考核必不可少。該測試環(huán)境下可進行自主不間斷連續(xù)測試,不需要進行人工干預。
3 結語
嵌入式軟件要求測試充分,我們要充分借助軟件測試工具進行主機環(huán)境下的單元、組裝測試和系統(tǒng)集成環(huán)境下的確認測試。在實際測試過程中,我們既使用了VECTORCAST進行了主機平臺下的測試;也構建了軟件確認測試的平臺,借助CODETEST進行了集成環(huán)境下的性能測試和覆蓋率分析。在特定的測試平臺下,積累了相關測試經(jīng)驗,對類似的嵌入式軟件測試起到一定的借鑒作用。
參考文獻:
[1]鄭人杰.計算機軟件測試技術[M].清華大學出版社,1992.
[2]王田苗.嵌入式系統(tǒng)設計與實例開發(fā)[M].清華大學出版社,2002.
[3]談琳,羅永紅.實時軟件的仿真測試平臺的研究[J].計算機仿真,2005.endprint