chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

VectorCAST/QA如何在LiteOS-A內(nèi)核上實(shí)現(xiàn)系統(tǒng)白盒測(cè)試

Vector維克多 ? 來(lái)源:Vector維克多 ? 作者:顧健 ? 2021-06-26 16:21 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文將通過(guò)演示實(shí)例介紹VectorCAST/QA如何在LiteOS-A內(nèi)核上實(shí)現(xiàn)系統(tǒng)白盒測(cè)試,獲取被測(cè)程序的代碼覆蓋信息。具體實(shí)現(xiàn)在支持sudo超級(jí)用戶(hù)模式的Ubuntu 18.04(或以上)版本中,調(diào)試目標(biāo)板是i.MX6ULL開(kāi)發(fā)板(鴻蒙OS官方認(rèn)可適配)。

VectorCAST/QA介紹

1.1

VectorCAST/QA功能與優(yōu)勢(shì)

VectorCAST工具集包含兩款測(cè)試工具:針對(duì)單元集成測(cè)試的VectorCAST/C++,和實(shí)現(xiàn)系統(tǒng)白盒測(cè)試的VectorCAST/QA。區(qū)別于單元測(cè)試的測(cè)試對(duì)象是函數(shù)組件,系統(tǒng)白盒測(cè)試的對(duì)象則是系統(tǒng)整體編譯后的程序。VectorCAST/QA通過(guò)集成被測(cè)項(xiàng)目程序的編譯/構(gòu)建環(huán)境和已有的測(cè)試基礎(chǔ)架構(gòu),獲取系統(tǒng)測(cè)試所需的關(guān)鍵指標(biāo)。

VectorCAST/QA具有以下功能和優(yōu)勢(shì):

自動(dòng)對(duì)項(xiàng)目源代碼添加代碼覆蓋率接口;

沿用項(xiàng)目已有的系統(tǒng)測(cè)試框架和測(cè)試用例;

獲取在系統(tǒng)測(cè)試階段的代碼覆蓋率信息;

測(cè)試用例和代碼覆蓋率信息逐一對(duì)應(yīng)。

1.2

VectorCAST/QA工作流

VectorCAST/QA會(huì)自動(dòng)對(duì)被測(cè)源文件插裝(區(qū)別于單元集成測(cè)試的Stub插樁,對(duì)程序的插樁Instrumentation可以理解為插覆蓋率函數(shù)接口)添加覆蓋率測(cè)試接口,同時(shí)工具會(huì)在目標(biāo)板的RAM 內(nèi)存中分配出一段內(nèi)存空間,用以存放一個(gè)固定名字的char類(lèi)型全局?jǐn)?shù)組,該數(shù)組實(shí)時(shí)保存覆蓋率信息,用戶(hù)可以通過(guò)讀取該數(shù)組獲取覆蓋率結(jié)果,數(shù)組大小可通過(guò)工具配置選項(xiàng)進(jìn)行設(shè)置。

VectorCAST/QA測(cè)試配置步驟

2.1

創(chuàng)建VCAST工程

在構(gòu)建VectorCAST/QA系統(tǒng)測(cè)試環(huán)境之前,需要首先創(chuàng)建VCAST工程;

1.

通過(guò)包含全局變量定義等的腳本文件VCAST_LAUNCH.sh啟動(dòng)VCAST

sudo bash 。/VCAST_LAUNCH.sh 或者 source VCAST_LAUNCH.sh;

2.

在VCSAT打開(kāi)后,如果需要打開(kāi)已有測(cè)試項(xiàng)目

File-》Open 選擇*vcm文件;

3.

如若需要?jiǎng)?chuàng)建新項(xiàng)目

若是第一次創(chuàng)建項(xiàng)目,切記需首先創(chuàng)建項(xiàng)目保存路徑,F(xiàn)ile-》Set Working Directory 選擇測(cè)試項(xiàng)目保存的路徑;

可選擇創(chuàng)建空項(xiàng)目New-》VectorCAST Project-》Empty Project,同時(shí)根據(jù)項(xiàng)目需求設(shè)定項(xiàng)目名稱(chēng)和選擇交叉編譯工具鏈;

