安笛+鄭純

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