




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Copyright McCabe & Associates 1998哈爾濱工業(yè)大學(xué)深圳研究院北京旋極信息技術(shù)有限公司深圳旋極歷通科技有限公司 肖 敦 鶴Copyright McCabe & Associates 1998v 嵌入式軟件在線測試和分析工具在嵌入式系統(tǒng)開發(fā)中的作用嵌入式軟件在線測試和分析工具在嵌入式系統(tǒng)開發(fā)中的作用v 嵌入式軟件在線測試的內(nèi)容,方法與作用嵌入式軟件在線測試的內(nèi)容,方法與作用 1: Coverage analysis 2: Performance analysis 3: Logic trigger and trace analysis 4: Memor
2、y analysis 5: RTOS analysisv 嵌入式軟件在線測試和分析工具嵌入式軟件在線測試和分析工具 1: TRACE32 - ICE 2: TRACE32 - FIRE 3: TRACE32 - ICD議議 程程Copyright McCabe & Associates 1998 系統(tǒng)效率為什么如此低,問題在哪里?系統(tǒng)效率為什么如此低,問題在哪里? 系統(tǒng)采集的數(shù)據(jù)與現(xiàn)場相差甚遠(yuǎn),原因何在?系統(tǒng)采集的數(shù)據(jù)與現(xiàn)場相差甚遠(yuǎn),原因何在? 系統(tǒng)運行中,時常復(fù)位,硬件,軟件工程師百思不系統(tǒng)運行中,時常復(fù)位,硬件,軟件工程師百思不得其解?得其解? 系統(tǒng)軟件隨機跑飛,何處使然系統(tǒng)軟件隨
3、機跑飛,何處使然 ? 如何捕捉系統(tǒng)軟件隨機和偶然故障如何捕捉系統(tǒng)軟件隨機和偶然故障 ?無計可施?。繜o計可施!我咋辦那? Copyright McCabe & Associates 1998真實世界中的復(fù)雜嵌入式軟件真實世界中的復(fù)雜嵌入式軟件結(jié)果結(jié)果:v金融在線事務(wù)處理系統(tǒng)癱瘓金融在線事務(wù)處理系統(tǒng)癱瘓v電話交換網(wǎng)絡(luò)癱瘓電話交換網(wǎng)絡(luò)癱瘓v電話系統(tǒng)崩潰,丟失了五千萬次呼叫電話系統(tǒng)崩潰,丟失了五千萬次呼叫v電腦控制機場行李運送系統(tǒng)出現(xiàn)故障,行李延遲交付或亂成一電腦控制機場行李運送系統(tǒng)出現(xiàn)故障,行李延遲交付或亂成一團。團。v更多的電路板,更多的軟件,更加復(fù)雜!更多的電路板,更多的軟件,更加復(fù)雜!
4、Copyright McCabe & Associates 1998軟件質(zhì)量低劣所付出的代價:軟件質(zhì)量低劣所付出的代價:如果關(guān)鍵系統(tǒng)出現(xiàn)故障?如果關(guān)鍵系統(tǒng)出現(xiàn)故障?v商務(wù)飛機墜毀商務(wù)飛機墜毀v反導(dǎo)彈防衛(wèi)系統(tǒng)無法工作反導(dǎo)彈防衛(wèi)系統(tǒng)無法工作v核反應(yīng)堆發(fā)生核泄露核反應(yīng)堆發(fā)生核泄露v運送衛(wèi)星的火箭在空中爆炸運送衛(wèi)星的火箭在空中爆炸v導(dǎo)彈追蹤衛(wèi)星報告了錯誤的方位導(dǎo)彈追蹤衛(wèi)星報告了錯誤的方位v Copyright McCabe & Associates 1998我們已認(rèn)識到軟件測試重要性我們已認(rèn)識到軟件測試重要性但新的困難又出現(xiàn)了但新的困難又出現(xiàn)了! !v軟件的測試不如硬件板卡測試普遍v測
5、試工作缺乏可度量的管理手段。v軟件的功能性測試不夠完善,需要新的方法的補充。v嵌入式系統(tǒng)代碼量日益增多,測試難度增加v系統(tǒng)越復(fù)雜,測試越復(fù)雜,風(fēng)險越大v Copyright McCabe & Associates 1998實時在線嵌入式系統(tǒng)與仿真環(huán)境不同實時在線嵌入式系統(tǒng)與仿真環(huán)境不同W. Wayt GibbsStaff Writer, Scientific Americanv實時系統(tǒng)中的錯誤通常很難找到原因,實時系統(tǒng)中的錯誤通常很難找到原因,因為,就象你的車上的發(fā)動機發(fā)出奇怪因為,就象你的車上的發(fā)動機發(fā)出奇怪的聲音一樣,它只在某種條件下才會出的聲音一樣,它只在某種條件下才會出現(xiàn)?,F(xiàn)。
6、v故障在仿真環(huán)境中無法再現(xiàn)。故障在仿真環(huán)境中無法再現(xiàn)。結(jié)論:結(jié)論:我們迫切需要采用合適的工具,從單元、集成、我們迫切需要采用合適的工具,從單元、集成、系統(tǒng)、現(xiàn)場等各個階段,對嵌入系統(tǒng)的軟件進(jìn)系統(tǒng)、現(xiàn)場等各個階段,對嵌入系統(tǒng)的軟件進(jìn)行實時在線測試和分析,保證系統(tǒng)的性能和可靠行實時在線測試和分析,保證系統(tǒng)的性能和可靠性。性。Copyright McCabe & Associates 1998軟件測試方法概述軟件測試方法概述靜態(tài)測試靜態(tài)測試動態(tài)測試動態(tài)測試編程標(biāo)準(zhǔn)編程標(biāo)準(zhǔn)程序復(fù)雜度度量程序復(fù)雜度度量白盒測試白盒測試黑盒測試黑盒測試語句覆蓋語句覆蓋判定覆蓋判定覆蓋條件覆蓋條件覆蓋判定判定/條件
7、覆蓋條件覆蓋等價分類法等價分類法邊緣值分析法邊緣值分析法因果圖法因果圖法 錯誤推測法錯誤推測法條件組合覆蓋條件組合覆蓋回歸測試回歸測試強度測試強度測試性能測試性能測試恢復(fù)計劃測試恢復(fù)計劃測試啟動啟動/停止測試停止測試文檔測試文檔測試Copyright McCabe & Associates 1998預(yù)期的軟件處理流程(簡化版)預(yù)期的軟件處理流程(簡化版)單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試集成和測試集成和測試系統(tǒng)測試和驗證系統(tǒng)測試和驗證用戶安裝用戶安裝要求要求分
8、析分析/設(shè)計設(shè)計Copyright McCabe & Associates 1998用用 在線測試在開發(fā)和測試中在線測試在開發(fā)和測試中節(jié)省時間和金錢節(jié)省時間和金錢Unit Test單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元級開發(fā)單元級開發(fā)/測試測試:優(yōu)化性能優(yōu)化性能100% 單元覆蓋單元覆蓋刪除內(nèi)存錯誤刪除內(nèi)存錯誤集成級測試集成級測試:優(yōu)化性能優(yōu)化性能提高測試用例的覆蓋提高測試用例的覆蓋刪除內(nèi)存錯誤刪除內(nèi)存錯誤系統(tǒng)測試系統(tǒng)測試:確認(rèn)是否滿足性能需求確認(rèn)是否滿足性能
9、需求提高覆蓋的性能提高覆蓋的性能縮短整個測試時間縮短整個測試時間集成和測試集成和測試系統(tǒng)測試和驗證系統(tǒng)測試和驗證用戶安裝用戶安裝要求要求分析分析/設(shè)計設(shè)計Copyright McCabe & Associates 1998過去情況過去情況單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級測試單元級測試集成集成 和測試和測試系統(tǒng)測試系統(tǒng)測試和驗證和驗證用戶用戶安裝安裝要求要求分析分析/設(shè)計設(shè)計這里發(fā)現(xiàn)這里發(fā)現(xiàn)性能沒有性能沒有滿足要求滿足要求在這里發(fā)現(xiàn)在這里發(fā)現(xiàn)了單元級代了單元級代碼的問題碼的
10、問題軟件故障軟件故障 = 多次多次 (4-8) 反復(fù)修改反復(fù)修改技術(shù)支持在這里發(fā)現(xiàn)問題技術(shù)支持在這里發(fā)現(xiàn)問題進(jìn)度在這里延遲進(jìn)度在這里延遲進(jìn)度在這里延遲進(jìn)度在這里延遲這里有很多問題這里有很多問題這里并沒有這里并沒有作到真正的作到真正的單元級測試單元級測試系統(tǒng)越復(fù)雜,系統(tǒng)越復(fù)雜,單元越多單元越多功能測試不能滿功能測試不能滿足要求足要求Copyright McCabe & Associates 1998軟件打點方式軟件打點方式比較便宜比較便宜可在可在CACHE打開下工作打開下工作對目標(biāo)系統(tǒng)影響大(超過對目標(biāo)系統(tǒng)影響大(超過50%)占用目標(biāo)系統(tǒng)資源如,占用目標(biāo)系統(tǒng)資源如,CPU 時時間間內(nèi)存,
11、通訊通道等內(nèi)存,通訊通道等缺乏很好的性能分析缺乏很好的性能分析缺乏覆蓋率分析缺乏覆蓋率分析缺乏內(nèi)存分配分析缺乏內(nèi)存分配分析精確度偏低精確度偏低對目標(biāo)系統(tǒng)影響小(對目標(biāo)系統(tǒng)影響?。?-15%)不占用目標(biāo)系統(tǒng)資源不占用目標(biāo)系統(tǒng)資源軟件打點技術(shù)軟件打點技術(shù)強大的性能分析強大的性能分析強大的覆蓋率分析強大的覆蓋率分析強大的內(nèi)存分配分析強大的內(nèi)存分配分析價格較便宜價格較便宜可在可在CACHE打開方式下工作打開方式下工作非常精確非常精確不影響目標(biāo)系統(tǒng)(0%)不占用系統(tǒng)資源不用打點有限或沒有性能分析有限的或沒有覆蓋率分析沒有內(nèi)存分配分析無法在CACHE打開方式下工作精確性隨情況變化通過仿真存儲器工作價格昂貴
12、純軟件測試工具純軟件測試工具純硬件工具純硬件工具仿真器,邏輯分析儀仿真器,邏輯分析儀 硬件輔助軟件測試工具硬件輔助軟件測試工具Copyright McCabe & Associates 1998嵌入式軟件在線測試作用嵌入式軟件在線測試作用. .v驗證測試結(jié)果,評估測試的軟件v指導(dǎo)測試用例的編寫v. 代碼優(yōu)化代碼優(yōu)化v. 查找一個內(nèi)存查找一個內(nèi)存 分配錯誤分配錯誤?Copyright McCabe & Associates 1998123“返回程序員修改”現(xiàn)場故障診斷調(diào)試階段過程可視化嵌入式軟件在線測試的內(nèi)容嵌入式軟件在線測試的內(nèi)容 跟蹤軟件運行跟蹤軟件運行代碼覆蓋分析及走勢代碼
13、覆蓋分析及走勢代碼性能分析代碼性能分析代碼內(nèi)存分析代碼內(nèi)存分析遠(yuǎn)程接觸遠(yuǎn)程接觸真實故障現(xiàn)場分析真實故障現(xiàn)場分析COTS analysis solutionCOTS analysis solutionBuilt-in analysisBuilt-in analysis在線測試在線測試Copyright McCabe & Associates 1998Coverage AnalysisCoverage AnalysisvMCDC(條件決策覆蓋)條件決策覆蓋)Modified Condition DecisionCoverage - MCDCDecision Coverage - DCCov
14、erage(語句覆蓋)語句覆蓋)Statement Coverage - SCv為何要使用為何要使用MCDC?不是純軟件模擬;而是終端系統(tǒng)的不是純軟件模擬;而是終端系統(tǒng)的監(jiān)視監(jiān)視不僅可以分析哪些代碼執(zhí)行過,而不僅可以分析哪些代碼執(zhí)行過,而且可以分析什么條件執(zhí)行和為什么且可以分析什么條件執(zhí)行和為什么執(zhí)行執(zhí)行一些軟件質(zhì)量關(guān)系到人的生命一些軟件質(zhì)量關(guān)系到人的生命!提供比一般代碼塊覆蓋更詳細(xì)、更提供比一般代碼塊覆蓋更詳細(xì)、更明確的監(jiān)視明確的監(jiān)視滿足特定行業(yè)機構(gòu)的需求滿足特定行業(yè)機構(gòu)的需求,如如:FAA 航空航空FDA 醫(yī)療醫(yī)療DOD, 空間技術(shù)空間技術(shù), ISO等等Copyright McCabe &
15、amp; Associates 1998工業(yè)質(zhì)量要求:工業(yè)質(zhì)量要求:根據(jù)應(yīng)用軟件的重要性分為不同的級別根據(jù)應(yīng)用軟件的重要性分為不同的級別vB級級 危險的影響危險的影響需要需要DC測試測試差分差分GPS飛機之間接近感應(yīng)飛機之間接近感應(yīng)v C級級 重要的影響重要的影響需要需要SC測試測試無線數(shù)據(jù)鏈接無線數(shù)據(jù)鏈接vD級級 次要性影響次要性影響需要需要 BBC測試測試飛機內(nèi)環(huán)境控制(空調(diào)溫飛機內(nèi)環(huán)境控制(空調(diào)溫度等)度等)vE級級 沒有影響沒有影響函數(shù)進(jìn)入函數(shù)進(jìn)入/退出覆蓋率測試退出覆蓋率測試飛機內(nèi)娛樂設(shè)施飛機內(nèi)娛樂設(shè)施v幾個規(guī)范和要求的例子:幾個規(guī)范和要求的例子:v航空軟件航空軟件RTCA DO-1
16、78B 標(biāo)準(zhǔn)標(biāo)準(zhǔn)EUROCAE ED-12B 標(biāo)準(zhǔn)標(biāo)準(zhǔn)v對不同級別覆蓋率測試的詳細(xì)的報告對不同級別覆蓋率測試的詳細(xì)的報告v符合不同級別的條件:符合不同級別的條件:vA級級 災(zāi)難性的影響災(zāi)難性的影響需要需要MC/DC 測試測試引擎控制引擎控制飛行計算飛行計算導(dǎo)航處理導(dǎo)航處理Copyright McCabe & Associates 1998通常的基本塊覆蓋率度量方法通常的基本塊覆蓋率度量方法基本塊覆蓋基本塊覆蓋-測量測試中測量測試中代碼是否已經(jīng)執(zhí)行代碼是否已經(jīng)執(zhí)行v突出高亮顯示執(zhí)行過的代碼突出高亮顯示執(zhí)行過的代碼v在主機電腦上進(jìn)行源代碼顯示在主機電腦上進(jìn)行源代碼顯示方法方法v使用使用 p
17、rintf 語句語句v使用調(diào)試工具和設(shè)斷點使用調(diào)試工具和設(shè)斷點v使用硬件工具測量使用硬件工具測量v硬件增強型測量工具硬件增強型測量工具Copyright McCabe & Associates 1998TRACE32TRACE32/ /覆蓋率覆蓋率: : 摘要顯示摘要顯示v一個頁面就可以顯示整個程序的覆一個頁面就可以顯示整個程序的覆蓋率摘要信息蓋率摘要信息v一眼望去,就可以知道當(dāng)前測試進(jìn)一眼望去,就可以知道當(dāng)前測試進(jìn)度。度。v支持把多次測試的數(shù)據(jù)合并支持把多次測試的數(shù)據(jù)合并Copyright McCabe & Associates 1998在線測試覆蓋率在線測試覆蓋率: : 覆
18、蓋率趨勢覆蓋率趨勢v知道覆蓋率的增加情知道覆蓋率的增加情況況v確定何時達(dá)到覆蓋率確定何時達(dá)到覆蓋率的峰值點的峰值點v交互式,可簡化測試交互式,可簡化測試用例的生成用例的生成v保證測量效率前提下保證測量效率前提下縮短測量次數(shù)和時間縮短測量次數(shù)和時間Copyright McCabe & Associates 1998覆蓋率覆蓋率 測試結(jié)果:測試結(jié)果:v發(fā)現(xiàn)程序中的死代碼發(fā)現(xiàn)程序中的死代碼v提高測試覆蓋率提高測試覆蓋率v有有 ?% 沒有測量?沒有測量?v覆蓋率可視化覆蓋率可視化v實時動態(tài)顯示實時動態(tài)顯示v但是但是 v一些軟件非常關(guān)鍵一些軟件非常關(guān)鍵 基本塊覆蓋并不適用基本塊覆蓋并不適用 于所
19、有的工業(yè)場合于所有的工業(yè)場合如果只有大約如果只有大約30%的覆蓋率,這樣的測試還遠(yuǎn)遠(yuǎn)不夠!的覆蓋率,這樣的測試還遠(yuǎn)遠(yuǎn)不夠!高亮顯示執(zhí)行過的代碼高亮顯示執(zhí)行過的代碼 重點檢查部分函數(shù),審查未執(zhí)行過的代碼行的執(zhí)行條件重點檢查部分函數(shù),審查未執(zhí)行過的代碼行的執(zhí)行條件Copyright McCabe & Associates 1998DC-DC-決策覆蓋決策覆蓋包含決策覆蓋和語句覆蓋包含決策覆蓋和語句覆蓋DC Report=Overall Report Level B, Decision Coverage, Summary Metrics Total : 4 Fully Covered : 2
20、 50% Partially Covered : 1 25% Not Covered : 1 25%=1 *Unit greatest_common_divisor.c in /u7/sid/do178b/gcd/ Unit greatest_common_divisor.c Level B (DC) Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% - 1 *Function greatest_common_divisor unsigned greates
21、t_common_divisor (unsigned, unsigned) Function greatest_common_divisor Level B (DC) Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% - ( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor (unsigned a, unsigned b) Was Entered 2 *Dec
22、ision line 10 = A_WHILE: 10: while (a_working != b_working) T: Not Executed F: Was Executed 3 *Decision line 12 = AN_IF 12: if (a_working b_working) T: Not Executed F: Not Executed ( 4) Coverage line 21-2 = A_FUNCTION_EXIT: 21-2: return a_working; Was Exitedv語句覆蓋摘要:語句覆蓋摘要:v 程序的每一條語句被執(zhí)行了至少一次程序的每一條語句被
23、執(zhí)行了至少一次v決策覆蓋摘要:決策覆蓋摘要:v 程序中的每一個進(jìn)入,退出點被執(zhí)行了至少一程序中的每一個進(jìn)入,退出點被執(zhí)行了至少一次,程序中的每一個決策的所有結(jié)果都至少出現(xiàn)次,程序中的每一個決策的所有結(jié)果都至少出現(xiàn)過一次。過一次。Copyright McCabe & Associates 1998語句覆蓋語句覆蓋/ /決策覆蓋詳述決策覆蓋詳述( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor Was Entered 2 *Coverage line 12 = A_SEGMENT: 12:
24、 if (a_working b_working) Not Executed 3 *Coverage line 14 = A_SEGEMENT: 14: a_working -= b_working; Not Executed( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor Was Entered 2 *Decision line 10 = A_WHILE: 10: while (a_working != b_working) T: Not Executed F: Was Executed
25、3 *Decision line 12 = AN_IF 12: if (a_working b_working) T: Not Executed F: Not Executed語句覆蓋語句覆蓋決策覆蓋決策覆蓋Copyright McCabe & Associates 1998什么是什么是MCDCMCDC覆蓋?如何進(jìn)行?覆蓋?如何進(jìn)行?(MCDCMCDC覆蓋不是執(zhí)行了什么代碼,而是在什么條件下覆蓋不是執(zhí)行了什么代碼,而是在什么條件下執(zhí)行了代碼,以及為什么執(zhí)行它?)執(zhí)行了代碼,以及為什么執(zhí)行它?)范例:范例: if (cond 1) or (cond 2) and (cond 3)then
26、 A B Celse X Y Z希望得到的報告:希望得到的報告:cond 1cond 2cond 3branch T F F F T F T T F F T F 等等Copyright McCabe & Associates 1998MCDCMCDC覆蓋覆蓋條件決策覆蓋條件決策覆蓋v條件決策覆蓋率摘要:條件決策覆蓋率摘要:v 每一個進(jìn)入,退出點被執(zhí)行每一個進(jìn)入,退出點被執(zhí)行 過至少一次,每過至少一次,每一個決策都取得過它所有的可能結(jié)果的值至少一一個決策都取得過它所有的可能結(jié)果的值至少一次,每一個決策中的每一個條件都曾經(jīng)獨立的影次,每一個決策中的每一個條件都曾經(jīng)獨立的影響決策的結(jié)果至少一
27、次,獨立影響的含義是指在響決策的結(jié)果至少一次,獨立影響的含義是指在其他條件不變的情況下改變某一個條件。其他條件不變的情況下改變某一個條件。MCDC Report=Overall Report Level A, Multiple Condition Decision Coverage, Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25%Conditions : 4 Fully Covered : 2 50% Partially Covered : 1 25% N
28、ot Covered : 1 25%=1 *Unit greatest_common_divisor.c in /u7/sid/do178b/gcd/ Unit greatest_common_divisor.c Level A (MCDC) Summary Metrics Total : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% Conditions : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% -
29、 1 *Function greatest_common_divisor unsigned greatest_common_divisor (unsigned, unsigned) Function greatest_common_divisor Level A (MCDC) Summary Metrics Decisions : 4 Fully Covered : 2 50% Partially Covered : 1 25% Not Covered : 1 25% Conditions : 4 Fully Covered : 2 50% Partially Covered : 1 25%
30、Not Covered : 1 25% - ( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: unsigned greatest_common_divisor (unsigned a, unsigned b) Was Entered 2 *Decision line 10 = A_WHILE: 10.1: a_working != b_working Truth Table: + 0: F-f 1: T-tIndependece Tests: True False - - * 10.1: 1: T-t + 0: F-f 3 *Decision line 1
31、2 = AN_IF: 12.1: a_working b_working Truth Table: 0: F-f 1: T-tIndependece Tests: True False - - * 10.1: 1: T-t 0: F-f ( 4) Coverage line 21-2 = A_FUNCTION_EXIT: 21-2: return a_working; Was ExitedCopyright McCabe & Associates 1998MCDC MCDC 覆蓋率詳述覆蓋率詳述 ( 1) Coverage line 5 = A_FUNCTION_ENTRY: 5: u
32、nsigned greatest_common_divisor (unsigned a, unsigned b) Was Entered 2 *Decision line 10 = A_WHILE: 10.1: a_working != b_working Truth Table: + 0: F-f 1: T-tIndependece Tests: True False - - * 10.1: 1: T-t + 0: F-f 3 *Decision line 12 = AN_IF: 12.1: a_working b_working Truth Table: 0: F-f 1: T-tCopy
33、right McCabe & Associates 1998覆蓋率趨勢覆蓋率趨勢一個實際的例子一個實際的例子工程測試花了工程測試花了6個小時達(dá)到個小時達(dá)到 30%覆蓋率覆蓋率一系列同樣的測試花費了一系列同樣的測試花費了48小時小時增加了增加了 37%覆蓋率覆蓋率問題:問題:你的測試中是否有一些重復(fù)的測試?你的測試中是否有一些重復(fù)的測試?如果沒有覆蓋率趨勢顯示,你測試中會有多如果沒有覆蓋率趨勢顯示,你測試中會有多少天還是多少小時在做無用功?少天還是多少小時在做無用功?Copyright McCabe & Associates 1998覆蓋率覆蓋率: : 優(yōu)點優(yōu)點v提高測試效率提高
34、測試效率v通過覆蓋率趨勢,去除不必要的測試通過覆蓋率趨勢,去除不必要的測試v通過覆蓋率趨勢,減少測試次數(shù),測試更有效率通過覆蓋率趨勢,減少測試次數(shù),測試更有效率v實時動態(tài)顯示覆蓋率,簡化測試用例生成過程實時動態(tài)顯示覆蓋率,簡化測試用例生成過程v在一個實時運行的目標(biāo)系統(tǒng)中,確??梢燥@示詳細(xì)的軟件運行過程在一個實時運行的目標(biāo)系統(tǒng)中,確保可以顯示詳細(xì)的軟件運行過程v指出嵌入式系統(tǒng)中沒有得到足夠測量的部分指出嵌入式系統(tǒng)中沒有得到足夠測量的部分-讓你清楚的知道要測量什么地方讓你清楚的知道要測量什么地方v提高產(chǎn)品質(zhì)量提高產(chǎn)品質(zhì)量v發(fā)現(xiàn)沒有測量過的部分發(fā)現(xiàn)沒有測量過的部分v清楚的描述你的代碼被檢驗到了什么程
35、度清楚的描述你的代碼被檢驗到了什么程度v符合最嚴(yán)格的工業(yè)軟件測試標(biāo)準(zhǔn):有利于通過符合最嚴(yán)格的工業(yè)軟件測試標(biāo)準(zhǔn):有利于通過ISO,醫(yī)療器材和航空器材的認(rèn)證。醫(yī)療器材和航空器材的認(rèn)證。v提供的報告可以直接在對測試過程和測試條件描述的文檔中使用提供的報告可以直接在對測試過程和測試條件描述的文檔中使用Copyright McCabe & Associates 1998Trace32/性能分析特點性能分析特點v最優(yōu)化的性能最優(yōu)化的性能優(yōu)化關(guān)鍵函數(shù)的運算法則優(yōu)化關(guān)鍵函數(shù)的運算法則高效地優(yōu)化調(diào)用接口高效地優(yōu)化調(diào)用接口糾正任務(wù)的優(yōu)先權(quán)糾正任務(wù)的優(yōu)先權(quán)v可視化可視化即時即時,監(jiān)控超過監(jiān)控超過 C/C+
36、函數(shù)和任務(wù)函數(shù)和任務(wù)統(tǒng)計分析統(tǒng)計分析實時測試實時測試多窗口顯示函數(shù)和調(diào)用性能分析顯示:多窗口顯示函數(shù)和調(diào)用性能分析顯示:函數(shù)活動函數(shù)活動調(diào)用顯示調(diào)用顯示Copyright McCabe & Associates 1998Trace32/Trace32/性能分析性能分析lFunction Analysis Min. and max. time , Average , Total Time Passes Include and exclude time lLink Analysis Callers Min. and max. times Calls lFunction Nesting Sh
37、ows function call hierarchy Time suspend in subroutines Copyright McCabe & Associates 1998Trace32/Trace32/性能分析性能分析lFunction Timechart View critical program paths Documentation lDuration Execution time Response time lDistance Time between samples lDistribution Interface analysis Interrupt analysi
38、s System state analysis Statistical analysis Copyright McCabe & Associates 1998TRACE32/TRACE32/性能性能任務(wù)性能任務(wù)性能函數(shù)性能函數(shù)性能調(diào)用關(guān)系調(diào)用關(guān)系Copyright McCabe & Associates 1998 性能分析性能分析Identify execution bottlenecks atTask and Function LevelsMeasure critical software timing, true minimum and maximum execution
39、timesIdentify where your code is really spending its execution time!Observe yourreal Task and Function NamesCopyright McCabe & Associates 1998調(diào)用關(guān)系調(diào)用關(guān)系Copyright McCabe & Associates 1998性能分析和優(yōu)化事例性能分析和優(yōu)化事例v發(fā)現(xiàn)關(guān)鍵任務(wù)執(zhí)行太慢,不滿足要求,速度反常?發(fā)現(xiàn)關(guān)鍵任務(wù)執(zhí)行太慢,不滿足要求,速度反常?v把兩個函數(shù)每個速度提高把兩個函數(shù)每個速度提高10%v發(fā)現(xiàn)占用時間多和調(diào)用頻繁的代碼,把它
40、們發(fā)現(xiàn)占用時間多和調(diào)用頻繁的代碼,把它們 in-line,性能提高了性能提高了15%v把一個任務(wù)速度提高把一個任務(wù)速度提高8%v整個系統(tǒng)性能提高整個系統(tǒng)性能提高 20%v結(jié)果:結(jié)果:性能符合要求,擊敗競爭對手性能符合要求,擊敗競爭對手得到大的定單,市場分額增加得到大的定單,市場分額增加不用進(jìn)行昂貴的硬件升級和重新設(shè)計不用進(jìn)行昂貴的硬件升級和重新設(shè)計收益估計?收益估計?Copyright McCabe & Associates 1998性能分析性能分析: : 好處好處v一次可同時測量多達(dá)上萬個函數(shù)一次可同時測量多達(dá)上萬個函數(shù)生產(chǎn)率提高,再也不用憑猜測進(jìn)行測量生產(chǎn)率提高,再也不用憑猜測進(jìn)行
41、測量不用多次進(jìn)行復(fù)雜枯燥的設(shè)置和測量。不用多次進(jìn)行復(fù)雜枯燥的設(shè)置和測量。v精確度提高精確度提高非采樣方式,收集全部數(shù)據(jù),完全精確非采樣方式,收集全部數(shù)據(jù),完全精確 同時監(jiān)視整個程序,不用憑猜測選擇測量部分同時監(jiān)視整個程序,不用憑猜測選擇測量部分上下文相關(guān)跟蹤,時間誤差不大于上下文相關(guān)跟蹤,時間誤差不大于50nSv易于理解易于理解以不同的級別顯示性能數(shù)據(jù)(函數(shù)級,任務(wù)級)以不同的級別顯示性能數(shù)據(jù)(函數(shù)級,任務(wù)級)組織嚴(yán)密的性能數(shù)據(jù)顯示簡明易讀。組織嚴(yán)密的性能數(shù)據(jù)顯示簡明易讀。Copyright McCabe & Associates 1998 內(nèi)存分析特點內(nèi)存分析特點 v提前故障警告提前
42、故障警告動態(tài)內(nèi)存分配分析動態(tài)內(nèi)存分配分析識別內(nèi)存漏洞識別內(nèi)存漏洞查出無用的內(nèi)存區(qū)域查出無用的內(nèi)存區(qū)域知道真正的內(nèi)存分配情況知道真正的內(nèi)存分配情況v可視化的內(nèi)存錯誤提示可視化的內(nèi)存錯誤提示當(dāng)出現(xiàn)錯誤時識別精確的邏輯關(guān)系當(dāng)出現(xiàn)錯誤時識別精確的邏輯關(guān)系準(zhǔn)確地識別每一個錯誤準(zhǔn)確地識別每一個錯誤精確定位內(nèi)存錯誤精確定位內(nèi)存錯誤v信心信心在程序運行失敗之前偵測問題的所在在程序運行失敗之前偵測問題的所在Copyright McCabe & Associates 1998內(nèi)存分析內(nèi)存分析v顯示分配的內(nèi)存塊的大小顯示分配的內(nèi)存塊的大小v檢測內(nèi)存泄露檢測內(nèi)存泄露v檢測內(nèi)存錯誤檢測內(nèi)存錯誤v“嵌入式軟件測試
43、總是要花太多的時間,嵌入式軟件測試總是要花太多的時間, 并且沒有進(jìn)行足夠的測試,這是由于軟件開并且沒有進(jìn)行足夠的測試,這是由于軟件開發(fā)者和測試者缺乏可以簡化測試的工具,或工具很難使用。發(fā)者和測試者缺乏可以簡化測試的工具,或工具很難使用。” David Shear - Sr. Analyst, Embedded Systems ResearchCopyright McCabe & Associates 1998內(nèi)存分析顯示內(nèi)存分析顯示分配情況分配情況內(nèi)存錯誤內(nèi)存錯誤相應(yīng)的源代碼相應(yīng)的源代碼Copyright McCabe & Associates 1998顯示內(nèi)存分配情況顯示內(nèi)存
44、分配情況Copyright McCabe & Associates 1998顯示內(nèi)存顯示內(nèi)存 相應(yīng)的源代碼相應(yīng)的源代碼Copyright McCabe & Associates 1998測試內(nèi)存測試內(nèi)存: : 優(yōu)點優(yōu)點v了解程序內(nèi)存分配的真實情況了解程序內(nèi)存分配的真實情況測量內(nèi)存使用情況,發(fā)現(xiàn)對內(nèi)存的不正常使用測量內(nèi)存使用情況,發(fā)現(xiàn)對內(nèi)存的不正常使用在系統(tǒng)崩潰前發(fā)現(xiàn)內(nèi)存泄露錯誤在系統(tǒng)崩潰前發(fā)現(xiàn)內(nèi)存泄露錯誤v發(fā)現(xiàn)內(nèi)存分配錯誤發(fā)現(xiàn)內(nèi)存分配錯誤精確顯示發(fā)生錯誤時的上下文情況精確顯示發(fā)生錯誤時的上下文情況指出發(fā)生錯誤的原由指出發(fā)生錯誤的原由無須做痛苦的代碼跟蹤,就可以發(fā)現(xiàn)錯誤無須做痛苦
45、的代碼跟蹤,就可以發(fā)現(xiàn)錯誤v在問題出現(xiàn)前發(fā)現(xiàn)征兆在問題出現(xiàn)前發(fā)現(xiàn)征兆Copyright McCabe & Associates 1998 lWhat is called Trace ? lWhat function is Trace ?lHow many components are included in Trace ? Trace buffer memory Logic Breakpoint Event Breakpoint Logic Trigger(Input and output trigger and External Trigger) Context Tracking S
46、ystem(CTS) 邏輯觸發(fā)跟綜代碼分析的特點邏輯觸發(fā)跟綜代碼分析的特點Copyright McCabe & Associates 1998External Trigger Inputsl2 inputs each with 8 channels l2 trigger qualifiers for each trigger level and channel group lEach channel group can be assigned 2 trigger events for each level, definable using boolean formulae Copyri
47、ght McCabe & Associates 1998Events lFree format definition of external trigger events lFree Format Definition of Data EventslData events can be specified with constants, masks, range or boolean formulae. lHex and Mnemonic Display of Trace DataCopyright McCabe & Associates 1998Graphic Display
48、lReal time display lTracking to List Windows lGraphical Data Display Show A/D Conversion Visualize Program Flow lComplex Search and Compare FunctionslSave and Reload of Trace DatalPC Display on Real-Time EmulationCopyright McCabe & Associates 1998Trigger Outputsl3 freely programmable outputs lCy
49、cle signal lRUN signal lBNC connector for oscilloscope trigger Copyright McCabe & Associates 1998Trigger UnitlAll output operators and input variables can be input in symbolic form. The target program symbols can also be used. lFree Format Definition of Data, Address and Trigger EventslTime and
50、Event Measurements with up to 3 CounterslThere are 3 40 bit counters available for event measurement or event triggering. All counters are re-triggerable and can be evaluated as a part of an expression in the trigger sequences. Each counter can be programmed as a timer for timing measurements or an
51、event counter. Copyright McCabe & Associates 1998Trigger Unitl3 Universal Counters - 40 Bit Event count 1 to 1.1 E + 12 Cycles 1 to 1.1 E + 12 Time 100ns to 1.3 days Retriggerable Selective release Trigger event when counter is zero Definition of time and event windows Copyright McCabe & Ass
52、ociates 1998Trigger UnitlAll Counters can be read on the flylTrigger Monitor A display of the count values, the trigger values, the trigger levels and the trigger flags is available in the trigger monitor window. lTrigger Flags Independent of the trigger levels, there are 3 freely programmable trigg
53、er flags. These flags can be read during triggering and can be used as input variables by the trigger sequencer. Copyright McCabe & Associates 1998 input variableslREAD, USERDATA, OPFETCH CPU status lPROGBREAK program breakpoint lLINE high-level line number and SPOT spot point lREADBREAK data re
54、ad breakpoint lWRITEBREAK data write breakpoint lA,B,C address points lTRIGG0,TRIGG1 bus trigger events lTRIGGER trigger events (3 per level) lNMI, RESET trigger events from the CPU lFULL trace memory full lREAD, WRITTEN read or write flag and MAIN main process lBREAK break event and TIMEOUT timeout
55、 signal lSYNCH synchronous trigger and ASYNCH asychronous trigger lECOUNT universal counter zero and DLATCH task monitor Copyright McCabe & Associates 1998 Output FunctionslTRACE trace release lTRACEON trace memory on and TRACEOFF trace memory off lGOTO change trigger level lFLAGON flag on and F
56、LAGOFF flag off lFLAGTOGGLE flag TOGGLE lTRIGG0,TRIGG1 triggering via ICEBUS lMARKERA.MARKERC markers in the TRACE memory lBREAK trigger emulator and STOP break Emulator lSPOT spotpoint emulator lEXCEPTION trigger exception generator lRESTART reload counter and ENABLE enable counter release lOUT0.OU
57、T2 trigger outputs (test probe) lDLATCH task monitor and LEVEL level control Copyright McCabe & Associates 1998Logic and Event BreakpointLogic and Event BreakpointlExample for Logic and Event Breakpoint When Address=0 xffff OR Address=0 xffff0000 AND Read AND Trace memory Full Then Break If Coun
58、ter Overflow XOR SYNCH Trigger While Address 0 x10000 Write Then BREAK trigger emulator AND STOP break Emulator lEvent And Logic Level觸發(fā)器設(shè)計范例觸發(fā)器設(shè)計范例Copyright McCabe & Associates 1998DistributionlInterface analysis lInterrupt analysis lSystem state analysis lStatistical analysis lDistribution Tim
59、echartslTiming of system states Copyright McCabe & Associates 1998CTS Context Tracking System l In order to find out which instructions, data or system states had caused malfunctioning of the target system it was necessary to spend a lot of time analysing the trace listing. lThe context tracking
60、 system - CTS for short - now allows to recreate the state of the target system at a selected point based on the information sampled in the trace buffer. From this starting point the program steps previously recorded in real time in the trace memory can be debugged again. lTracking System (CTS) uses the information from the trace analyzer with the help of an instruction set simulator to generate system states related to the cursor position in the trace buffer. You can single step a program part, which was executed before
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)園區(qū)改造拆除協(xié)議
- 2025年餐巾布行業(yè)深度研究分析報告
- 凈化抹紙行業(yè)深度研究報告
- 寵物運輸安全協(xié)議樣本
- 2025年度扶貧電商合作推廣協(xié)議
- 2012版地勘合同范本
- 信貸居間協(xié)議合同范本
- 快餐店裝修合同樣本
- 2025年度體育產(chǎn)業(yè)就業(yè)協(xié)議書范本(含賽事運營)
- 工業(yè)固廢處理可行性研究報告
- 第22課 現(xiàn)代科技革命和產(chǎn)業(yè)發(fā)展(課件)-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 2024年南京科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測試題庫完整
- 家長會課件:小學(xué)三年級家長會 課件
- 醫(yī)院專業(yè)技術(shù)年度考核總結(jié)報告
- 2024中考道法時政熱點《中國外交大事大盤點》課件
- 小學(xué)生國家文化安全教育
- 2024年消防初級考試模擬試題和答案
- 小學(xué)五年級奧數(shù)競賽試題(含答案)
- Unit-3-Reading-and-thinking課文詳解課件-高中英語人教版必修第二冊
- 品牌服裝設(shè)計課件
- 小學(xué)六年級美術(shù)期末試卷及答案課件
評論
0/150
提交評論