亦或通過(guò)實(shí)際的項(xiàng)目選擇配置包中自帶的模板CFG,New-》VectorCAST Project-》From Configuration File。

2.2

配置QA測(cè)試環(huán)境

創(chuàng)建完VCAST工程,再創(chuàng)建QA測(cè)試環(huán)境從而完成環(huán)境的配置,右鍵Group-》Create System Test Environment-》Interactive。

配置QA測(cè)試環(huán)境共包含五個(gè)步驟,具體配置步驟如下:

1.

選擇編譯器

配置QA 環(huán)境的第一步需要結(jié)合具體項(xiàng)目配置選擇編譯器,本文項(xiàng)目選擇Clang編譯器,Preprocessor command 需要和目標(biāo)板適配;

2.

環(huán)境命名

在配置環(huán)境的第二步驟中,自定義環(huán)境名稱(chēng),例如本項(xiàng)目中環(huán)境命名為123;

3.

加載源文件

配置的第三步加載被測(cè)源文件,其中Base Directory指向源碼最上層的父目錄,然后選擇目錄文件中要添加到測(cè)試環(huán)境中的源文件,本文項(xiàng)目中只包含hello.c源文件;

4.

覆蓋率類(lèi)型

配置的第四步根據(jù)項(xiàng)目測(cè)試需求設(shè)置覆蓋率測(cè)試類(lèi)型,本項(xiàng)目選擇Statement+Branch即語(yǔ)句分支覆蓋。覆蓋率類(lèi)型選擇的配置亦可在環(huán)境創(chuàng)建后針對(duì)具體被測(cè)文件的需求進(jìn)行設(shè)置,可參見(jiàn)本文2.3章節(jié),其他配置選項(xiàng)可選擇默認(rèn);

5.

編譯

當(dāng)前述配置步驟執(zhí)行完畢后,即可點(diǎn)擊配置界面右下角的Build進(jìn)行環(huán)境編譯。

2.3

代碼覆蓋率插裝

當(dāng)環(huán)境編譯成功后,通過(guò)雙擊工程視圖中的環(huán)境名稱(chēng)進(jìn)入到環(huán)境視圖,勾選Tools-》Options-》Coverage-》Save data in ASCII format in memory,從而將覆蓋率信息實(shí)時(shí)保存在RAM中,可通過(guò)串口等工具實(shí)時(shí)獲取覆蓋率信息,存儲(chǔ)覆蓋率信息的數(shù)組的大小可通過(guò)Maximum size for ASCII buffer調(diào)控,不勾選則為工具默認(rèn)值,配置完成后點(diǎn)擊Apply;

進(jìn)入環(huán)境視圖后可看見(jiàn)被添加的所有測(cè)試源文件,通過(guò)右鍵示例的hello.c-》Set Coverage Type可以配置要測(cè)試的覆蓋率類(lèi)型;

覆蓋率類(lèi)型設(shè)置完成后,再次選擇被測(cè)文件hello.c右鍵-》Instrument 實(shí)現(xiàn)插裝;如果出現(xiàn)某些頭文件找不到的錯(cuò)誤,可以在Tools-》options-》C/C++-》Preprocessor/Compiler-》Include Directories通過(guò)+號(hào)來(lái)添加搜索路徑。(++ 代表遞歸的添加路徑中的子路徑)

執(zhí)行完上述步驟后,點(diǎn)擊File-》Close Environment關(guān)閉QA環(huán)境。在工程視圖中右鍵環(huán)境,選擇System Testing-》Apply Coverage to Source Tree-》Always,該配置選項(xiàng)將會(huì)使得覆蓋接口代碼直接插樁到被測(cè)源文件中,同時(shí)工具會(huì)對(duì)被測(cè)前的源文件進(jìn)行備份,我們將在第3章節(jié)的測(cè)試實(shí)例中進(jìn)行比對(duì),至此完成QA 測(cè)試的所有配置步驟。

VectorCAST/QA測(cè)試實(shí)例

經(jīng)過(guò)第2章節(jié)的配置,可以獲得經(jīng)過(guò)插裝且?guī)в懈采w率接口的hello.c文件,通過(guò)交叉編譯工具鏈進(jìn)行編譯即可將程序燒錄到目標(biāo)板中進(jìn)行系統(tǒng)測(cè)試。

