在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

代碼的黑盒測(cè)試(上)--目標(biāo)文件測(cè)試Object File Testing

北匯信息POLELINK ? 2022-08-01 14:16 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

聽(tīng)說(shuō),VectorCAST又出新功能了?不需要源碼就可以測(cè)試?

瞎說(shuō),這功能我們一直就有,只不過(guò)哥不在江湖,江湖不多聞而已。

目標(biāo)文件

(一)目標(biāo)文件是什么

我們都知道,一個(gè)C源程序manager.c(是一個(gè)點(diǎn)餐demo程序,且本文對(duì)manager.c的相關(guān)操作都是在Windows平臺(tái)實(shí)現(xiàn)的。)變成可執(zhí)行程序manager.exe,一般經(jīng)歷四個(gè)過(guò)程,分別是預(yù)處理(Prepressing)、編譯(Compilation)、匯編(Assembly)和鏈接(Linking),如下圖所示:

pYYBAGLmMnCAX6NAAABuaBg1Fa8320.png

圖1編譯過(guò)程

目標(biāo)文件是源代碼在經(jīng)過(guò)預(yù)處理、編譯、匯編過(guò)程后輸出的文件(源代碼編譯后但未進(jìn)行鏈接的中間文件),其內(nèi)容至少包含機(jī)器指令代碼,數(shù)據(jù)以及鏈接時(shí)所須要的一些信息。

(二)目標(biāo)文件的結(jié)構(gòu)組成簡(jiǎn)介

目標(biāo)文件中的內(nèi)容信息一般按照不同的屬性,以“節(jié)”(Section)的形式存儲(chǔ),也叫“段”(Segment),它們都表示一個(gè)一定長(zhǎng)度的區(qū)域。

目標(biāo)文件的結(jié)構(gòu)組成主要包含:代碼段 .text(存放機(jī)器指令代碼)、數(shù)據(jù)段 .data(存放已初始化的全局變量和局部靜態(tài)變量的數(shù)據(jù))、.bss段(存放未初始化的全局變量和局部靜態(tài)變量)。

我們通常使用binutils的工具objdump來(lái)查看目標(biāo)文件內(nèi)部的結(jié)構(gòu),以manager.o為例,如下圖2所示。

poYBAGLmMoSALWPKAAMBksiSRDc100.png

圖2 manager.o

二、使用VectorCAST/C++進(jìn)行目標(biāo)文件測(cè)試

VectorCAST/C++ 是Vector公司旗下一款集成的軟件測(cè)試解決方案,可顯著減少驗(yàn)證安全關(guān)鍵型和任務(wù)關(guān)鍵型嵌入式系統(tǒng)所需的測(cè)試C/C++軟件組件的時(shí)間、精力和成本。

VectorCAST/C++ 不僅支持白盒下的功能測(cè)試和結(jié)構(gòu)覆蓋測(cè)試,也支持黑盒下的軟件功能測(cè)試——目標(biāo)文件測(cè)試(Object File Testing)和庫(kù)接口測(cè)試(Library Interface Testing)。

目標(biāo)文件測(cè)試就是使用目標(biāo)文件通過(guò)VectorCAST工具生成測(cè)試套件而進(jìn)行的功能測(cè)試;庫(kù)接口測(cè)試方法是指VectorCAST將解析C/C++頭文件中存在的函數(shù)和方法的定義,并基于這些創(chuàng)建測(cè)試環(huán)境,允許在沒(méi)有可用源代碼的情況下使用現(xiàn)有庫(kù)或DLL創(chuàng)建測(cè)試。本次主要講解VectorCAST/C++的目標(biāo)文件測(cè)試方案,以manager.c源文件為操作對(duì)象,使用GCC編譯器進(jìn)行編譯。

(一)測(cè)試輸入物

1、目標(biāo)文件

a.單個(gè).obj/.o文件生成方式

前提條件:該.c文件“涉及”到的.h文件都能正確引用

gcc -c source.c(默認(rèn)在原路徑下生成一個(gè)同名的.o文件),如下圖3所示。

pYYBAGLmMrmAVLDkAAHa6IA917w362.png

