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