3.1

插樁前后源代碼對(duì)比

如2.3章節(jié)所述,hello.c源文件被插樁前將會(huì)被VectorCAST工具自動(dòng)備份為hello.c.vcast.bak,文件將會(huì)保存在被測(cè)源文件路徑下參見(jiàn)圖9,圖10和11進(jìn)行QA覆蓋率接口插樁前后的源文件對(duì)比。

下圖為插樁后代碼,當(dāng)前打開(kāi)的即是插裝后的hello.c文件,vcast_ascii_coverage_data_pool便是QA工具自動(dòng)創(chuàng)建的用以存儲(chǔ)代碼覆蓋率信息的數(shù)組,其中printf(“%s”,vcast_ascii_coverage_data_pool)及后面的文件存儲(chǔ)代碼為手動(dòng)添加,目的是支持本次項(xiàng)目調(diào)試過(guò)程中可以通過(guò)串口實(shí)時(shí)查看目標(biāo)板打印的覆蓋率信息,同時(shí)覆蓋率結(jié)果文件存儲(chǔ)在目標(biāo)板中亦可通過(guò)其他調(diào)試方法發(fā)送給上位機(jī),用戶(hù)可以依據(jù)目標(biāo)板的配置選擇不同的獲取覆蓋率信息的方式。

8eff145a-d455-11eb-9e57-12bb97331649.png

插樁后代碼

3.2

編譯可執(zhí)行文件

1.

通過(guò)交叉編譯工具鏈對(duì)插樁后的hello.c文件進(jìn)行交叉編譯,獲得可執(zhí)行文件hello;

clang -target arm-liteos --sysroot=/home/vector123/book/openharmony/prebuilts/lite/sysroot/ -o hello hello.c;

2.

將hello存入到根目錄rootfs;

cp hello /home/vector123/book/openharmony/kernel/liteos_a/out/imx6ull/rootfs/bin

3.

重新制作rootfs.jffs2,并將rootfs.jffs2燒錄到目標(biāo)板。

mkfs.jffs2 -s 0x10000 -e 0x10000 -d rootfs -o rootfs.jffs2

3.3

獲取覆蓋率結(jié)果

燒錄完rootfs.jffs2文件后,上位機(jī)通過(guò)MobaXterm工具進(jìn)行在線調(diào)試。

輸入。/bin/hello命令運(yùn)行hello程序,如圖所示,獲得hello.c源代碼中的打印語(yǔ)句以及覆蓋率結(jié)果信息,同時(shí)覆蓋率結(jié)果存儲(chǔ)在目標(biāo)板系統(tǒng)中,存儲(chǔ)地址取決于插樁時(shí)設(shè)定的文件存儲(chǔ)路徑,結(jié)果存儲(chǔ)在根目錄下的QA01.DAT文件中,如圖所示;

8f0dda8a-d455-11eb-9e57-12bb97331649.png

打印語(yǔ)句與覆蓋率結(jié)果

8f3458fe-d455-11eb-9e57-12bb97331649.png

覆蓋率存儲(chǔ)文件

3.4

生成覆蓋率報(bào)告

通過(guò)將生成的覆蓋率結(jié)果文件QA01.DAT加載至VectorCAST工具進(jìn)行解析,即可獲得覆蓋度報(bào)告,具體步驟如下:

1.

右鍵Environment-》Add Test Results 選擇路徑下的結(jié)果文件,選擇QA01.DAT;

2.

添加完成后即可在左側(cè)的環(huán)境視圖中觀察到覆蓋率結(jié)果文件QA01.DAT,勾選該文件即可生成覆蓋率報(bào)告,當(dāng)有多組不同的覆蓋率測(cè)試時(shí),可以導(dǎo)入多個(gè)不同的測(cè)試結(jié)果文件,以實(shí)現(xiàn)測(cè)試和代碼覆蓋率的逐一對(duì)應(yīng);

3.