圖3單個(gè)文件manager.o的生成

b.多個(gè).obj/.o文件生成方式

前提條件:每個(gè).c文件“涉及”到的.h文件都能正確引用

gcc -c source1.c source2.c source3.cgcc -c *.c(默認(rèn)在原路徑下生成相應(yīng)同名的.o文件),如下圖4所示。

poYBAGLmMs-AISSiAAHc2QXxwmc803.png

圖4多個(gè)目標(biāo)文件的生成

對(duì)于其他編譯鏈,可以通過(guò)IDE(集成開(kāi)發(fā)環(huán)境)生成項(xiàng)目的目標(biāo)文件。如CodeWarrior,其一般可以通過(guò)其IDE生成相應(yīng)的目標(biāo)文件,如下圖5所示。

pYYBAGLmMtqAAl_uAACULBsGP5g441.png

圖5 CodeWarriors IDE生成相應(yīng)的目標(biāo)文件

2、修改后的源文件

是指刪除了函數(shù)具體實(shí)現(xiàn)的源碼文件(仍包含完整的.h文件),如下圖6所示。

pYYBAGLmMwKAYHfiAAEGIARHjmw831.png

圖6刪去函數(shù)具體實(shí)現(xiàn)后的“manager.c”

3、需求文檔

由于目標(biāo)文件測(cè)試屬于一種軟件黑盒測(cè)試,所以對(duì)于單元測(cè)試級(jí)別的需求文檔的細(xì)致程度可能要達(dá)到詳細(xì)設(shè)計(jì)文檔的程度,甚至更細(xì)致。

如上int Add_Included_Dessert(struct order_type* Order)函數(shù),對(duì)于目標(biāo)文件測(cè)試的單元需求可能這樣描述:

pYYBAGLmMxiATFOtAAB04AImf3g723.png

表 1 Add_Included_Dessert(struct order_type* Order)的單元需求說(shuō)明示例

即需要明確給出了Add_Included_Dessert(struct order_type* Order)函數(shù)的輸入與輸出值。

(二)VectorCAST/C++ 進(jìn)行目標(biāo)文件測(cè)試

1、單元測(cè)試操作步驟:

a.啟動(dòng)工具,設(shè)置工作路徑,創(chuàng)建新工程并命名,選擇正確的編譯鏈(以GCC編譯鏈為例);

b.進(jìn)入創(chuàng)建測(cè)試環(huán)境(8大步)。

Step1:選擇編譯器,已在前面配置好了,直接跳過(guò)。

Step2:命名測(cè)試環(huán)境(默認(rèn)字母大寫,空格為下劃線)。

Step3:測(cè)試方式。選擇目標(biāo)文件測(cè)試方式,然后選擇待測(cè)目標(biāo)文件manager.o。如下圖7所示。

poYBAGLmMzSASxgaAAK6L0TWbOI870.png

圖7選擇待測(cè)目標(biāo)文件“manager.o”

Step4:構(gòu)建選項(xiàng)。要選擇Code Coverage為None,VectorCAST才會(huì)使用之前編譯的目標(biāo)文件。

Step5:本地源代碼文件。使用雙加號(hào)添加包含修改后的源文件所在路徑。

Step6:選擇UUTs和樁。

Step7:User Code可選選項(xiàng)。本實(shí)例不需要,直接跳過(guò)。

Step8:測(cè)試環(huán)境配置概覽。成功構(gòu)建測(cè)試環(huán)境,如下圖8所示。

poYBAGLmM0CAJB3vAADGp0bkhvE147.png

圖8成功構(gòu)建測(cè)試環(huán)境

c.構(gòu)建測(cè)試環(huán)境后,我們就可以根據(jù)測(cè)試需求(功能需求,表1中序號(hào)1),創(chuàng)建和執(zhí)行測(cè)試用例,如下圖9所示。

poYBAGLmM06ARsfXAAE5MwNVP-8528.png

圖9創(chuàng)建、執(zhí)行測(cè)試用例

2、集成測(cè)試

