色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

代碼的黑盒測試(下)|?庫接口測試Library Interface Testing

北匯信息POLELINK ? 2022-08-04 14:37 ? 次閱讀

書接上回:代碼的黑盒測試(上)|目標文件測試Object File Testing,我們首先介紹了編譯的基本過程——預處理(Prepressing)、編譯(compile)、匯編(Assembly)和鏈接(Linking),然后著重介紹了代碼黑盒測試的第一種方法——VectorCAST/C++的目標文件的測試方法,解決了在無可用源代碼的情況下,對其相應目標文件的測試。

其實一個代碼工程除了開發人員手寫代碼外,還包含了很多庫文件,甚至有的庫文件或是經過開發人員修改或是直接由開發人員編寫的。那么對于這些文件又該如何測試呢?請看如下分解!

一、庫接口測試

(一)庫文件

這里的“庫”,就是庫文件,一般是指編譯好的二進制文件,用于在鏈接階段與目標文件一起生成可執行文件,或者運行可執行文件的時候被加載,以便調用庫文件中的某段代碼。

與可執行文件不同的是,庫文件無法直接執行。直觀上來看,庫文件的源代碼中沒有main函數,而只是一些函數模塊的定義和實現,沒有運行的入口主函數,無法直接執行。

(二)靜態庫與動態庫

庫文件可分為靜態庫和動態庫。它們區別主要體現在程序的鏈接階段——靜態庫的代碼是在編譯過程中被載入程序中的,這就說明,只要程序編譯完成,程序就不受靜態庫的影響;動態庫的代碼在編譯的時候并沒有被編譯進入程序中,只是在程序運行時根據程序需要動態的加載到內存中。

(三)相關文件的一些擴展名

  1. win32平臺下,靜態庫通常后綴為.lib,動態庫為.dll。
  2. Linux平臺下,靜態庫通常后綴為.a,動態庫為.so。

從本質上來說,由同一段程序編譯出來的靜態庫和動態庫,在功能上是沒有區別的;不同之處僅僅在于其名字上,也就是“靜態”和“動態”。開發人員只需要將.h/.hpp頭文件和.lib/.so文件提交給其他開發人員,他們就可以直接使用.lib/.so文件中定義的函數了。靜態庫和動態庫的具體使用由開發人員決定。

(四)庫接口測試

庫接口測試允許客戶在沒有可用源代碼的情況下,對現有庫文件創建測試。在測試時,可以將第三方庫或者被修改的第三方庫作為一個對象庫文件和API定義(頭文件)。可以為API創建測試用例,來驗證應用程序庫函數的正確性,而無需訪問源代碼。

在代碼開發中,通常會將一些常用的函數封裝成一個庫,提供接口給其它程序文件調用,省去重復寫該函數接口。當使用該函數時,只需要直接將所需要的文件鏈接到程序中即可,大大提高了開發效率。依照這個原理,我們也可以針對一些代碼程序根據測試需要,將某些源代碼編譯生成相應的靜態庫文件或動態庫文件,以完成代碼功能測試。

二、利用VectorCAST/C++進行庫接口測試

對于如何使用VectorCAST/C++進行靜態庫或者動態庫的單元測試,下面我們仍使用上篇文章中的點餐服務程序(采用GCC編譯鏈),來具體說明。

(一)點餐服務程序的結構內容及說明

poYBAGLrOgiASp3RAAB36SL_x2w424.png

poYBAGLrOhCAF5n2AACE58UQyqM954.png

圖 1點餐服務程序的結構內容及說明

(二)利用VectorCAST/C++進行靜態庫接口測試

1、靜態庫文件的生成

對于這個點餐主程序manager_driver.c,我們可以將manager.c和database.c分別作為一個調用的庫文件來使用,也可以一起作為一個調用的庫文件來使用。本例中,將manager.c和database.c一起作為一個調用的庫文件來使用。

使用一個BAT腳本生成靜態庫文件,腳本內容如下:

set path=%VECTORCAST_DIR%\mingw\bin;%PATH%

gcc -c manager.c

gcc -c database.c

ar rcs manager_driver.lib manager.o database.o

說明:無論靜態庫,還是動態庫,都是在*.o目標文件基礎上生成的。

2、環境構建基本過程

VectorCAST環境構建的基本過程在代碼的黑盒測試(上)|目標文件測試Object File Testing有詳細說明,這里不再贅述,對于不同的以及需要注意的地方,有如下說明:

