張 馳
1.上海航天控制工程研究所,上?!?00233 2.同濟(jì)大學(xué)軟件學(xué)院,上?!?01804
Ada語(yǔ)言軟件測(cè)試方法探討
張馳1,2
1.上海航天控制工程研究所,上海200233 2.同濟(jì)大學(xué)軟件學(xué)院,上海201804
摘要軟件測(cè)試是保證軟件質(zhì)量的重要手段。本文結(jié)合某衛(wèi)星型號(hào)嵌入式星載軟件的工程實(shí)施介紹Ada語(yǔ)言軟件測(cè)試的工具和方法。
關(guān)鍵詞軟件質(zhì)量;測(cè)試方法;測(cè)試環(huán)境
進(jìn)入21世紀(jì),計(jì)算機(jī)技術(shù)發(fā)展日新月異,作為計(jì)算機(jī)技術(shù)的重要組成部分,軟件的質(zhì)量成為控制產(chǎn)品質(zhì)量的關(guān)鍵所在。特別是一些航空航天領(lǐng)域的應(yīng)用,軟件設(shè)計(jì)的可靠性和安全性更為突出[1]。如何保障軟件質(zhì)量?測(cè)試環(huán)境則顯得尤為關(guān)鍵。軟件測(cè)試可以驗(yàn)證其能否符合特定的需求以及預(yù)期設(shè)計(jì)目的,是通過(guò)軟件測(cè)試工程師或者專業(yè)的軟件測(cè)試工具測(cè)試特定軟件運(yùn)行的系統(tǒng)工程。
單元測(cè)試是軟件開(kāi)發(fā)設(shè)計(jì)周期中級(jí)別最低的測(cè)試活動(dòng)。所謂單元測(cè)試,即將軟件分離成獨(dú)立的單元模塊,再與其他模塊進(jìn)行測(cè)試。所以單元測(cè)試應(yīng)該具備復(fù)制性,無(wú)論在程序修改過(guò)程中還是在環(huán)境復(fù)制過(guò)程中。因此,所有版本的單元測(cè)試都應(yīng)該是在軟件的開(kāi)發(fā)生命周期中進(jìn)行的。本文筆者主要論述了軟件測(cè)試的流程以及測(cè)試工具。
Ada是普通程序經(jīng)常使用的設(shè)計(jì)語(yǔ)言,當(dāng)年美國(guó)國(guó)防部花費(fèi)巨資,耗時(shí)二十余年,歷經(jīng)萬(wàn)難而研發(fā)出來(lái)。該語(yǔ)言大受贊譽(yù),一經(jīng)推出,即成為第四代計(jì)算機(jī)語(yǔ)言的成功代表,是迄今為止,最具復(fù)雜性和完備性的程序開(kāi)發(fā)語(yǔ)言。相比其它程序設(shè)計(jì)語(yǔ)言,Ada既體現(xiàn)眾多軟件技術(shù)開(kāi)發(fā)的基本原理,也成功將這些理論基礎(chǔ)付諸實(shí)踐。運(yùn)用Ada語(yǔ)言可顯著提高軟件系統(tǒng)的有效性,可靠性,可維護(hù)性甚至改善軟件系統(tǒng)的清晰性。目前,美國(guó)國(guó)防部唯一指定的可用于軍用系統(tǒng)開(kāi)發(fā)的語(yǔ)言就是Ada語(yǔ)言。同時(shí),該語(yǔ)言也是我國(guó)軍方內(nèi)部開(kāi)發(fā)的標(biāo)準(zhǔn)語(yǔ)言。
2.1 靜態(tài)分析
工作內(nèi)容:方案設(shè)計(jì)師與軟件設(shè)計(jì)師走讀代碼。
常見(jiàn)問(wèn)題:
1)邏輯判斷語(yǔ)句else涵蓋范圍:除if和else if語(yǔ)句特殊處理的情況,其他情況均按else分支進(jìn)行處理,需確定是否有漏考慮特殊情況,或可并入else分支統(tǒng)一進(jìn)行處理。
2)邊界條件的判斷:>和>=,<和<=是否有用錯(cuò);
3)循環(huán)變量的累加是否越界。
4)分母為變量時(shí)分析其初始值及物理意義。
2.2 單元/組裝測(cè)試
某衛(wèi)星型號(hào)的單元測(cè)試和組裝測(cè)試均使用LDRA公司的Testbed軟件,故合并來(lái)講。
軟件測(cè)試環(huán)境:某衛(wèi)星型號(hào) GNC軟件單元測(cè)試環(huán)境由開(kāi)發(fā)上位機(jī)完成,其中開(kāi)發(fā)上位機(jī)安裝開(kāi)發(fā)環(huán)境(ADAERC-32編譯器)、部件測(cè)試分析工具(Testbed TBrun)。
軟件測(cè)試的硬件和固件項(xiàng):一臺(tái)上位機(jī)(內(nèi)存為2G,有串口),上位機(jī)的配置見(jiàn)表1。
表1 測(cè)試環(huán)境的軟件項(xiàng)
系統(tǒng)配置:因?yàn)闇y(cè)試工具Testbed為windows版本,而編譯器為L(zhǎng)inux版本,所以在系統(tǒng)中配置了Samba服務(wù)用以實(shí)現(xiàn)Windows系統(tǒng)和虛擬機(jī)的Linux系統(tǒng)之間的同網(wǎng)段文件夾共享功能。
(注:Samba是一個(gè)工具套件,在Unix上實(shí)現(xiàn)SMB (server messag block)協(xié)議,或者稱之為NETBIOS/ LanManager協(xié)議。SMB協(xié)議通常是被windows系列用來(lái)實(shí)現(xiàn)磁盤和打印機(jī)共享。)
測(cè)試前準(zhǔn)備工作:
1)將被測(cè)代碼及所有被調(diào)用文件拷入samba服務(wù)配置好的共享文件夾,并拷入Testbed的驅(qū)動(dòng)程序ldra_testbed_run.bat。
2)新建一個(gè)格式為[測(cè)試項(xiàng)目名].lib的文件,用來(lái)儲(chǔ)存測(cè)試程序的調(diào)用關(guān)系、數(shù)據(jù)流等信息。
3)新建一個(gè)集合(creat new set),該集合包含程序的所有頭文件(.ads),并進(jìn)行靜態(tài)分析;如.ads文件比較少也可以逐個(gè)分析,靜態(tài)分析時(shí)需選定之前新建的.lib文件作信息記錄。
4)選定測(cè)試模塊(.adb)并開(kāi)始測(cè)試。
測(cè)試內(nèi)容:分支/語(yǔ)句100%覆蓋測(cè)試。
發(fā)現(xiàn)問(wèn)題:如有不可達(dá)分支/語(yǔ)句,則可根據(jù)具體情況判斷。通常來(lái)說(shuō)出現(xiàn)不可達(dá)分支是因?yàn)榻涌趨?shù)不充分和程序邏輯問(wèn)題。
2.3 確認(rèn)測(cè)試
測(cè)試環(huán)境:如圖1,某型號(hào)的確認(rèn)測(cè)試在實(shí)時(shí)仿
真實(shí)驗(yàn)室進(jìn)行。GNC計(jì)算機(jī)為低等級(jí)產(chǎn)品,單機(jī)使用Matlab搭建的動(dòng)力學(xué)模型進(jìn)行仿真,數(shù)管軟件和AD信號(hào)等均為模擬信號(hào)。
確認(rèn)測(cè)試工具:工具為上海創(chuàng)景公司自主研發(fā)的RTInsightPro。該套工具包括RTInsightPro主機(jī)一臺(tái)及配套上位機(jī)軟件,主機(jī)與上位機(jī)通過(guò)網(wǎng)線連接,通訊與設(shè)置遵循TCP/IP協(xié)議。RTInsightPro的工作原理為在目標(biāo)代碼內(nèi)插樁,然后通過(guò)監(jiān)測(cè)CPU對(duì)于插樁點(diǎn)目標(biāo)地址的讀寫(xiě)操作來(lái)抓取數(shù)據(jù)包,最后將數(shù)據(jù)包通過(guò)網(wǎng)線傳入上位機(jī)軟件里,實(shí)現(xiàn)監(jiān)控源代碼覆蓋率的功能。因?yàn)樯婕癈PU信號(hào)的讀取,測(cè)試前創(chuàng)景公司需與單機(jī)設(shè)計(jì)師討論并設(shè)計(jì)符合CPU預(yù)留接口的電路板。工具系統(tǒng)架構(gòu)見(jiàn)圖2。
測(cè)試內(nèi)容:分支/語(yǔ)句100%覆蓋率測(cè)試。
通過(guò)對(duì)軟件進(jìn)行單元測(cè)試,確保了軟件在編碼上的邏輯正確性、驗(yàn)證了軟件功能與文檔設(shè)計(jì)的一致性。降低了軟件開(kāi)發(fā)風(fēng)險(xiǎn)以及開(kāi)發(fā)成本。更是對(duì)航天飛行器軟件的高可靠性、安全性提供了保障。
參考文獻(xiàn)
[1]易海勝.單元測(cè)試用例設(shè)計(jì)方法初探[J].武漢科技學(xué)院學(xué)報(bào),2006,19(5).
[2]張巍,尹海波,孫立財(cái).軟件的單元測(cè)試方法[J].光電技術(shù)應(yīng)用,2006,21(2).
[3]中國(guó)航天科技集團(tuán)公司軟件專家組.航天軟件工程實(shí)施技術(shù)指南及范例(修訂版).
中圖分類號(hào)TP3
文獻(xiàn)標(biāo)識(shí)碼A
文章編號(hào)1674-6708(2015)139-0137-01