集成測(cè)試工程構(gòu)建內(nèi)容與單元測(cè)試很類似,僅在構(gòu)建測(cè)試環(huán)境的第3步和第6步不同。集成測(cè)試一般會(huì)在第3步將相應(yīng)的多個(gè).o文件同時(shí)加進(jìn)來(lái);第6步將相應(yīng)的多個(gè)修改后的源文件同時(shí)加進(jìn)來(lái)。

然后使用組合測(cè)試功能,將單體測(cè)試用例按照一定的邏輯功能進(jìn)行排列,執(zhí)行組合測(cè)試用例。

三、總結(jié)

目標(biāo)文件測(cè)試過(guò)程中,使用修改后的源代碼進(jìn)行測(cè)試,可以將一些核心算法的代碼實(shí)現(xiàn)部分進(jìn)行刪除,能夠較大程度的避免直接使用源代碼,更好的保護(hù)客戶代碼。

當(dāng)然進(jìn)行目標(biāo)文件測(cè)試的要求比較高。需要完善的測(cè)試需求文檔,對(duì)于單元測(cè)試來(lái)說(shuō),一般需要軟件詳細(xì)設(shè)計(jì)文檔以及單元需求文檔等,對(duì)于軟件集成測(cè)試來(lái)說(shuō),一般需要軟件架構(gòu)設(shè)計(jì)規(guī)范文檔及集成需求文檔等。

此外目標(biāo)文件測(cè)試,只能進(jìn)行功能測(cè)試,沒(méi)有結(jié)構(gòu)覆蓋度。為了得到覆蓋度信息,我們還是要轉(zhuǎn)向白盒測(cè)試。將之前的測(cè)試用例導(dǎo)入到白盒測(cè)試工程中的測(cè)試環(huán)境中去執(zhí)行,獲取覆蓋度。

北匯信息專注于汽車電子測(cè)試,提供專業(yè)的汽車電子測(cè)試系統(tǒng)搭建及測(cè)試咨詢服務(wù);提供完整的汽車新能源測(cè)試服務(wù);提供完整的軟件生命周期的軟件測(cè)試服務(wù)。

VectorCAST/C++作為Vector公司的代碼動(dòng)態(tài)測(cè)試工具,支持自動(dòng)生成測(cè)試用例,提供完善的覆蓋度信息視圖,還可以與Git/SVN/Jekins等工具集成等等。

本次為大家簡(jiǎn)單介紹了VectorCAST/C++在軟件測(cè)試方面的軟件黑盒測(cè)試。后續(xù)將會(huì)為大家?guī)?lái)更多基于VectorCAST/C++的動(dòng)態(tài)測(cè)試相關(guān)內(nèi)容。同時(shí)也歡迎垂詢和溝通,共同探討測(cè)試相關(guān)問(wèn)題。

文中圖片來(lái)源于VectorCAST/C++工具截圖。

參考文獻(xiàn):

[1]《程序員的自我修養(yǎng)—鏈接、裝載與庫(kù)》

