嵌入式軟件的覆蓋測試(二) 軟件測試
5 Logiscope在嵌入式操作系統DeltaCORE測試中的應用
5.1 測試前的準備
測試前的準備即為支持對DeltaCORE的測試所做的移植工作。
目前,Logiscope已經為一些成熟的商用嵌入式操作系統提供了支持,比如pSOS。DeltaCORE是我國自主開發的嵌入式強實時操作系統內核,為了利用Logiscope實現對DeltaCORE的應用程序乃至DeltaCORE本身的測試,我們主要解決了第4節中描述的第1個關鍵問題。

為了支持嵌入式程序的測試,Logiscope提供了運行在目標機方的程序代碼(或稱為目標機端的支持庫),里面包含了:
*1個用來收集和發送覆蓋信息的主循環線程,該線程即是嵌入式應用中的特殊任務;
*實現具體數據傳輸的函數,包括對串口或網絡的驅動,它們將被上述線程調用;
*插裝函數的實現,這些函數被被測代碼調用,向緩沖中放入覆蓋消息塊;
*對緩沖信息隊列的管理;
*初始化代碼。
例如,當被測程序運行進入到一條if(……)語句時,整個過程如圖4所示。
為了支持對DeltaCORE的測試,將與這些機制相關的代碼進行移植,包括以下幾方面:
*將收集和發送覆蓋信息的主循環線程作為在目標機端運行的應用程序中的特殊任務;
*對串口的驅動采用LambdaTOOL BSP(板級支持包)中的串口驅動代替,對網絡的驅動,用DeltaCORE的配套組件DeltaNET中的驅動程序實現;
*利用DeltaCORE的信箱機制實現消息隊列的創建和管理,插裝代碼向這些信箱發送覆蓋消息塊;
*在DetaCORE應用程序的根任務中調用Logiscope的初始化函數,達到創建特殊任務信箱的目的。
開發DeltaCORE應用程序時,我們使用了其配套開發工具LambdaTOOL。由于所使用的工具版本沒有實現目標服務器(target server)的調試方式,因此對物理端口的使用采用的獨占方式,即調試工具不能與其它工具共享同一端口。我們可以用網絡試上載并啟動目標應用程序,而通過串口傳送覆蓋信息。
5.2 對DeltaCORE的覆蓋測試過程及結果
對于函數內部,Logiscope支持的覆蓋策略有:
*指令塊IBs(Instruction Blocks)
*判斷到判斷的路徑DDPs(Decision-to-Decision Paths)
文章來源于領測軟件測試網 http://www.kjueaiud.com/