白盒測試工具CodeTest

發表于:2014-11-19來源:uml.org.cn作者:不詳點擊數: 標簽:CodeTest
CodeTest 是嵌入式系統測試工具,同時也能做嵌入式部分模塊測試。要求:目標板和操作系統能正確運行

1.CodeTest 概述

CodeTest 是嵌入式系統測試工具,同時也能做嵌入式部分模塊測試。要求:目標板和操作系統能正確運行

2.CodeTest 的4 大功能

(1)性能分析:CodeTEST 能同時對128000 個函數和1000 個任務同時進行性能分析,可以精確的得出每個函數或任務執行的最大時間、最小時間和平均時間,精確度達到50ns;能夠精確的顯示各函數或任務之間的調用情況,幫助你發現系統瓶頸、優化系統和提升你的系統性能。

(2)測試覆蓋率分析:CODETEST 提供程序總體概況,函數級代碼以及源級覆蓋趨勢等多種模式來觀測軟件地覆蓋情況。由于CODETEST 是一種完全地交互式工具,測試者可以在對系統進行操作地同時追蹤覆蓋情況。并可以在實時的系統環境下,進行SC、DC 和MC/DC 級別的代碼覆蓋率測試,幫助測試工程師掌握當前的代碼測試覆蓋情況,指導測試用例的編寫,加速測試進程和產品風險評估過程。

(3)動態內存分配分析:在CODETEST 誕生之前,動態地存儲器分配情況是難以追蹤觀測的。CODETEST的分析能夠顯示有多少字節的存儲器被分配給了程序的哪一個函數。這樣就不難發現那些函數占用了較多的存儲空間,那些函數沒有釋放相應的存儲空間。測試者甚至還可以觀察到存儲體分配情況隨著程序運行動態的增加和減少,即CODETEST 可以統計出所有的內存的分配情況。隨著程序的運行,CODETEST 能夠指出20 多種內存分配的錯誤。例如:CodeTEST 可以捕捉“釋放空指針(freeing a null pointer)”一樣常見的程序錯誤,報告發生錯誤的函數和代碼行幫,助你盡早發現動態內純泄漏,而無需到系統崩潰時。

(4)執行追蹤分析(TRACE):CODETEST 可以按源程序,控制流以及高級模式來追蹤嵌入式軟件。提供400K 的追蹤緩沖空間,最大追蹤深度可達150 萬條源級程序,其中高級追蹤模式顯示的是RTOS 的事件和函數的進入退出,給測試者一個程序流程的大框圖;控制流追蹤增加了可執行函數中每一條分支語句的顯示;源級追蹤則又增加了對被執行的全部語句的顯示。在以上三種模式下,均會顯示詳細的內存分配情況,包括在那個代碼文件的那一行,那一個函數調用了內存的分配或釋放函數,被分配的內存的大小和指針,被釋放的內存的指針,出現的內存錯誤。

我們可以設置軟硬件觸發器來追蹤自己感興趣的事件,可以顯示運行過程中程序運行的實際情況,幫助你查找程序的BUG 所在。

3.探頭連接

 連接方式

 --- 標準總線

 CPCI    PCI    PMC    VME

 ---標準連接插座

 mictor38    mictor190    雙列直插

 ---飛線

 ---專用適配器

 PPC860    PPC750    PPC603E    M68040

 封裝方式

 雙列直插

 PLCC   PGA   QFP   BGA   BGA to PGA   QFP to PGAi8c 99

4.處理流程

1)先軟件預處理,然后CodeTest 插樁,最后編譯生成.out 文件和.idb

2)下載到目標板上運行,probe 開始從總線上采集數據,然后把數

3)CodeTest IDE 得到數據,然后結合.idb 中數據,得到分析結果

5.實現原理

1)原理:

程序員編寫的源代碼首先會通過CodeTEST 的編譯驅動器調用原編譯器對進行預編譯,然后CodeTEST 的插樁器(源代碼分析程序)對預編譯好的源代碼進行自動的插樁,即在需要插樁的關鍵位置寫入一條賦值語句(如:amc_ctrt=0x74100009),并把插入的標記送入一 個數據庫文件中生成一個符號數據庫暫存起來,以備為以后分析時調用。然后,CodeTEST的編譯驅動器又會調用原編譯器對插樁后的代碼進行編譯生成可執行目標代碼送到目標板上運行。當程序在目標系統運行到插樁點的位置時,目標板的控制總線和地址總線上會出現

相應的控制信號和地址信號。當CodeTEST 的輔助硬件(信號捕獲探頭)從控制總線和地址總線上監視到符合以上條件的信號時,CodeTEST 會主動地從數據總線上把數據捕獲回來送到CodeTEST 的內存中暫存并對這些數據進行預處理,然后將預處理后的數據通過局域網送

到工作平臺上。通過與前面生成的符號數據庫中的數據進行比較,我們就此得知當前程序的運行狀態,借此完成對嵌入式軟件的性能分析,高級覆蓋率分析,內存分析和大容量的代碼跟蹤。

2)優點:

CodeTEST 是一個硬件輔助軟件的在線測試與分析工具,它一方面吸取軟件打點技術,并對這種技術進行了改善,純軟件測試工具插入的是一個函數,而CodeTEST 插入的是一條賦值語句, 它在匯編級也是一條語句,所以它執行的時間非常短,同時避免了被其它的中

斷所中斷,它不需要在目標板上存放測試數據,不需要運行額外的預處理任務,所以它對目標系統的影響非常?。?%-15%)。另一方面,CodeTEST 從純硬件的測試工具那里吸取了從總線捕獲數據的技術并且對它進行了改善,CodeTEST 不再是采樣的方式,它是通過實時監

視系統總線,當程序運行到插入的特殊的點的時候才會主動的到數據總線上把數據捕獲回來,借此,在同樣的處理能力下,CodeTEST 可以做到精確的數據觀察。

 

原文轉自:http://www.uml.org.cn/Test/200802181.asp

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97