本例中,我們是利用manager.c和database.c一起生成靜態庫文件manager_driver.lib的,所以在構建測試環境的第3步需要選擇“庫接口測試方法”并在“Link Options”添加該文件及所在路徑,如圖2所示。同時在構建測試環境的第6步添加需要的頭文件,有manager.h和database.h,如圖3所示。

pYYBAGLrOi-AB43LAAGSTnfVKnk986.png

圖2選擇添加靜態庫文件manager_driver.lib

poYBAGLrOjWAdYEGAADByjzH0Gc062.png

圖3選擇添加頭文件manager.h或database.h

3、測試用例編寫與執行

按照上述說明成功構建測試環境。編寫測試用例及執行測試用例,結果如下圖4所示。

poYBAGLrOlSAEjWuAABhkE54dEQ448.png

pYYBAGLrOl2AQHHJAAEKsv_XNSM597.png

圖4測試用例編寫與執行

細心的小伙伴可以注意到上圖左邊部分只有顯示了執行狀態圖標,因為我們采用的該種測試屬于黑盒測試方法,所以我們在構建環境的第4步,沒有勾選“Whitebox”前面的復選框,自然也沒有結構覆蓋度圖標。

(三)利用VectorCAST/C++進行動態庫接口測試

1、動態庫文件的生成

與靜態庫文件生成類似,將manager.c和database.c一起作為一個調用的動態庫文件來使用。

使用一個BAT腳本生成動態庫文件,腳本內容如下:

set path=%VECTORCAST_DIR%\mingw\bin;%PATH%

gcc -c -fPIC manager.c -o manager_dyn.o

gcc -c -fPIC database.c -o database_dyn.o

gcc manager_dyn.o database_dyn.o -shared -o libmanager_drive.dll

2、環境構建基本過程

動態庫接口測試與靜態庫接口測試基本一致,不同的地方如下說明:

此例中,我們仍利用manager.c和database.c一起生成動態庫文件manager_driver.dll,所以在構建測試環境的第3步選擇“庫接口測試方法”并在“Link Options”添加該動態庫dll文件,如圖5所示。后面的操作與靜態庫接口測試一致,故不在贅述。

poYBAGLrOoWAQ7btAAEuGA59J2E457.png

圖5選擇添加動態庫文件manager_driver.dll

三、總結

本文提供了代碼黑盒測試的第二種方法——庫接口測試,可以利用工具為API創建測試用例,來驗證應用程序庫函數的正確性,而無需訪問源代碼,感興趣的同學可以嘗試下。

VectorCAST/C++作為Vector公司的代碼動態測試工具,支持自動生成測試用例,提供完善的覆蓋度信息,還可以與Git/SVN/Jekins等工具集成等等;后續也會為大家帶來更多基于VectorCAST/C++的動態測試相關內容;同時也歡迎垂詢和溝通,共同探討測試相關問題。

北匯信息作為Vector中國的合作伙伴,始終專注于汽車電子領域的新技術和新產品,為整車廠和零部件企業提供完整的研發、測試解決方案,為工程師在汽車領域提供“趁手裝備“!

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 測試
    +關注

    關注

    8

    文章

    5308

    瀏覽量

    126683
