安笛+鄭純
摘 要 詳細分析了嵌入式系統(tǒng)的特點,介紹了在宿主機和目標機環(huán)境下的嵌入式軟件測試技術(shù),結(jié)合軟件測試V模型的不足,提出嵌入式軟件全面測試過程模型,該模型將軟件測試從需求階段引入,并且對嵌入式軟件系統(tǒng)架構(gòu)進行性能估算,避免在軟件實現(xiàn)后期再去解決由于體系結(jié)構(gòu)和設計方案的原因產(chǎn)生的性能問題,最后使用嵌入式軟件測試工具實現(xiàn)軟件測試自動化,收集系統(tǒng)測試覆蓋率,監(jiān)控了內(nèi)存的動態(tài)分配和釋放,防止內(nèi)存泄露。
【關(guān)鍵詞】嵌入式軟件 軟件測試過程模型 軟件測試 軟件測試自動化
隨著嵌入式軟件技術(shù)的發(fā)展,嵌入式軟件應用的不斷普及使得嵌入式軟件在航空、航天、航海和軍事安全等諸多領域發(fā)揮著愈來愈重要的作用, 嵌入式軟件功能和性能的正確實現(xiàn)對軟件質(zhì)量起到了決定性的作用,軟件測試是軟件質(zhì)量保證的重要手段。然而,如何準確地和盡早地發(fā)現(xiàn)軟件中的缺陷就需要一個精確的軟件測試過程模型。
一個好的嵌入式軟件測試過程模型應該具有以下特點:
(1)盡可能早地被發(fā)現(xiàn)需求、設計階段的問題。
(2)不同的開發(fā)階段,具有相應的測試技術(shù),合理地在基于目標機測試和基于宿主機測試之間進行折衷。
(3)將嵌入式軟件測試工具引入模型,實現(xiàn)嵌入式軟件測試自動化,提高軟件測試的效率。
(4)缺陷修正之后,進行缺陷影響域分析,設計測試用例,合理地進行回歸測試,避免引入新的缺陷。
針對以上需求,本文分析了嵌入式系統(tǒng)的特點,結(jié)合軟件測試過程V模型、嵌入式軟件測試技術(shù)和嵌入式軟件測試工具,建立嵌入式軟件全面測試過程模型。
1 嵌入式系統(tǒng)的特點
1.1 嵌入性
嵌入式軟件在宿主機環(huán)境下測試再充分,也不能說保證在目標機環(huán)境下該軟件運行正常。嵌入式軟件還面臨著目標環(huán)境的測試。
1.2 及時性
嵌入式軟件系統(tǒng)對及時性要求的符合程度。
1.3 資源有限性(內(nèi)存使用率)
2 軟件測試V模型不足
(1)容易使人理解為測試是軟件開發(fā)的最后一個階段,主要是針對程序進行測試尋找錯誤,而需求分析階段隱藏的問題一直到后期的驗收測試才能被發(fā)現(xiàn)。
(2)V模型把軟件的開發(fā)視為需求、設計、編碼等一系列串行的活動,沒有充分考慮軟件測試與軟件開發(fā)的并行性。
(3)V模型沒有明確地說明在單元測試、集成測試和系統(tǒng)測試中發(fā)現(xiàn)的缺陷,修正缺陷之后進行回歸測試,測試是一個迭代的過程。
3 嵌入式軟件測試方法
3.1 基于宿主機的測試
3.1.1 嵌入式軟件靜態(tài)分析
借助軟件靜態(tài)分析工具進行代碼規(guī)則檢查和質(zhì)量評價,對違背代碼規(guī)則的語句進行修改。
3.1.2 嵌入式軟件單元測試
單元測試是針對軟件設計的最小單位——程序模塊,進行正確性檢驗工作。
3.1.3 嵌入式軟件集成測試
集成測試主要是找出各模塊之間進行數(shù)據(jù)傳輸和消息傳遞的錯誤和系統(tǒng)組成后的邏輯錯誤。
3.2 基于目標機的測試
根據(jù)軟件需求規(guī)格說明書,設計測試用例覆蓋所有的功能和性能,驗證軟件的功能和性能及其它特性是否與用戶的要求一致。
4 嵌入式軟件全面測試過程模型
針對在引言中描述的一個好的嵌入式軟件測試模型所具有的特征,本文提出了嵌入式軟件全面測試過程模型,如圖1所示,其具體測試過程如下:
4.1 軟件需求評審
保證需求的正確性、完整性、一致性可追溯性等。
4.2 系統(tǒng)體系結(jié)構(gòu)設計評審
在體系結(jié)構(gòu)和設計階段所做出的性能改進對嵌入式軟件性能的影響遠遠超過實現(xiàn)階段,軟件一旦實現(xiàn),再去解決體系結(jié)構(gòu)和設計方案的原因產(chǎn)生的問題將是極其困難的。
4.3 嵌入式軟件單元和集成測試
進入編碼階段后,搭建自動化單元測試環(huán)境,調(diào)用單元測試用例腳本,進行自動化單元測試。
4.4 嵌入式軟件確認測試
驗證軟件的功能和性能是否滿足用戶的需求,同時對內(nèi)存使用進行動態(tài)監(jiān)控,是否存在內(nèi)存泄露。
4.5 嵌入式軟件回歸測試
對各階段發(fā)現(xiàn)的缺陷都要進行修正,進行影響域分析,設計測試用例,進行回歸測試,直到所有的缺陷關(guān)閉,如圖1所示。
5 嵌入式軟件全面測試模型應用實例
在嵌入式電子海圖軟件系統(tǒng)項目中使用該模型,開發(fā)環(huán)境主機平臺Pentium D 3.0G/512M/120G,目標機平臺Pentium 933M/64M/10G,開發(fā)工具為Tornado 2.2集成開發(fā)環(huán)境,目標機操作系統(tǒng)為Vxworks 5.4。
通過使用本文提出的測試過程模型,其測試結(jié)果如下:
(1)提前發(fā)現(xiàn)了隱藏在需求中2個錯誤,對系統(tǒng)體系結(jié)構(gòu)設計的性能進行了定量的分析。
(2)在靜態(tài)、單元和集成測試過程中,共發(fā)現(xiàn)嚴重代碼規(guī)則檢查錯誤307處,其中主要表現(xiàn)浮點數(shù)進行相等比較、除數(shù)可能為0,數(shù)組越界等。
(3)在確認測試過程中共發(fā)現(xiàn)功能錯誤20處,主要表現(xiàn)海圖匯算功能存在誤差等。
(4)語句覆蓋率為88%,沒有達到100%的原因是存在部分冗余代碼、文件打開異常處理等。同時發(fā)現(xiàn)存在內(nèi)存泄露。
6 結(jié)束語
本文提出了一種新的嵌入式軟件全面測試過程模型。使用該測試過程模型成功地對嵌入式電子海圖軟件系統(tǒng)進行測試。實踐表明該測試模型是有效的,具有一定的實際應用價值。
參考文獻
[1]Connie U.Smith, Lloyd G.Williams. Performance Solutions A Practical Guide to Creating Responsive, Scalable Software[M].Boston,Pearson Education,2003
[2]柳純錄.軟件評測師教程[M].北京:清華大學出版社,2005.
[3]康一梅等.嵌入式軟件測試[M].北京:機械工業(yè)出版社,2008.
作者簡介
安笛(1986-),女。工程師。主要研究方向為嵌入式軟件開發(fā)、測試等。
作者單位
1.天津航海儀器研究所 天津市 300451
2.天津航空機電有限公司 天津市 300308