通過(guò)Environment-》view-》Aggregate Coverage Report即可獲取到覆蓋率報(bào)告,報(bào)告顯示百分百覆蓋。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(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)投訴
  • 集成
    +關(guān)注

    關(guān)注

    1

    文章

    178

    瀏覽量

    30861
  • QA
    QA
    +關(guān)注

    關(guān)注

    0

    文章

    7

    瀏覽量

    9137
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4955

    瀏覽量

    73490
  • 編譯器
    +關(guān)注

    關(guān)注

    1

    文章

    1672

    瀏覽量

    51232

原文標(biāo)題:VectorCAST基于華為L(zhǎng)iteOS-A內(nèi)核的代碼測(cè)試-2

文章出處:【微信號(hào):VectorChina,微信公眾號(hào):Vector維克多】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    何在DGX Spark運(yùn)行NVIDIA Omniverse

    首先感謝 Vigor 同學(xué)第一時(shí)間的分享,以下是具體如何在 DGX Spark 運(yùn)行 Omniverse 的方法。
    的頭像 發(fā)表于 12-17 10:13 ?397次閱讀
    如<b class='flag-5'>何在</b>DGX Spark<b class='flag-5'>上</b>運(yùn)行NVIDIA Omniverse

    科技品牌的2026必修課:如何在CES Asia2026北京消費(fèi)電子展實(shí)現(xiàn)預(yù)算與效果的最優(yōu)解?

    科技品牌的2026必修課:如何在CES Asia2026北京消費(fèi)電子展實(shí)現(xiàn)預(yù)算與效果的最優(yōu)解?
    的頭像 發(fā)表于 12-02 10:57 ?513次閱讀

    汽車(chē)中央控制與線束的自動(dòng)測(cè)試設(shè)備

    費(fèi)思FTS6000線束檢測(cè)設(shè)備汽車(chē)線束與中央控制測(cè)試系統(tǒng)覆蓋客戶(hù)測(cè)試需求,方案成熟。
    的頭像 發(fā)表于 11-28 15:23 ?227次閱讀
    汽車(chē)中央控制<b class='flag-5'>盒</b>與線束的自動(dòng)<b class='flag-5'>測(cè)試</b>設(shè)備

    MCU單片機(jī)TWS耳機(jī)充電系統(tǒng)控制方案

    充電實(shí)現(xiàn)供電管理。本方案采用MM32F0010系列MCU作為T(mén)WS耳機(jī)充電的核心控制器,實(shí)現(xiàn)對(duì)充放電管理的智能化控制和系統(tǒng)監(jiān)控。
    的頭像 發(fā)表于 11-05 09:22 ?308次閱讀

    在qemu上體驗(yàn)芯來(lái)RISC-V處理器運(yùn)行鴻蒙LiteOS-M內(nèi)核

    在qemu上體驗(yàn)芯來(lái)RISC-V處理器運(yùn)行鴻蒙LiteOS-M內(nèi)核 1.本文概述 2.下載qemu 3.下載鴻蒙LiteOS-M 4.運(yùn)行與測(cè)試 5.gdb調(diào)試 1.本文概述
    發(fā)表于 10-31 09:04

    如何利用Verilog HDL在FPGA實(shí)現(xiàn)SRAM的讀寫(xiě)測(cè)試

    本篇將詳細(xì)介紹如何利用Verilog HDL在FPGA實(shí)現(xiàn)SRAM的讀寫(xiě)測(cè)試。SRAM是一種非易失性存儲(chǔ)器,具有高速讀取和寫(xiě)入的特點(diǎn)。在FPGA中實(shí)現(xiàn)SRAM讀寫(xiě)
    的頭像 發(fā)表于 10-22 17:21 ?4198次閱讀
    如何利用Verilog HDL在FPGA<b class='flag-5'>上</b><b class='flag-5'>實(shí)現(xiàn)</b>SRAM的讀寫(xiě)<b class='flag-5'>測(cè)試</b>

    汽車(chē)HIL測(cè)試系統(tǒng),歐美標(biāo)充電模型Simulink模型,開(kāi)發(fā),有償

    提供一個(gè)歐美標(biāo)充電模型,交付物為Simulink模型
    發(fā)表于 09-04 16:23

    何在裸機(jī)環(huán)境中運(yùn)行KleidiAI微內(nèi)核

    探索如何在裸機(jī)環(huán)境中運(yùn)行 KleidiAI 內(nèi)核,并通過(guò)測(cè)試多款 C/C++ 編譯器,以確定如何能更高效地生成代碼。
    的頭像 發(fā)表于 08-08 15:16 ?3713次閱讀
    如<b class='flag-5'>何在</b>裸機(jī)環(huán)境中運(yùn)行KleidiAI微<b class='flag-5'>內(nèi)核</b>

    【經(jīng)驗(yàn)分享】在Omni3576編譯Redis-8.0.2源碼,并安裝及性能測(cè)試

    本文首先介紹Redis是什么,然后介紹如何在Omni3576編譯Redis-8.0.2源碼,以及從源碼編譯、安裝Redis,最后介紹如何在Omni3576運(yùn)行Redis性能
    的頭像 發(fā)表于 06-05 08:05 ?873次閱讀
    【經(jīng)驗(yàn)分享】在Omni3576<b class='flag-5'>上</b>編譯Redis-8.0.2源碼,并安裝及性能<b class='flag-5'>測(cè)試</b>

    # quartus ii 9.1對(duì)registered adder仿真出錯(cuò),但硬件能夠實(shí)現(xiàn),怎么解決?

    核心問(wèn)題:在硬件能夠實(shí)現(xiàn)功能,仿真結(jié)果一直出錯(cuò),并且只有輸出S的時(shí)候出錯(cuò)。S應(yīng)該輸出a+b的值,仿真一直都是0,但是在硬件能夠體現(xiàn)正確結(jié)果。 代碼如下:module CNT4(
    發(fā)表于 04-14 21:35

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

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

    何在i.MX 8XDXL EVK的A35運(yùn)行Yocto Linux,在M4運(yùn)行FreeRTOS?

    我正在使用i.MX 8XDXL 評(píng)估套件并希望在 Cortex-A35 運(yùn)行 Yocto Linux 映像cores 的Cortex-M4 的 FreeRTOS 映像核心。 實(shí)現(xiàn)
    發(fā)表于 04-04 06:02

    何在RAKsmart服務(wù)器實(shí)現(xiàn)企業(yè)AI模型部署

    AI模型的訓(xùn)練與部署需要強(qiáng)大的算力支持、穩(wěn)定的網(wǎng)絡(luò)環(huán)境和專(zhuān)業(yè)的技術(shù)管理。RAKsmart作為全球領(lǐng)先的服務(wù)器托管與云計(jì)算服務(wù)提供商,已成為企業(yè)部署AI模型的理想選擇。那么,如何在RAKsmart服務(wù)器實(shí)現(xiàn)企業(yè)AI模型的部署呢?
    的頭像 發(fā)表于 03-27 09:46 ?866次閱讀

    請(qǐng)問(wèn)在NXP板的BSP QA過(guò)程中采用了哪些具體的測(cè)試方法?

    哪些工具和軟件(NXP i.MX8M Plus Cortex-A53? 2.5 英寸 SBC)? 是否有 QA 期間遇到的問(wèn)題的案例研究或示例,以及這些問(wèn)題是如何解決的? 測(cè)試人員可以使用哪些資源或文檔
    發(fā)表于 03-17 08:04

    全國(guó)首個(gè)!深開(kāi)鴻LiteOS-M操作系統(tǒng)內(nèi)核榮獲EAL5+安全認(rèn)證!

    近日,深開(kāi)鴻在信息安全領(lǐng)域實(shí)現(xiàn)重大突破!深開(kāi)鴻攜手北京中關(guān)村實(shí)驗(yàn)室,通過(guò)對(duì)開(kāi)源社區(qū)版LiteOS-M內(nèi)核進(jìn)行代碼級(jí)安全加固,成功研發(fā)自主可控的增強(qiáng)型LiteOS-M安全
    的頭像 發(fā)表于 02-24 19:26 ?857次閱讀
    全國(guó)首個(gè)!深開(kāi)鴻<b class='flag-5'>LiteOS</b>-M操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>內(nèi)核</b>榮獲EAL5+安全認(rèn)證!