4、嵌入式操作系統Nucleus的具體應用
Nucleus PLUS嵌入式操作系統是目前最受歡迎的操作系統。Nucleus PLUS是為實時嵌入式應用而設計的一個搶先式多任務操作系統內核,其95%的代碼是用ANSIC寫成的,因此非常便于移植,并能夠支持大多數類型的處理器。Nucleus PLUS最大的優勢在于提供注釋嚴格的C源代碼給每一個用戶。這樣,用戶能夠深入地了解底層內核的運作方式,并可根據自己的特殊要求刪減或改動系統軟件,這對軟件的規范化管理及系統軟件的測試都有極大的幫助。
基于時間效率的要求,在Nucleus嵌入式系統中實現代碼覆蓋分析采用的足內存存取操作的方式。具體實現過程如下:
、 安裝BullseyeCoverage,選擇合適的編譯器。由于使用PXA270作為開發平臺,所以也選用了Intel C++編譯器。安裝完成后,從命令行輸入命令"SET COVFILE="XXX""來設定覆蓋分析文件的輸出地點和具體名稱。默認的名稱是test.cov。
、 修改Makefile,將編譯器的路徑設置到Bullseye-Coverage的bin目錄下。
、 使用命令"cov01-1"打開覆蓋編譯選項。然后編譯代碼,需要在編譯過程中確定調用了BullseycCoverage的攔截器,可以通過查看編澤記錄中是否含有"BullseyeCoverage Compile C++version platform"的信息確定。通常會在編譯結束時發現鏈接錯誤,這是由于需要調用的函數實現體并沒有編譯、鏈接進來。
、 進入到BullseyeCoverage的run目錄下,根據系統平臺要求修改libcov-user.h、atomic-user.h和Makefik文件,用-DSYS_user區編譯BullseyeCoverage運行庫文件。通過這個選項可以使編譯器選擇用戶自定義的平臺文件,在這些文件中就含有需要封裝的一些函數,如write、read、open等。編譯完的庫文件可以命名為libeov-user.a或libcov-user.lib。
、 修改要測試系統的編譯文件,在Makefile的鏈接過程中加入libcov-user.a或libcov-user.lib。再次重新編譯,應該沒有任何錯誤。
、 根據BullseyeCoverage的要求,將libcov-user.h中帶有REQUIRED標識的函數根據具體情況實現。在這個過程中,建議首先實現error_write_screen,這樣在后續過程中可以將錯誤信息打印到屏幕或者輸出到測試日志中,然后逐步實現其他函數。
、 實現了所有必需的函數后,重新編譯一遍確定沒有任何編譯、鏈接問題。最終會生成2個文件,一個是要運行的二進制文件(如rfs.bin),另外一個是覆蓋分析文件test.cov。
、 將ffs.bin和覆蓋文件文件分別下載到系統中。其中,將ffs.bin下載到Flash存儲器中,通過Nucleus的調試命令download將test.cov下載到系統內存中。
、 運行二進制代碼,在這個過程中,系統內存結構如圖2所示。

、 二進制代碼運行完畢后,用Nucleus的調試命令upload將test.cov上載到PC機中。
、 用Coverage Brozrset打開test.cov,覆蓋分析結果就得到了。
通過實驗,在投有使用BullseyeCoverage時,一般測試方式的測試覆蓋率大致是55%~70%;而通過使用 BullseyeCoverage重新設計測試用例,測試覆蓋率提高到了85%~90%,其中7%的測試用例直接影響到產品的質量。使用測試覆蓋分析工具 BullseyeCoverage可以使測試更有針對性,減少冗余測試用例測試,提高測試團隊的工作效率,能夠在開發過程中盡早地發現Bug。
5、總 結
測試覆蓋分析是一種對測試階段度量及測試工作情況進行分析的很好的方法,可以使測試程度更為明確,階段進度一目了然,其統計值也便于管理部門對當前測試狀態進行了解與把握。
文章來源于領測軟件測試網 http://www.kjueaiud.com/