[2] VectorCAST/C++工具幫助文檔

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 測(cè)試
    +關(guān)注

    關(guān)注

    8

    文章

    5679

    瀏覽量

    128685
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    “System Level EOS Testing Method”可以翻譯為: “系統(tǒng)級(jí)電性過(guò)應(yīng)力測(cè)試方法”

    “System Level EOS Testing Method”可以翻譯為: “系統(tǒng)級(jí)電性過(guò)應(yīng)力測(cè)試方法”
    的頭像 發(fā)表于 05-05 15:55 ?283次閱讀
    “System Level EOS <b class='flag-5'>Testing</b> Method”可以翻譯為: “系統(tǒng)級(jí)電性過(guò)應(yīng)力<b class='flag-5'>測(cè)試</b>方法”

    S32K311如何在Flash測(cè)試ECC?

    我有一些與目標(biāo) S32K311 的 Flash ECC 相關(guān)的問(wèn)題 - ERM 是否負(fù)責(zé) Code Flash 和 Data Flash ECC 中斷通知? - 我們?nèi)绾卧?Flash 測(cè)
    發(fā)表于 04-14 08:47

    絕緣電阻測(cè)試儀使用方法

    緣電阻測(cè)試儀(Insulationresistance testing instrument)又稱數(shù)字絕緣電阻測(cè)試儀、兆歐表、智能絕緣電阻測(cè)試儀等,是一種常用的儀器設(shè)備,用于測(cè)量電氣設(shè)
    的頭像 發(fā)表于 04-12 10:53 ?921次閱讀
    絕緣電阻<b class='flag-5'>測(cè)試</b>儀使用方法

    局部放電與耐壓測(cè)試

    耐壓測(cè)試,也稱為絕緣強(qiáng)度測(cè)試或hi-pot測(cè)試,是一項(xiàng)評(píng)估電氣產(chǎn)品或組件的電絕緣部分是否具有“足夠的絕緣強(qiáng)度”以處理電壓的測(cè)試。在規(guī)定的時(shí)間內(nèi)施加高于通常施加到絕緣部分的電壓的電壓,以
    的頭像 發(fā)表于 04-07 09:51 ?415次閱讀
    局部放電與耐壓<b class='flag-5'>測(cè)試</b>(<b class='flag-5'>上</b>)

    詳解Object Detection Demo的移植

    一篇移植了 Mediapipe 的 LLM Inference 后,這篇文章我們將繼續(xù)探索 Object Detection Demo 的移植。
    的頭像 發(fā)表于 02-05 13:42 ?445次閱讀
    詳解<b class='flag-5'>Object</b> Detection Demo的移植

    如何測(cè)試諧波減速器的性能

    測(cè)試諧波減速器的性能是一個(gè)綜合性的過(guò)程,涉及多個(gè)關(guān)鍵方面的檢測(cè)。以下是一個(gè)詳細(xì)的測(cè)試步驟和方法: 一、明確測(cè)試目標(biāo) 在進(jìn)行諧波減速器的性能測(cè)試
    的頭像 發(fā)表于 01-21 17:31 ?997次閱讀

    EE-141:ADSP-2106x和ADSP-2116x系列DSP的基準(zhǔn)測(cè)試C代碼

    電子發(fā)燒友網(wǎng)站提供《EE-141:ADSP-2106x和ADSP-2116x系列DSP的基準(zhǔn)測(cè)試C代碼.pdf》資料免費(fèi)下載
    發(fā)表于 01-07 14:25 ?0次下載
    EE-141:ADSP-2106x和ADSP-2116x系列DSP<b class='flag-5'>上</b>的基準(zhǔn)<b class='flag-5'>測(cè)試</b>C<b class='flag-5'>代碼</b>

    什么是回歸測(cè)試_回歸測(cè)試測(cè)試策略

    ? 1、什么是回歸測(cè)試 回歸測(cè)試(Regression testing) 指在發(fā)生修改之后重新測(cè)試先前的測(cè)試以保證修改的正確性。理論
    的頭像 發(fā)表于 11-14 16:44 ?1075次閱讀

    初探AI測(cè)試分析

    在人工智能中,算法不只是用代碼敲出來(lái)這么簡(jiǎn)單的,而是由訓(xùn)練數(shù)據(jù)、標(biāo)簽和神經(jīng)網(wǎng)絡(luò)的結(jié)合產(chǎn)生的,這是機(jī)器學(xué)習(xí)的本質(zhì)。算法本身沒(méi)有直接洞察力,也不能直接像缺陷一樣被修復(fù):它屬于“黑盒開(kāi)發(fā)”。 人工智能系統(tǒng)
    的頭像 發(fā)表于 11-12 10:25 ?1084次閱讀
    初探AI<b class='flag-5'>測(cè)試</b>分析

    端到端測(cè)試用例怎么寫

    編寫端到端測(cè)試用例是確保軟件系統(tǒng)從頭到尾能夠正常工作的關(guān)鍵步驟。以下是一個(gè)詳細(xì)的指南,介紹如何編寫端到端測(cè)試用例: 一、理解端到端測(cè)試 端到端測(cè)試(End-to-End
    的頭像 發(fā)表于 09-20 10:29 ?940次閱讀

    環(huán)路測(cè)試方法有哪幾種

    環(huán)路測(cè)試(Loop Testing)是一種軟件測(cè)試方法,它通過(guò)在軟件內(nèi)部創(chuàng)建循環(huán)來(lái)驗(yàn)證程序的循環(huán)結(jié)構(gòu)是否正確。這種方法特別適用于測(cè)試循環(huán)控制結(jié)構(gòu),如for循環(huán)、while循環(huán)、do-w
    的頭像 發(fā)表于 09-12 14:35 ?1728次閱讀

    Linux內(nèi)核測(cè)試技術(shù)

    。內(nèi)核測(cè)試技術(shù)是實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵手段。本文將詳細(xì)介紹 Linux 內(nèi)核測(cè)試的各種技術(shù),包括單元測(cè)試、集成測(cè)試、功能
    的頭像 發(fā)表于 08-13 13:42 ?1109次閱讀
    Linux內(nèi)核<b class='flag-5'>測(cè)試</b>技術(shù)

    射頻測(cè)試電纜在高密度測(cè)試互聯(lián)的應(yīng)用

    射頻測(cè)試電纜在高密度測(cè)試互聯(lián)中的應(yīng)用是現(xiàn)代電子行業(yè)發(fā)展中不可或缺的一部分,尤其在無(wú)線通信、雷達(dá)、衛(wèi)星通信、航空航天、軍事電子等領(lǐng)域。隨著技術(shù)的不斷進(jìn)步,設(shè)備的集成度越來(lái)越高,對(duì)信號(hào)傳輸?shù)目煽啃院托?/div>
    的頭像 發(fā)表于 07-30 10:37 ?518次閱讀

    IC測(cè)試的定義和基本原理

    測(cè)試,全稱為集成電路測(cè)試(Integrated Circuit Testing),是指對(duì)集成電路的性能、功能和可靠性進(jìn)行測(cè)試的過(guò)程。IC測(cè)試
    的頭像 發(fā)表于 07-10 14:45 ?4258次閱讀

    單元測(cè)試工具TESSY 新版本亮點(diǎn)速覽:提供測(cè)試駕駛艙視圖、超級(jí)覆蓋率、代碼訪問(wèn)分析、增強(qiáng)覆蓋率審查

    TESSY最新版本v5.1現(xiàn)已發(fā)布! 該版本可用于Windows和Linux,并提供各種有趣的新功能。一個(gè)突出的新功能是新的“測(cè)試駕駛艙視圖”,它可用于從整個(gè)軟件中確定要測(cè)試的源代碼文件
    的頭像 發(fā)表于 07-08 16:20 ?765次閱讀
    單元<b class='flag-5'>測(cè)試</b>工具TESSY 新版本亮點(diǎn)速覽:提供<b class='flag-5'>測(cè)試</b>駕駛艙視圖、超級(jí)覆蓋率、<b class='flag-5'>代碼</b>訪問(wèn)分析、增強(qiáng)覆蓋率審查
    主站蜘蛛池模板: 你懂的欧美 | 天堂最新版 | 久久婷婷国产精品香蕉 | 亚洲国产欧美视频 | 国产福利观看 | 国产或人精品日本亚洲77美色 | 欧美网站在线播放 | a爱视频 | 人人爱天天做夜夜爽毛片 | 中文字幕在线一区二区三区 | 丁香花在线影院观看在线播放 | 成 人 黄 色视频免费播放 | 中年艳妇乱小玩 | 天堂资源中文官网 | 久久v| 四虎永久地址4hu紧急入口 | 国产小视频在线观看免费 | sihu在线| 热99在线视频 | 黄色香蕉网 | 久久伊人色 | 成人网男女啪啪免费网站 | 天天干天天射天天操 | 手机看片福利日韩 | 欧美不卡视频 | 国产三级日本三级美三级 | 欧美不卡视频 | 国产激情片| 一二三区视频 | 婷婷综合久久中文字幕蜜桃三 | 日本黄视频网站 | 中国一级特黄特级毛片 | 久久久久久青草大香综合精品 | 人人射人人澡 | 视色4se成人午夜精品 | 特黄级| 亚洲电影天堂网 | 免费啪视频在线观看 | 色婷婷狠狠干 | 婷婷精品视频 | 亚洲午夜综合网 |