收藏 人收藏

    評論

    相關推薦

    什么是回歸測試_回歸測試測試策略

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

    端到端測試用例怎么寫

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

    接口測試怎么測多個服務器連接

    接口測試是軟件開發過程中的一個重要環節,用于驗證系統組件之間的交互是否符合預期。在多服務器環境中,接口測試的復雜性會增加,因為需要考慮服務器之間的連接和通信。本文將詳細介紹如何在多服務
    的頭像 發表于 05-30 15:16 ?424次閱讀

    接口測試測試什么內容

    接口測試的定義、重要性、測試策略、測試方法、測試工具以及最佳實踐。 一、接口
    的頭像 發表于 05-30 15:11 ?1275次閱讀

    接口測試的概念和重點是什么?

    是確保這些交互按照設計和規范進行,從而保證整個系統的穩定性和可靠性。 接口測試主要關注以下幾個方面: 功能性:驗證接口是否能夠按照預期執行其功能,包括輸入、處理和輸出。 性能:評估接口
    的頭像 發表于 05-30 15:08 ?717次閱讀

    接口測試的工具有哪些種類

    接口測試是軟件測試的一個重要環節,主要用于驗證系統各模塊之間的交互是否符合預期。隨著軟件行業的快速發展,接口測試工具也不斷涌現,為
    的頭像 發表于 05-30 15:07 ?721次閱讀

    接口測試測試點有哪些類型

    接口測試是軟件測試的一個重要組成部分,主要用于驗證系統各模塊之間的接口是否按照預期工作。接口測試
    的頭像 發表于 05-30 15:04 ?1870次閱讀

    接口測試的主要目的是什么

    接口測試的主要目的是什么? 在軟件開發過程中,接口測試是一種重要的測試方法,用于驗證不同模塊、系統或服務之間的交互是否符合預期。本文將詳細探
    的頭像 發表于 05-30 15:02 ?1093次閱讀

    接口測試的流程和步驟有哪些

    接口測試是軟件測試的一個重要組成部分,主要用于驗證系統各模塊之間的交互是否符合預期。 一、接口測試概述
    的頭像 發表于 05-30 14:59 ?2800次閱讀

    接口測試屬于功能測試嗎為什么

    接口測試和功能測試是軟件測試中的兩種不同類型,它們之間有一定的聯系,但也存在明顯的區別。本文將詳細討論接口
    的頭像 發表于 05-30 14:57 ?474次閱讀

    功能測試覆蓋中最常見的是什么方法

    常見的方法,包括黑盒測試、白盒測試、灰盒測試、等價類劃分、邊界值分析、錯誤推測法、因果圖法、狀態遷移測試、場景法、決策表
    的頭像 發表于 05-30 14:55 ?728次閱讀

    功能測試是白盒還是黑盒測試

    功能測試是軟件測試的一種方法,主要用于驗證軟件的功能是否滿足需求規格說明書中的要求。功能測試可以采用白盒測試黑盒
    的頭像 發表于 05-30 14:53 ?875次閱讀

    功能測試接口測試的區別

    功能測試接口測試是軟件測試的兩個重要方面,它們在確保軟件質量和性能方面發揮著關鍵作用。本文將詳細介紹功能測試
    的頭像 發表于 05-29 16:02 ?945次閱讀

    什么是接口測試?如何開展接口測試

    接口其實就是前端頁面或APP等調用與后端做交互用的,有朋友會問,我的功能測試都測好了,為什么還要測接口呢?
    發表于 03-14 14:15 ?602次閱讀
    什么是<b class='flag-5'>接口</b><b class='flag-5'>測試</b>?如何開展<b class='flag-5'>接口</b><b class='flag-5'>測試</b>

    IZYTRONIQ測試軟件介紹——管理測試設備數據

    一款完整的用于管理和記錄測試過程的數據軟件IZYTRONIQ
    的頭像 發表于 01-11 11:11 ?414次閱讀
    IZYTRONIQ<b class='flag-5'>測試</b>軟件介紹——管理<b class='flag-5'>測試</b>設備數據<b class='flag-5'>庫</b>
    主站蜘蛛池模板: 亚洲AV精品乱码专区| 女女破视频在线观看| a毛片基地免费全部视频| 十八禁肉动漫无修在线播放| jizz教师| 欧美久久无码AV麻豆| 中文无码有码亚洲 欧美| 娇妻归来在线观看免费完整版电影| 爽爽窝窝午夜精品一区二区| 无码专区aaaaaa免费视频| 欧美色图天堂网| 欧美.亚洲.日韩.天堂| 蜜芽亚洲欧美一区二区电影| 乱爱性全过程免费视频| 另类欧美尿交| 免费人成在线观看视频不卡| 免费人成在线观看网站视频| 男人狂躁进女人免费视频公交| 男人J放进女人P全黄网站| 男人天堂黄色| 琪琪午夜福利免费院| 日韩精品专区在线影院重磅| 色欲AV精品一区二区入口| 丝瓜视频樱桃视频在线观看免费| 私人玩物在线观看| 亚洲 中文 自拍 无码| 亚洲精品在线网址| 中国xxxxxz| 99无码熟妇丰满人妻啪啪| 超碰在线视频| 国产精品久久人妻无码网站一区无| 国产国拍精品AV在线观看| 国产午夜精AV在线麻豆| 久cao在线香蕉| 免费色片播放器| 日本高清无吗| 午夜久久影院| 伊人青青草原| av色天堂2018在线观看| 冈本视频黄页正版| 精品国内自产拍在线观看视频|