版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Copyright McCabe & Associates 1998哈爾濱工業(yè)大學(xué)深圳研究院北京旋極信息技術(shù)有限公司深圳旋極歷通科技有限公司 肖 敦 鶴Copyright McCabe & Associates 1998v 嵌入式軟件在線測(cè)試和分析工具在嵌入式系統(tǒng)開(kāi)發(fā)中的作用嵌入式軟件在線測(cè)試和分析工具在嵌入式系統(tǒng)開(kāi)發(fā)中的作用v 嵌入式軟件在線測(cè)試的內(nèi)容,方法與作用嵌入式軟件在線測(cè)試的內(nèi)容,方法與作用 1: Coverage analysis 2: Performance analysis 3: Logic trigger and trace analysis 4: Memor
2、y analysis 5: RTOS analysisv 嵌入式軟件在線測(cè)試和分析工具嵌入式軟件在線測(cè)試和分析工具 1: TRACE32 - ICE 2: TRACE32 - FIRE 3: TRACE32 - ICD議議 程程Copyright McCabe & Associates 1998 系統(tǒng)效率為什么如此低,問(wèn)題在哪里?系統(tǒng)效率為什么如此低,問(wèn)題在哪里? 系統(tǒng)采集的數(shù)據(jù)與現(xiàn)場(chǎng)相差甚遠(yuǎn),原因何在?系統(tǒng)采集的數(shù)據(jù)與現(xiàn)場(chǎng)相差甚遠(yuǎn),原因何在? 系統(tǒng)運(yùn)行中,時(shí)常復(fù)位,硬件,軟件工程師百思不系統(tǒng)運(yùn)行中,時(shí)常復(fù)位,硬件,軟件工程師百思不得其解?得其解? 系統(tǒng)軟件隨機(jī)跑飛,何處使然系統(tǒng)軟件隨
3、機(jī)跑飛,何處使然 ? 如何捕捉系統(tǒng)軟件隨機(jī)和偶然故障如何捕捉系統(tǒng)軟件隨機(jī)和偶然故障 ?無(wú)計(jì)可施???無(wú)計(jì)可施!我咋辦那? Copyright McCabe & Associates 1998真實(shí)世界中的復(fù)雜嵌入式軟件真實(shí)世界中的復(fù)雜嵌入式軟件結(jié)果結(jié)果:v金融在線事務(wù)處理系統(tǒng)癱瘓金融在線事務(wù)處理系統(tǒng)癱瘓v電話交換網(wǎng)絡(luò)癱瘓電話交換網(wǎng)絡(luò)癱瘓v電話系統(tǒng)崩潰,丟失了五千萬(wàn)次呼叫電話系統(tǒng)崩潰,丟失了五千萬(wàn)次呼叫v電腦控制機(jī)場(chǎng)行李運(yùn)送系統(tǒng)出現(xiàn)故障,行李延遲交付或亂成一電腦控制機(jī)場(chǎng)行李運(yùn)送系統(tǒng)出現(xiàn)故障,行李延遲交付或亂成一團(tuán)。團(tuán)。v更多的電路板,更多的軟件,更加復(fù)雜!更多的電路板,更多的軟件,更加復(fù)雜!
4、Copyright McCabe & Associates 1998軟件質(zhì)量低劣所付出的代價(jià):軟件質(zhì)量低劣所付出的代價(jià):如果關(guān)鍵系統(tǒng)出現(xiàn)故障?如果關(guān)鍵系統(tǒng)出現(xiàn)故障?v商務(wù)飛機(jī)墜毀商務(wù)飛機(jī)墜毀v反導(dǎo)彈防衛(wèi)系統(tǒng)無(wú)法工作反導(dǎo)彈防衛(wèi)系統(tǒng)無(wú)法工作v核反應(yīng)堆發(fā)生核泄露核反應(yīng)堆發(fā)生核泄露v運(yùn)送衛(wèi)星的火箭在空中爆炸運(yùn)送衛(wèi)星的火箭在空中爆炸v導(dǎo)彈追蹤衛(wèi)星報(bào)告了錯(cuò)誤的方位導(dǎo)彈追蹤衛(wèi)星報(bào)告了錯(cuò)誤的方位v Copyright McCabe & Associates 1998我們已認(rèn)識(shí)到軟件測(cè)試重要性我們已認(rèn)識(shí)到軟件測(cè)試重要性但新的困難又出現(xiàn)了但新的困難又出現(xiàn)了! !v軟件的測(cè)試不如硬件板卡測(cè)試普遍v測(cè)
5、試工作缺乏可度量的管理手段。v軟件的功能性測(cè)試不夠完善,需要新的方法的補(bǔ)充。v嵌入式系統(tǒng)代碼量日益增多,測(cè)試難度增加v系統(tǒng)越復(fù)雜,測(cè)試越復(fù)雜,風(fēng)險(xiǎn)越大v Copyright McCabe & Associates 1998實(shí)時(shí)在線嵌入式系統(tǒng)與仿真環(huán)境不同實(shí)時(shí)在線嵌入式系統(tǒng)與仿真環(huán)境不同W. Wayt GibbsStaff Writer, Scientific Americanv實(shí)時(shí)系統(tǒng)中的錯(cuò)誤通常很難找到原因,實(shí)時(shí)系統(tǒng)中的錯(cuò)誤通常很難找到原因,因?yàn)?,就象你的?chē)上的發(fā)動(dòng)機(jī)發(fā)出奇怪因?yàn)?,就象你的?chē)上的發(fā)動(dòng)機(jī)發(fā)出奇怪的聲音一樣,它只在某種條件下才會(huì)出的聲音一樣,它只在某種條件下才會(huì)出現(xiàn)?,F(xiàn)。
6、v故障在仿真環(huán)境中無(wú)法再現(xiàn)。故障在仿真環(huán)境中無(wú)法再現(xiàn)。結(jié)論:結(jié)論:我們迫切需要采用合適的工具,從單元、集成、我們迫切需要采用合適的工具,從單元、集成、系統(tǒng)、現(xiàn)場(chǎng)等各個(gè)階段,對(duì)嵌入系統(tǒng)的軟件進(jìn)系統(tǒng)、現(xiàn)場(chǎng)等各個(gè)階段,對(duì)嵌入系統(tǒng)的軟件進(jìn)行實(shí)時(shí)在線測(cè)試和分析,保證系統(tǒng)的性能和可靠行實(shí)時(shí)在線測(cè)試和分析,保證系統(tǒng)的性能和可靠性。性。Copyright McCabe & Associates 1998軟件測(cè)試方法概述軟件測(cè)試方法概述靜態(tài)測(cè)試靜態(tài)測(cè)試動(dòng)態(tài)測(cè)試動(dòng)態(tài)測(cè)試編程標(biāo)準(zhǔn)編程標(biāo)準(zhǔn)程序復(fù)雜度度量程序復(fù)雜度度量白盒測(cè)試白盒測(cè)試黑盒測(cè)試黑盒測(cè)試語(yǔ)句覆蓋語(yǔ)句覆蓋判定覆蓋判定覆蓋條件覆蓋條件覆蓋判定判定/條件
7、覆蓋條件覆蓋等價(jià)分類法等價(jià)分類法邊緣值分析法邊緣值分析法因果圖法因果圖法 錯(cuò)誤推測(cè)法錯(cuò)誤推測(cè)法條件組合覆蓋條件組合覆蓋回歸測(cè)試回歸測(cè)試強(qiáng)度測(cè)試強(qiáng)度測(cè)試性能測(cè)試性能測(cè)試恢復(fù)計(jì)劃測(cè)試恢復(fù)計(jì)劃測(cè)試啟動(dòng)啟動(dòng)/停止測(cè)試停止測(cè)試文檔測(cè)試文檔測(cè)試Copyright McCabe & Associates 1998預(yù)期的軟件處理流程(簡(jiǎn)化版)預(yù)期的軟件處理流程(簡(jiǎn)化版)單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試集成和測(cè)試集成和測(cè)試系統(tǒng)測(cè)試和驗(yàn)證系統(tǒng)測(cè)試和驗(yàn)證用戶安裝用戶安裝要求要求分
8、析分析/設(shè)計(jì)設(shè)計(jì)Copyright McCabe & Associates 1998用用 在線測(cè)試在開(kāi)發(fā)和測(cè)試中在線測(cè)試在開(kāi)發(fā)和測(cè)試中節(jié)省時(shí)間和金錢(qián)節(jié)省時(shí)間和金錢(qián)Unit Test單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元級(jí)開(kāi)發(fā)單元級(jí)開(kāi)發(fā)/測(cè)試測(cè)試:優(yōu)化性能優(yōu)化性能100% 單元覆蓋單元覆蓋刪除內(nèi)存錯(cuò)誤刪除內(nèi)存錯(cuò)誤集成級(jí)測(cè)試集成級(jí)測(cè)試:優(yōu)化性能優(yōu)化性能提高測(cè)試用例的覆蓋提高測(cè)試用例的覆蓋刪除內(nèi)存錯(cuò)誤刪除內(nèi)存錯(cuò)誤系統(tǒng)測(cè)試系統(tǒng)測(cè)試:確認(rèn)是否滿足性能需求確認(rèn)是否滿足性能
9、需求提高覆蓋的性能提高覆蓋的性能縮短整個(gè)測(cè)試時(shí)間縮短整個(gè)測(cè)試時(shí)間集成和測(cè)試集成和測(cè)試系統(tǒng)測(cè)試和驗(yàn)證系統(tǒng)測(cè)試和驗(yàn)證用戶安裝用戶安裝要求要求分析分析/設(shè)計(jì)設(shè)計(jì)Copyright McCabe & Associates 1998過(guò)去情況過(guò)去情況單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試單元代碼編程單元代碼編程/調(diào)試調(diào)試單元級(jí)測(cè)試單元級(jí)測(cè)試集成集成 和測(cè)試和測(cè)試系統(tǒng)測(cè)試系統(tǒng)測(cè)試和驗(yàn)證和驗(yàn)證用戶用戶安裝安裝要求要求分析分析/設(shè)計(jì)設(shè)計(jì)這里發(fā)現(xiàn)這里發(fā)現(xiàn)性能沒(méi)有性能沒(méi)有滿足要求滿足要求在這里發(fā)現(xiàn)在這里發(fā)現(xiàn)了單元級(jí)代了單元級(jí)代碼的問(wèn)題碼的
10、問(wèn)題軟件故障軟件故障 = 多次多次 (4-8) 反復(fù)修改反復(fù)修改技術(shù)支持在這里發(fā)現(xiàn)問(wèn)題技術(shù)支持在這里發(fā)現(xiàn)問(wèn)題進(jìn)度在這里延遲進(jìn)度在這里延遲進(jìn)度在這里延遲進(jìn)度在這里延遲這里有很多問(wèn)題這里有很多問(wèn)題這里并沒(méi)有這里并沒(méi)有作到真正的作到真正的單元級(jí)測(cè)試單元級(jí)測(cè)試系統(tǒng)越復(fù)雜,系統(tǒng)越復(fù)雜,單元越多單元越多功能測(cè)試不能滿功能測(cè)試不能滿足要求足要求Copyright McCabe & Associates 1998軟件打點(diǎn)方式軟件打點(diǎn)方式比較便宜比較便宜可在可在CACHE打開(kāi)下工作打開(kāi)下工作對(duì)目標(biāo)系統(tǒng)影響大(超過(guò)對(duì)目標(biāo)系統(tǒng)影響大(超過(guò)50%)占用目標(biāo)系統(tǒng)資源如,占用目標(biāo)系統(tǒng)資源如,CPU 時(shí)時(shí)間間內(nèi)存,
11、通訊通道等內(nèi)存,通訊通道等缺乏很好的性能分析缺乏很好的性能分析缺乏覆蓋率分析缺乏覆蓋率分析缺乏內(nèi)存分配分析缺乏內(nèi)存分配分析精確度偏低精確度偏低對(duì)目標(biāo)系統(tǒng)影響小(對(duì)目標(biāo)系統(tǒng)影響?。?-15%)不占用目標(biāo)系統(tǒng)資源不占用目標(biāo)系統(tǒng)資源軟件打點(diǎn)技術(shù)軟件打點(diǎn)技術(shù)強(qiáng)大的性能分析強(qiáng)大的性能分析強(qiáng)大的覆蓋率分析強(qiáng)大的覆蓋率分析強(qiáng)大的內(nèi)存分配分析強(qiáng)大的內(nèi)存分配分析價(jià)格較便宜價(jià)格較便宜可在可在CACHE打開(kāi)方式下工作打開(kāi)方式下工作非常精確非常精確不影響目標(biāo)系統(tǒng)(0%)不占用系統(tǒng)資源不用打點(diǎn)有限或沒(méi)有性能分析有限的或沒(méi)有覆蓋率分析沒(méi)有內(nèi)存分配分析無(wú)法在CACHE打開(kāi)方式下工作精確性隨情況變化通過(guò)仿真存儲(chǔ)器工作價(jià)格昂貴
12、純軟件測(cè)試工具純軟件測(cè)試工具純硬件工具純硬件工具仿真器,邏輯分析儀仿真器,邏輯分析儀 硬件輔助軟件測(cè)試工具硬件輔助軟件測(cè)試工具Copyright McCabe & Associates 1998嵌入式軟件在線測(cè)試作用嵌入式軟件在線測(cè)試作用. .v驗(yàn)證測(cè)試結(jié)果,評(píng)估測(cè)試的軟件v指導(dǎo)測(cè)試用例的編寫(xiě)v. 代碼優(yōu)化代碼優(yōu)化v. 查找一個(gè)內(nèi)存查找一個(gè)內(nèi)存 分配錯(cuò)誤分配錯(cuò)誤?Copyright McCabe & Associates 1998123“返回程序員修改”現(xiàn)場(chǎng)故障診斷調(diào)試階段過(guò)程可視化嵌入式軟件在線測(cè)試的內(nèi)容嵌入式軟件在線測(cè)試的內(nèi)容 跟蹤軟件運(yùn)行跟蹤軟件運(yùn)行代碼覆蓋分析及走勢(shì)代碼
13、覆蓋分析及走勢(shì)代碼性能分析代碼性能分析代碼內(nèi)存分析代碼內(nèi)存分析遠(yuǎn)程接觸遠(yuǎn)程接觸真實(shí)故障現(xiàn)場(chǎng)分析真實(shí)故障現(xiàn)場(chǎng)分析COTS analysis solutionCOTS analysis solutionBuilt-in analysisBuilt-in analysis在線測(cè)試在線測(cè)試Copyright McCabe & Associates 1998Coverage AnalysisCoverage AnalysisvMCDC(條件決策覆蓋)條件決策覆蓋)Modified Condition DecisionCoverage - MCDCDecision Coverage - DCCov
14、erage(語(yǔ)句覆蓋)語(yǔ)句覆蓋)Statement Coverage - SCv為何要使用為何要使用MCDC?不是純軟件模擬;而是終端系統(tǒng)的不是純軟件模擬;而是終端系統(tǒng)的監(jiān)視監(jiān)視不僅可以分析哪些代碼執(zhí)行過(guò),而不僅可以分析哪些代碼執(zhí)行過(guò),而且可以分析什么條件執(zhí)行和為什么且可以分析什么條件執(zhí)行和為什么執(zhí)行執(zhí)行一些軟件質(zhì)量關(guān)系到人的生命一些軟件質(zhì)量關(guān)系到人的生命!提供比一般代碼塊覆蓋更詳細(xì)、更提供比一般代碼塊覆蓋更詳細(xì)、更明確的監(jiān)視明確的監(jiān)視滿足特定行業(yè)機(jī)構(gòu)的需求滿足特定行業(yè)機(jī)構(gòu)的需求,如如:FAA 航空航空FDA 醫(yī)療醫(yī)療DOD, 空間技術(shù)空間技術(shù), ISO等等Copyright McCabe &
15、amp; Associates 1998工業(yè)質(zhì)量要求:工業(yè)質(zhì)量要求:根據(jù)應(yīng)用軟件的重要性分為不同的級(jí)別根據(jù)應(yīng)用軟件的重要性分為不同的級(jí)別vB級(jí)級(jí) 危險(xiǎn)的影響危險(xiǎn)的影響需要需要DC測(cè)試測(cè)試差分差分GPS飛機(jī)之間接近感應(yīng)飛機(jī)之間接近感應(yīng)v C級(jí)級(jí) 重要的影響重要的影響需要需要SC測(cè)試測(cè)試無(wú)線數(shù)據(jù)鏈接無(wú)線數(shù)據(jù)鏈接vD級(jí)級(jí) 次要性影響次要性影響需要需要 BBC測(cè)試測(cè)試飛機(jī)內(nèi)環(huán)境控制(空調(diào)溫飛機(jī)內(nèi)環(huán)境控制(空調(diào)溫度等)度等)vE級(jí)級(jí) 沒(méi)有影響沒(méi)有影響函數(shù)進(jìn)入函數(shù)進(jìn)入/退出覆蓋率測(cè)試退出覆蓋率測(cè)試飛機(jī)內(nèi)娛樂(lè)設(shè)施飛機(jī)內(nèi)娛樂(lè)設(shè)施v幾個(gè)規(guī)范和要求的例子:幾個(gè)規(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對(duì)不同級(jí)別覆蓋率測(cè)試的詳細(xì)的報(bào)告對(duì)不同級(jí)別覆蓋率測(cè)試的詳細(xì)的報(bào)告v符合不同級(jí)別的條件:符合不同級(jí)別的條件:vA級(jí)級(jí) 災(zāi)難性的影響災(zāi)難性的影響需要需要MC/DC 測(cè)試測(cè)試引擎控制引擎控制飛行計(jì)算飛行計(jì)算導(dǎo)航處理導(dǎo)航處理Copyright McCabe & Associates 1998通常的基本塊覆蓋率度量方法通常的基本塊覆蓋率度量方法基本塊覆蓋基本塊覆蓋-測(cè)量測(cè)試中測(cè)量測(cè)試中代碼是否已經(jīng)執(zhí)行代碼是否已經(jīng)執(zhí)行v突出高亮顯示執(zhí)行過(guò)的代碼突出高亮顯示執(zhí)行過(guò)的代碼v在主機(jī)電腦上進(jìn)行源代碼顯示在主機(jī)電腦上進(jìn)行源代碼顯示方法方法v使用使用 p
17、rintf 語(yǔ)句語(yǔ)句v使用調(diào)試工具和設(shè)斷點(diǎn)使用調(diào)試工具和設(shè)斷點(diǎn)v使用硬件工具測(cè)量使用硬件工具測(cè)量v硬件增強(qiáng)型測(cè)量工具硬件增強(qiáng)型測(cè)量工具Copyright McCabe & Associates 1998TRACE32TRACE32/ /覆蓋率覆蓋率: : 摘要顯示摘要顯示v一個(gè)頁(yè)面就可以顯示整個(gè)程序的覆一個(gè)頁(yè)面就可以顯示整個(gè)程序的覆蓋率摘要信息蓋率摘要信息v一眼望去,就可以知道當(dāng)前測(cè)試進(jìn)一眼望去,就可以知道當(dāng)前測(cè)試進(jìn)度。度。v支持把多次測(cè)試的數(shù)據(jù)合并支持把多次測(cè)試的數(shù)據(jù)合并Copyright McCabe & Associates 1998在線測(cè)試覆蓋率在線測(cè)試覆蓋率: : 覆
18、蓋率趨勢(shì)覆蓋率趨勢(shì)v知道覆蓋率的增加情知道覆蓋率的增加情況況v確定何時(shí)達(dá)到覆蓋率確定何時(shí)達(dá)到覆蓋率的峰值點(diǎn)的峰值點(diǎn)v交互式,可簡(jiǎn)化測(cè)試交互式,可簡(jiǎn)化測(cè)試用例的生成用例的生成v保證測(cè)量效率前提下保證測(cè)量效率前提下縮短測(cè)量次數(shù)和時(shí)間縮短測(cè)量次數(shù)和時(shí)間Copyright McCabe & Associates 1998覆蓋率覆蓋率 測(cè)試結(jié)果:測(cè)試結(jié)果:v發(fā)現(xiàn)程序中的死代碼發(fā)現(xiàn)程序中的死代碼v提高測(cè)試覆蓋率提高測(cè)試覆蓋率v有有 ?% 沒(méi)有測(cè)量?沒(méi)有測(cè)量?v覆蓋率可視化覆蓋率可視化v實(shí)時(shí)動(dòng)態(tài)顯示實(shí)時(shí)動(dòng)態(tài)顯示v但是但是 v一些軟件非常關(guān)鍵一些軟件非常關(guān)鍵 基本塊覆蓋并不適用基本塊覆蓋并不適用 于所
19、有的工業(yè)場(chǎng)合于所有的工業(yè)場(chǎng)合如果只有大約如果只有大約30%的覆蓋率,這樣的測(cè)試還遠(yuǎn)遠(yuǎn)不夠!的覆蓋率,這樣的測(cè)試還遠(yuǎn)遠(yuǎn)不夠!高亮顯示執(zhí)行過(guò)的代碼高亮顯示執(zhí)行過(guò)的代碼 重點(diǎn)檢查部分函數(shù),審查未執(zhí)行過(guò)的代碼行的執(zhí)行條件重點(diǎn)檢查部分函數(shù),審查未執(zhí)行過(guò)的代碼行的執(zhí)行條件Copyright McCabe & Associates 1998DC-DC-決策覆蓋決策覆蓋包含決策覆蓋和語(yǔ)句覆蓋包含決策覆蓋和語(yǔ)句覆蓋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語(yǔ)句覆蓋摘要:語(yǔ)句覆蓋摘要:v 程序的每一條語(yǔ)句被執(zhí)行了至少一次程序的每一條語(yǔ)句被
23、執(zhí)行了至少一次v決策覆蓋摘要:決策覆蓋摘要:v 程序中的每一個(gè)進(jìn)入,退出點(diǎn)被執(zhí)行了至少一程序中的每一個(gè)進(jìn)入,退出點(diǎn)被執(zhí)行了至少一次,程序中的每一個(gè)決策的所有結(jié)果都至少出現(xiàn)次,程序中的每一個(gè)決策的所有結(jié)果都至少出現(xiàn)過(guò)一次。過(guò)一次。Copyright McCabe & Associates 1998語(yǔ)句覆蓋語(yǔ)句覆蓋/ /決策覆蓋詳述決策覆蓋詳述( 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語(yǔ)句覆蓋語(yǔ)句覆蓋決策覆蓋決策覆蓋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希望得到的報(bào)告:希望得到的報(bào)告:cond 1cond 2cond 3branch T F F F T F T T F F T F 等等Copyright McCabe & Associates 1998MCDCMCDC覆蓋覆蓋條件決策覆蓋條件決策覆蓋v條件決策覆蓋率摘要:條件決策覆蓋率摘要:v 每一個(gè)進(jìn)入,退出點(diǎn)被執(zhí)行每一個(gè)進(jìn)入,退出點(diǎn)被執(zhí)行 過(guò)至少一次,每過(guò)至少一次,每一個(gè)決策都取得過(guò)它所有的可能結(jié)果的值至少一一個(gè)決策都取得過(guò)它所有的可能結(jié)果的值至少一次,每一個(gè)決策中的每一個(gè)條件都曾經(jīng)獨(dú)立的影次,每一個(gè)決策中的每一個(gè)條件都曾經(jīng)獨(dú)立的影響決策的結(jié)果至少一
27、次,獨(dú)立影響的含義是指在響決策的結(jié)果至少一次,獨(dú)立影響的含義是指在其他條件不變的情況下改變某一個(gè)條件。其他條件不變的情況下改變某一個(gè)條件。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覆蓋率趨勢(shì)覆蓋率趨勢(shì)一個(gè)實(shí)際的例子一個(gè)實(shí)際的例子工程測(cè)試花了工程測(cè)試花了6個(gè)小時(shí)達(dá)到個(gè)小時(shí)達(dá)到 30%覆蓋率覆蓋率一系列同樣的測(cè)試花費(fèi)了一系列同樣的測(cè)試花費(fèi)了48小時(shí)小時(shí)增加了增加了 37%覆蓋率覆蓋率問(wèn)題:?jiǎn)栴}:你的測(cè)試中是否有一些重復(fù)的測(cè)試?你的測(cè)試中是否有一些重復(fù)的測(cè)試?如果沒(méi)有覆蓋率趨勢(shì)顯示,你測(cè)試中會(huì)有多如果沒(méi)有覆蓋率趨勢(shì)顯示,你測(cè)試中會(huì)有多少天還是多少小時(shí)在做無(wú)用功?少天還是多少小時(shí)在做無(wú)用功?Copyright McCabe & Associates 1998覆蓋率覆蓋率: : 優(yōu)點(diǎn)優(yōu)點(diǎn)v提高測(cè)試效率提高
34、測(cè)試效率v通過(guò)覆蓋率趨勢(shì),去除不必要的測(cè)試通過(guò)覆蓋率趨勢(shì),去除不必要的測(cè)試v通過(guò)覆蓋率趨勢(shì),減少測(cè)試次數(shù),測(cè)試更有效率通過(guò)覆蓋率趨勢(shì),減少測(cè)試次數(shù),測(cè)試更有效率v實(shí)時(shí)動(dòng)態(tài)顯示覆蓋率,簡(jiǎn)化測(cè)試用例生成過(guò)程實(shí)時(shí)動(dòng)態(tài)顯示覆蓋率,簡(jiǎn)化測(cè)試用例生成過(guò)程v在一個(gè)實(shí)時(shí)運(yùn)行的目標(biāo)系統(tǒng)中,確保可以顯示詳細(xì)的軟件運(yùn)行過(guò)程在一個(gè)實(shí)時(shí)運(yùn)行的目標(biāo)系統(tǒng)中,確??梢燥@示詳細(xì)的軟件運(yùn)行過(guò)程v指出嵌入式系統(tǒng)中沒(méi)有得到足夠測(cè)量的部分指出嵌入式系統(tǒng)中沒(méi)有得到足夠測(cè)量的部分-讓你清楚的知道要測(cè)量什么地方讓你清楚的知道要測(cè)量什么地方v提高產(chǎn)品質(zhì)量提高產(chǎn)品質(zhì)量v發(fā)現(xiàn)沒(méi)有測(cè)量過(guò)的部分發(fā)現(xiàn)沒(méi)有測(cè)量過(guò)的部分v清楚的描述你的代碼被檢驗(yàn)到了什么程
35、度清楚的描述你的代碼被檢驗(yàn)到了什么程度v符合最嚴(yán)格的工業(yè)軟件測(cè)試標(biāo)準(zhǔn):有利于通過(guò)符合最嚴(yán)格的工業(yè)軟件測(cè)試標(biāo)準(zhǔn):有利于通過(guò)ISO,醫(yī)療器材和航空器材的認(rèn)證。醫(yī)療器材和航空器材的認(rèn)證。v提供的報(bào)告可以直接在對(duì)測(cè)試過(guò)程和測(cè)試條件描述的文檔中使用提供的報(bào)告可以直接在對(duì)測(cè)試過(guò)程和測(cè)試條件描述的文檔中使用Copyright McCabe & Associates 1998Trace32/性能分析特點(diǎn)性能分析特點(diǎn)v最優(yōu)化的性能最優(yōu)化的性能優(yōu)化關(guān)鍵函數(shù)的運(yùn)算法則優(yōu)化關(guān)鍵函數(shù)的運(yùn)算法則高效地優(yōu)化調(diào)用接口高效地優(yōu)化調(diào)用接口糾正任務(wù)的優(yōu)先權(quán)糾正任務(wù)的優(yōu)先權(quán)v可視化可視化即時(shí)即時(shí),監(jiān)控超過(guò)監(jiān)控超過(guò) C/C+
36、函數(shù)和任務(wù)函數(shù)和任務(wù)統(tǒng)計(jì)分析統(tǒng)計(jì)分析實(shí)時(shí)測(cè)試實(shí)時(shí)測(cè)試多窗口顯示函數(shù)和調(diào)用性能分析顯示:多窗口顯示函數(shù)和調(diào)用性能分析顯示:函數(shù)活動(dòng)函數(shù)活動(dòng)調(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把兩個(gè)函數(shù)每個(gè)速度提高把兩個(gè)函數(shù)每個(gè)速度提高10%v發(fā)現(xiàn)占用時(shí)間多和調(diào)用頻繁的代碼,把它
40、們發(fā)現(xiàn)占用時(shí)間多和調(diào)用頻繁的代碼,把它們 in-line,性能提高了性能提高了15%v把一個(gè)任務(wù)速度提高把一個(gè)任務(wù)速度提高8%v整個(gè)系統(tǒng)性能提高整個(gè)系統(tǒng)性能提高 20%v結(jié)果:結(jié)果:性能符合要求,擊敗競(jìng)爭(zhēng)對(duì)手性能符合要求,擊敗競(jìng)爭(zhēng)對(duì)手得到大的定單,市場(chǎng)分額增加得到大的定單,市場(chǎng)分額增加不用進(jìn)行昂貴的硬件升級(jí)和重新設(shè)計(jì)不用進(jìn)行昂貴的硬件升級(jí)和重新設(shè)計(jì)收益估計(jì)?收益估計(jì)?Copyright McCabe & Associates 1998性能分析性能分析: : 好處好處v一次可同時(shí)測(cè)量多達(dá)上萬(wàn)個(gè)函數(shù)一次可同時(shí)測(cè)量多達(dá)上萬(wàn)個(gè)函數(shù)生產(chǎn)率提高,再也不用憑猜測(cè)進(jìn)行測(cè)量生產(chǎn)率提高,再也不用憑猜測(cè)進(jìn)行
41、測(cè)量不用多次進(jìn)行復(fù)雜枯燥的設(shè)置和測(cè)量。不用多次進(jìn)行復(fù)雜枯燥的設(shè)置和測(cè)量。v精確度提高精確度提高非采樣方式,收集全部數(shù)據(jù),完全精確非采樣方式,收集全部數(shù)據(jù),完全精確 同時(shí)監(jiān)視整個(gè)程序,不用憑猜測(cè)選擇測(cè)量部分同時(shí)監(jiān)視整個(gè)程序,不用憑猜測(cè)選擇測(cè)量部分上下文相關(guān)跟蹤,時(shí)間誤差不大于上下文相關(guān)跟蹤,時(shí)間誤差不大于50nSv易于理解易于理解以不同的級(jí)別顯示性能數(shù)據(jù)(函數(shù)級(jí),任務(wù)級(jí))以不同的級(jí)別顯示性能數(shù)據(jù)(函數(shù)級(jí),任務(wù)級(jí))組織嚴(yán)密的性能數(shù)據(jù)顯示簡(jiǎn)明易讀。組織嚴(yán)密的性能數(shù)據(jù)顯示簡(jiǎn)明易讀。Copyright McCabe & Associates 1998 內(nèi)存分析特點(diǎn)內(nèi)存分析特點(diǎn) v提前故障警告提前
42、故障警告動(dòng)態(tài)內(nèi)存分配分析動(dòng)態(tài)內(nèi)存分配分析識(shí)別內(nèi)存漏洞識(shí)別內(nèi)存漏洞查出無(wú)用的內(nèi)存區(qū)域查出無(wú)用的內(nèi)存區(qū)域知道真正的內(nèi)存分配情況知道真正的內(nèi)存分配情況v可視化的內(nèi)存錯(cuò)誤提示可視化的內(nèi)存錯(cuò)誤提示當(dāng)出現(xiàn)錯(cuò)誤時(shí)識(shí)別精確的邏輯關(guān)系當(dāng)出現(xiàn)錯(cuò)誤時(shí)識(shí)別精確的邏輯關(guān)系準(zhǔn)確地識(shí)別每一個(gè)錯(cuò)誤準(zhǔn)確地識(shí)別每一個(gè)錯(cuò)誤精確定位內(nèi)存錯(cuò)誤精確定位內(nèi)存錯(cuò)誤v信心信心在程序運(yùn)行失敗之前偵測(cè)問(wèn)題的所在在程序運(yùn)行失敗之前偵測(cè)問(wèn)題的所在Copyright McCabe & Associates 1998內(nèi)存分析內(nèi)存分析v顯示分配的內(nèi)存塊的大小顯示分配的內(nèi)存塊的大小v檢測(cè)內(nèi)存泄露檢測(cè)內(nèi)存泄露v檢測(cè)內(nèi)存錯(cuò)誤檢測(cè)內(nèi)存錯(cuò)誤v“嵌入式軟件測(cè)試
43、總是要花太多的時(shí)間,嵌入式軟件測(cè)試總是要花太多的時(shí)間, 并且沒(méi)有進(jìn)行足夠的測(cè)試,這是由于軟件開(kāi)并且沒(méi)有進(jìn)行足夠的測(cè)試,這是由于軟件開(kāi)發(fā)者和測(cè)試者缺乏可以簡(jiǎn)化測(cè)試的工具,或工具很難使用。發(fā)者和測(cè)試者缺乏可以簡(jiǎn)化測(cè)試的工具,或工具很難使用?!?David Shear - Sr. Analyst, Embedded Systems ResearchCopyright McCabe & Associates 1998內(nèi)存分析顯示內(nèi)存分析顯示分配情況分配情況內(nèi)存錯(cuò)誤內(nèi)存錯(cuò)誤相應(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測(cè)試內(nèi)存測(cè)試內(nèi)存: : 優(yōu)點(diǎn)優(yōu)點(diǎn)v了解程序內(nèi)存分配的真實(shí)情況了解程序內(nèi)存分配的真實(shí)情況測(cè)量?jī)?nèi)存使用情況,發(fā)現(xiàn)對(duì)內(nèi)存的不正常使用測(cè)量?jī)?nèi)存使用情況,發(fā)現(xiàn)對(duì)內(nèi)存的不正常使用在系統(tǒng)崩潰前發(fā)現(xiàn)內(nèi)存泄露錯(cuò)誤在系統(tǒng)崩潰前發(fā)現(xiàn)內(nèi)存泄露錯(cuò)誤v發(fā)現(xiàn)內(nèi)存分配錯(cuò)誤發(fā)現(xiàn)內(nèi)存分配錯(cuò)誤精確顯示發(fā)生錯(cuò)誤時(shí)的上下文情況精確顯示發(fā)生錯(cuò)誤時(shí)的上下文情況指出發(fā)生錯(cuò)誤的原由指出發(fā)生錯(cuò)誤的原由無(wú)須做痛苦的代碼跟蹤,就可以發(fā)現(xiàn)錯(cuò)誤無(wú)須做痛苦
45、的代碼跟蹤,就可以發(fā)現(xiàn)錯(cuò)誤v在問(wèn)題出現(xiàn)前發(fā)現(xiàn)征兆在問(wè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ā)跟綜代碼分析的特點(diǎn)邏輯觸發(fā)跟綜代碼分析的特點(diǎn)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è)計(jì)范例觸發(fā)器設(shè)計(jì)范例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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度泥工工程材料采購(gòu)合同樣本4篇
- 二零二五年度實(shí)木門(mén)定制與安裝服務(wù)合同3篇
- 教育機(jī)構(gòu)實(shí)驗(yàn)室的安全管理體系構(gòu)建
- 讓孩子遠(yuǎn)離過(guò)度消費(fèi)家長(zhǎng)的有效引導(dǎo)方法
- 中介合同的法律特征
- 二零二四年度新型環(huán)保門(mén)窗研發(fā)、定制與安裝合同范本3篇
- 2025年度充電樁充電站智能充電與支付系統(tǒng)開(kāi)發(fā)合同3篇
- 2025版智能安全門(mén)窗工程分包合同范本4篇
- 二零二五年度體育賽事贊助合同合3篇
- 二零二五年度城市軌道交通電梯安全運(yùn)行服務(wù)合同3篇
- 第一節(jié)-貨幣資金資料講解
- 如何提高售后服務(wù)的快速響應(yīng)能力
- 北師大版 2024-2025學(xué)年四年級(jí)數(shù)學(xué)上冊(cè)典型例題系列第三單元:行程問(wèn)題“拓展型”專項(xiàng)練習(xí)(原卷版+解析)
- 2023年譯林版英語(yǔ)五年級(jí)下冊(cè)Units-1-2單元測(cè)試卷-含答案
- Unit-3-Reading-and-thinking課文詳解課件-高中英語(yǔ)人教版必修第二冊(cè)
- 施工管理中的文檔管理方法與要求
- DL∕T 547-2020 電力系統(tǒng)光纖通信運(yùn)行管理規(guī)程
- 種子輪投資協(xié)議
- 執(zhí)行依據(jù)主文范文(通用4篇)
- 浙教版七年級(jí)數(shù)學(xué)下冊(cè)全冊(cè)課件
- 華為攜手深圳國(guó)際會(huì)展中心創(chuàng)建世界一流展館
評(píng)論
0/150
提交評(píng)論