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

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

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

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

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

Vector維克多 ? 來源:Vector維克多 ? 作者:顧健 ? 2021-06-26 16:21 ? 次閱讀

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

VectorCAST/QA介紹

1.1

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

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

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

自動對項目源代碼添加代碼覆蓋率接口

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

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

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

1.2

VectorCAST/QA工作流

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

VectorCAST/QA測試配置步驟

2.1

創(chuàng)建VCAST工程

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

1.

通過包含全局變量定義等的腳本文件VCAST_LAUNCH.sh啟動VCAST

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

2.

在VCSAT打開后,如果需要打開已有測試項目

File-》Open 選擇*vcm文件;

3.

如若需要創(chuàng)建新項目

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

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

亦或通過實際的項目選擇配置包中自帶的模板CFG,New-》VectorCAST Project-》From Configuration File。

2.2

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

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

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

1.

選擇編譯器

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

2.

環(huán)境命名

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

3.

加載源文件

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

4.

覆蓋率類型

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

5.

編譯

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

2.3

代碼覆蓋率插裝

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

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

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

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

VectorCAST/QA測試實例

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

3.1

插樁前后源代碼對比

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

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

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

插樁后代碼

3.2

編譯可執(zhí)行文件

1.

通過交叉編譯工具鏈對插樁后的hello.c文件進行交叉編譯,獲得可執(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燒錄到目標板。

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

3.3

獲取覆蓋率結(jié)果

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

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

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

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

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

覆蓋率存儲文件

3.4

生成覆蓋率報告

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

1.

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

2.

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

3.

通過Environment-》view-》Aggregate Coverage Report即可獲取到覆蓋率報告,報告顯示百分百覆蓋。

編輯:jq

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

    關(guān)注

    1

    文章

    177

    瀏覽量

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

    關(guān)注

    0

    文章

    7

    瀏覽量

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

    關(guān)注

    30

    文章

    4887

    瀏覽量

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

    關(guān)注

    1

    文章

    1656

    瀏覽量

    49893

原文標題:VectorCAST基于華為LiteOS-A內(nèi)核的代碼測試-2

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

收藏 人收藏

    評論

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

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

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

    S32K311如何在Flash測試ECC?

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

    何在i.MX 8XDXL EVK的A35運行Yocto Linux,在M4運行FreeRTOS?

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

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

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

    請問在NXP板的BSP QA過程中采用了哪些具體的測試方法?

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

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

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

    何在Linux系統(tǒng)設(shè)置站群服務(wù)器IP地址

    在Linux系統(tǒng)設(shè)置站群服務(wù)器的IP地址,可以通過以下步驟進行,主機推薦小編為您整理發(fā)布如何在Linux系統(tǒng)設(shè)置站群服務(wù)器IP地址。
    的頭像 發(fā)表于 12-11 10:05 ?437次閱讀

    如何測試LM2572電路的開環(huán)相噪?如何在TIC Pro配置參數(shù)?

    客戶想測試LM2572電路的開環(huán)相噪,想請教一下測試的方法以及應(yīng)如何在TIC Pro配置參數(shù)。
    發(fā)表于 11-11 06:43

    何在MSP430?實現(xiàn)內(nèi)置振蕩器的高精度定時器

    電子發(fā)燒友網(wǎng)站提供《如何在MSP430?實現(xiàn)內(nèi)置振蕩器的高精度定時器.pdf》資料免費下載
    發(fā)表于 09-14 11:10 ?0次下載
    如<b class='flag-5'>何在</b>MSP430?<b class='flag-5'>上</b><b class='flag-5'>實現(xiàn)</b>內(nèi)置振蕩器的高精度定時器

    何在采用 SOT563 封裝的 TPS56x242-7 實現(xiàn)更良好的熱性能

    電子發(fā)燒友網(wǎng)站提供《如何在采用 SOT563 封裝的 TPS56x242-7 實現(xiàn)更良好的熱性能.pdf》資料免費下載
    發(fā)表于 09-12 11:07 ?0次下載
    如<b class='flag-5'>何在</b>采用 SOT563 封裝的 TPS56x242-7 <b class='flag-5'>上</b><b class='flag-5'>實現(xiàn)</b>更良好的熱性能

    何在DRA821U使用Linux實現(xiàn)快速引導

    電子發(fā)燒友網(wǎng)站提供《如何在DRA821U使用Linux實現(xiàn)快速引導.pdf》資料免費下載
    發(fā)表于 09-03 10:11 ?0次下載
    如<b class='flag-5'>何在</b>DRA821U<b class='flag-5'>上</b>使用Linux<b class='flag-5'>實現(xiàn)</b>快速引導

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

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

    ATE測試STM32如何通過pattern控制內(nèi)核

    ATE測試STM32如何通過pattern控制內(nèi)核,或者說如何才能實現(xiàn)MCU中AD模塊,存儲器模塊等模塊功能性測試。MCU不同與邏輯芯片、AD芯片或者存儲器芯片,舉例來說:AD芯片
    發(fā)表于 07-23 07:20

    請問如何在Windows(Msys)設(shè)置NONOS系統(tǒng)

    何在Windows(Msys)設(shè)置NONOS系統(tǒng)
    發(fā)表于 07-08 08:29

    何在不同應(yīng)用場景下構(gòu)建音頻測試環(huán)境

    在之前的文章中,我們已經(jīng)詳細介紹了基礎(chǔ)音頻參數(shù)和AP525的軟硬件配置。本文將延續(xù)這一主題,以泰凌TLSR9518A EVB作為測試設(shè)備(DUT),向大家展示如何在不同應(yīng)用場景下構(gòu)建音頻測試
    的頭像 發(fā)表于 07-03 15:00 ?1123次閱讀
    如<b class='flag-5'>何在</b>不同應(yīng)用場景下構(gòu)建音頻<b class='flag-5'>測試</b>環(huán)境
    主站蜘蛛池模板: 日韩成人免费一级毛片 | 日韩美女奶水喂男人在线观看 | 加勒比一木道|视频在线看 加勒比在线免费视频 | 五月天婷婷色综合 | 免费黄色大片视频 | a在线观看网站 | 久久国产热 | 亚洲免费视频播放 | 国产精品丝袜 | 精品精品国产理论在线观看 | 国产一级aa大片毛片 | 婷婷第四色 | 亚洲免费黄色网 | 午夜官网| 高清不卡一区二区三区 | www.夜夜爽 | 日本免费网站观看 | 永久看日本大片免费 | 久久99热精品 | 毛茸茸成熟妇女亚洲人 | 亚洲 [12p] | 午夜视频在线免费观看 | 色婷婷在线视频观看 | 被男同桌摸内裤好爽视频 | 涩涩爱影院 | 色综合天天射 | 日产精品卡二卡三卡四卡无卡乱码 | 最刺激黄a大片免费观看 | 最新丁香六月 | 日日爱网址 | 最好看的最新中文字幕2018免费视频 | 国产做a爰片久久毛片 | 最新欧美精品一区二区三区 | 国产免费啪啪 | 私色综合网| a欧美视频| 韩国xxxxx视频在线 | 手机看片神马午夜片 | 狠狠干欧美 | 日本黄页在线观看 | 黄色激情小说视频 |