摘要:介紹IBM Rational Test RealTime測試工具,并以單元測試為重點說明其在嵌入式軟件測試中的應用。
關鍵詞:嵌入式軟件
軟件測試
Rational Test RealTime
中圖分類號:TP273
文獻標識碼:B
文章編號:1002-2422(2010)03-0135-02
Rational Test RealTime(RTRT)是一個自動化的跨平臺組件和運行時分析測試工具。IBM RTRT提供對被測代碼進行靜態分析和運行時分析功能,并幫助開發人員創建測試腳本、執行測試用例和生成測試報告。
1 RTRT的功能介紹
Rational Test RealTime軟件包是自動化測試工具集,支持從單元測試到集成測試,到系統的確認測試。從實時的嵌入式系統測試到分布式應用的測試;從Ansi C的測試到基于OO的C++的測試。其工作組件有著共同的特點:
(1)支持嵌入式系統、實時系統,運行在多種平臺上。
(2)測試全過程的自動化,包括腳本生成,測試運行和報告的生成。
(3)完全結構化的測試腳本,支持UML,可實現對代碼、測試用例和UML的完全跟蹤。

1,1 RTRT結構
RTRT主要包括如下功能模塊:
(1)組件測試:自動創建和部署基于宿主和目標的組件測試裝置、測試存根和測試驅動程序。其可以直接在目標上測試可以不斷增強信心,確信實際系統將按照預期執行。
(2)內存剖析:說明程序的內存是如何占用的以及可能存在的泄漏,在出現之前確定明顯的或潛在的內存泄漏的來源,事先避免性能問題或者程序崩潰。
(3)性能剖析:確定應用程序層次上的性能瓶頸,準確定位代碼中可以進一步優化以提高性能的那些部分。
(4)線程剖析:監測和分析程序中出現的多線程問題,如死鎖和競爭條件,提高多線程應用程序的可靠性。
(5)代碼覆蓋率分析:對程序中未被測試的部分進行標識,避免提交未經用戶或目標系統測試運行的代碼。
(6)運行時跟蹤:通過UML順序圖把程序中的線程執行、函數調用和變量值表示成時間的函數,執行完成后,開發人員可以及時回頭檢查程序的行為。
(7)系統測試:提供基于消息的C線程、任務、過程和節點的單元測試和集成測試,不需要構造專門的試驗臺和相關的非核心業務活動,節省時間和金錢。
(8)目標部署技術:支持目標獨立的測試和運行時分析的通用、低開銷技術,環境改變時不需要改變測試,測試腳本部署、執行和報告仍然很容易使用支持的平臺。
1,2 RTRT支持的平臺
RTRT對目前主流的嵌入式開發平臺和語言都提供良好的支持,表1給出了其主要支持的開發平臺。
2使用RTRT進行軟件測試
結合RTRT的單元測試功能,對RTRT的測試方法進行解讀。對于單元測試包含使用腳本語言編寫測試用例,利用RTRT的TDP(Target Deployment Port)目標機部署技術同時對主機和目標機進行測試和調試,由RTRT自動生成樁模塊和驅動模塊,輔助生成測試用例、自動運行測試用例、自動比較測試結果、自動生成詳盡的測試報告。并且可以利用源代碼靜態分析確定測試優先級,計算軟件復雜度和運行時分析功能集成,包括;內存分析和性能分析、代碼覆蓋和運行時追蹤。
2,1腳本編寫
RTRT的腳本語言主要包含:定義變量、Stmcturation指令、Environment指令、Simulation指令、Conditional生成指令和Documentation指令。以下代碼給出對于comput_histo(x1,v1,x2,v2,desc)函數的測試腳本的例子。

腳本中通過對于函數的輸入變量設定取值范圍,以及輸出值得對應結果來由BTRT檢驗該函數的正確性。對于腳本,RTRT可以通過TDP同時在仿真平臺和目標機上同時運行。
2,2運行時分析
運行時分析可對程序的執行有更深刻的理解,了解運行程序的不同組件之間在運行時如何相互影響,對被測應用的執行行為有一個全面的理解,并檢測難于發現的問題:內存泄漏、性能瓶頸、發現無用代碼和未被測試代碼(覆蓋)。對c++,其還能夠提供基于UML的運行時追蹤分析。
2,3 TDP開發
盡管RTRT支持了大部分的開發環境,還提供通過定制支持全面的嵌入式目標系統,確保支持目標開發環境,解決因目標配置改變所帶來的問題,保證測試腳本的可移植性。另一方面定制的TDP可以針對目標系統進行優化,來最小化對被測系統的影響。TDP腳本包括;Basic Settings、Build Settings、Library Settings、Parser Settings等設置。
3結束語
作為一種跨平臺的組件測試和運行時分析解決方案。IBM Rational Test RealTime是專為編寫嵌入式、實時或者其他類型商業軟件產品的開發人員設計的。RTRT使得開發人員在調試時更加主動,在造成問題之前修正代碼。