• <menu id="w2i4a"></menu>
  • logo Parasoft C/C++ test 自動化用戶指南

    文檔首頁>>Parasoft C/C++ test 自動化用戶指南>>Parasoft C/C++ test 自動化用戶指南(十七):運(yùn)行靜態(tài)分析

    Parasoft C/C++ test 自動化用戶指南(十七):運(yùn)行靜態(tài)分析


    Parasoft C/C++test針對C/C++開發(fā)的專業(yè)白盒自動化測試方案,能有效提高軟件開發(fā)效率和代碼質(zhì)量。C++test 可以進(jìn)行靜態(tài)分析,全面代碼審查,運(yùn)行時(shí)錯(cuò)誤檢測,并在單元測試和組件測試中集成覆蓋率分析。

    Parasoft C/C++test申請免費(fèi)試用


    先決條件

    在分析代碼之前,必須將 C/C++test 配置為與特定的 C 和 C++ 編譯器和版本一起使用。配置應(yīng)反映用于構(gòu)建被測代碼的原始編譯器和版本。原始編譯器可執(zhí)行文件必須在 $PATH 上可用(除非使用完整路徑指定)。

    使用-compiler開關(guān)指定編譯器配置標(biāo)識符:

    cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input cpptest.bdf

    或者,您可以cpptest.compiler.family在自定義配置文件中配置該屬性:

    cpptest.compiler.family=gcc_4_5

    如果您使用單個(gè)編譯器和版本進(jìn)行所有測試,則cpptestcli.properties 可以在 [INSTALL_DIR] 或 [USER_HOME] 目錄中的全局配置文件中指定編譯器標(biāo)識符。

    執(zhí)行以下操作之一以查找編譯器的配置:

    • 使用-detect-compiler開關(guān)自動檢測配置:
      cpptestcli -detect-compiler gcc
    • 使用-list-compilers開關(guān)在所有支持的編譯器列表中查找配置:
      cpptestcli -list-compilers

    分析單個(gè)文件

    運(yùn)行分析并使用--開關(guān)(分隔符)指定原始編譯器命令。

    cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -- gcc -I include Bank.cxx

    C/C++test 將使用原始編譯器可執(zhí)行文件和編譯器選項(xiàng)分析 Bank.cxx 文件,并向輸出控制臺報(bào)告檢測到的違規(guī)。

    只會分析指定的源文件。源文件中包含的頭文件將被排除在分析之外。要擴(kuò)大測試文件的范圍,包括頭文件。

    您還可以使用該-fail選項(xiàng)在分析報(bào)告靜態(tài)分析結(jié)果時(shí)生成非零退出代碼

    分析基于 Makefile 的項(xiàng)目

    運(yùn)行代碼分析和指定原始構(gòu)建命令與-trace開關(guān)。

    cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -trace make clean all

    C/C++test 將執(zhí)行以下任務(wù):

    1. 運(yùn)行原始構(gòu)建(make clean all)
    2. 檢測要測試的文件
    3. 對這些文件運(yùn)行分析
    4. 向輸出控制臺報(bào)告結(jié)果
    5. 將所有構(gòu)建信息存儲在 cpptest.bdf 文件中以供將來運(yùn)行。

    只有在運(yùn)行構(gòu)建命令時(shí)編譯了該文件,C/C++test 才會檢測用于測試的源文件。只會分析來自 Makefile 的源文件。源文件中包含的頭文件將被排除在分析之外。

    關(guān)于構(gòu)建數(shù)據(jù)文件

    構(gòu)建數(shù)據(jù)文件存儲構(gòu)建信息,例如工作目錄、編譯的命令行選項(xiàng)以及原始構(gòu)建的鏈接過程。指定 .bdf 文件的路徑使您無需重新構(gòu)建即可分析項(xiàng)目

    您可以使用 -trace開關(guān)創(chuàng)建 .bdf 或使用位于. 中的獨(dú)立cpptestscancpptesttrace實(shí)用程序[INSTALL_DIR]/bin directory。

    以下示例是來自構(gòu)建數(shù)據(jù)文件的片段:

    working_dir=/home/place/project/hypnos/pscom
    project_name=pscom
    arg=g++
    arg=-c
    arg=src/io/Path.cc
    arg=-Iinclude
    arg=-I.
    arg=-o
    arg=/home/place/project/hypnos/product/pscom/shared/io/Path.o

    使用 cpptestscan和cpptesttrace實(shí)用程序

    cpptestscan實(shí)用程序在正常構(gòu)建期間用作編譯器和/或鏈接器的包裝器。cpptestscan與現(xiàn)有構(gòu)建一起使用,請cpptestscan在構(gòu)建代碼庫時(shí)為編譯器/鏈接器可執(zhí)行文件添加前綴。這可以通過兩種方式完成:

    • 修改構(gòu)建命令行以cpptestscan用作編譯器/鏈接器可執(zhí)行文件的包裝器
    • 如果您無法在命令行上覆蓋編譯器變量,請嵌入cpptestscan實(shí)際的 make 文件或構(gòu)建腳本。

    cpptesttrace與現(xiàn)有構(gòu)建一起使用,請cpptesttrace在構(gòu)建代碼庫時(shí)為整個(gè)構(gòu)建命令添加前綴。cpptesttrace將跟蹤構(gòu)建期間執(zhí)行的編譯器和鏈接器進(jìn)程,并將它們存儲在構(gòu)建數(shù)據(jù)文件中。

    在這兩種情況下,您都必須在 PATH 環(huán)境變量中指定任一實(shí)用程序的完整路徑。下表總結(jié)cpptestscan和 的其他選項(xiàng)cpptesttrace。可以直接為cpptestscan命令或通過環(huán)境變量設(shè)置選項(xiàng)。大多數(shù)選項(xiàng)都可以應(yīng)用于cpptestscancpptesttrace 通過更改命令行中的前綴。

    cpptestscan 的基本用法:

    • 視窗: cpptestscan.exe [options] [compile/link command]
    • Linux: cpptestscan [options] [compile/link command]

    基本的 cpptesttrace 用法:

    • 視窗: cpptesttrace.exe [options] [build command]
    • Linux: cpptesttrace [options] [build command]
    選項(xiàng)
    環(huán)境變量
    描述
    默認(rèn)

    --cpptestscanOutput-File=<OUTPUT_FILE>

    --cpptesttraceOutput-File=<OUTPUT_FILE>

    CPPTEST_SCAN_OUTPUT_FILE 定義要附加構(gòu)建信息的文件。 cpptestscan.bdf

    --cpptestscanProject-Name=<PROJECT_NAME>

    --cpptesttraceProject-Name=<PROJECT_NAME>

    CPPTEST_SCAN_PROJECT_NAME 定義 C++test 項(xiàng)目的建議名稱。 當(dāng)前工作目錄的名稱

    --cpptestscanRun-OrigCmd=[yes|no]

    --cpptesttraceRun-OrigCmd=[yes|no]

    CPPTEST_SCAN_RUN_ORIG_CMD 如果設(shè)置為“是”,將執(zhí)行原始命令行。 是的

    --cpptestscanQuoteCmdLineMode=[all|sq|none]

    --cpptesttraceQuoteCmdLineMode=[all|sq|none]

    CPPTEST_SCAN_QUOTE_CMD_LINE_MODE

    確定在準(zhǔn)備 cmd 行運(yùn)行時(shí) C++test 引用參數(shù)的方式。

    all: 所有參數(shù)都將被引用

    none: 不會引用任何參數(shù)

    sq: 只有帶有空格或引號字符的參數(shù)才會被引用

    Linux 不支持 cpptestscanQuoteCmdLineMode

    全部

    --cpptestscanCmd-LinePrefix=<PREFIX>
    --cpptesttraceCmd-LinePrefix=<PREFIX>

    CPPTEST_SCAN_CMD_LINE_PREFIX 如果非空且正在運(yùn)行的原始可執(zhí)行文件被打開,則指定的命令將作為原始命令行的前綴。  [空的]

    --cpptestscanEnvInOutput=[yes|no]

    --cpptesttraceEnvInOutput=[yes|no]

    CPPTEST_SCAN_ENV_IN_OUTPUT 啟用會轉(zhuǎn)儲選定的環(huán)境變量和輸出文件的命令行參數(shù)。對于高級設(shè)置,請使用 --cpptestscanEnvFile 和 --cpptestscanEnvars 選項(xiàng)

    --cpptestscanEnv-File=<ENV_FILE>

    --cpptesttraceEnv-File=<ENV_FILE>

    CPPTEST_SCAN_ENV_FILE 如果啟用,指定的文件會保留所有構(gòu)建命令的公共環(huán)境變量;主輸出文件只會保留差異。使用此選項(xiàng)可減小主輸出文件的大小。在啟用 --cpptestscanEnvInOutput 的情況下使用此選項(xiàng) [空的]

    在不重新構(gòu)建的情況下重新分析項(xiàng)目

    運(yùn)行代碼分析并使用-input開關(guān)指定現(xiàn)有構(gòu)建數(shù)據(jù)文件的路徑。例如:

    cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input cpptest.bdf

    C/C++test 將執(zhí)行以下任務(wù):

    1. 從現(xiàn)有的 cpptest.bdf 文件中閱讀有關(guān)要測試哪些文件的信息。
    2. 對這些文件運(yùn)行分析
    3. 將結(jié)果報(bào)告給輸出控制臺。

    不會執(zhí)行原來的構(gòu)建命令。

    您可以使用多個(gè)-input開關(guān)指定多個(gè)文件

    cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input project1.bdf -input project2.bdf

    分析基于 CMake 的項(xiàng)目

    分析基于 CMake 的項(xiàng)目:

    1. 確保您的 CMake 構(gòu)建可以輸出 JSON 格式的編譯命令文件(您可以將 CMake 配置為使用CMAKE_EXPORT_COMPILE_COMMANDS變量輸出文件。)
    2. 更新 C/C++test 命令行以包含-input <PATH_TO_COMPILE_COMMANDS_JSON>傳遞編譯命令文件的位置。您的命令行可能類似于以下內(nèi)容:

      cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input compile_commands.json

    C/C++test 將執(zhí)行以下任務(wù):

    1. compile_commands.json文件中讀取有關(guān)分析范圍和構(gòu)建選項(xiàng)的信息 。
    2. 對范圍內(nèi)的文件運(yùn)行分析。
    3. 報(bào)告結(jié)果。

    C/C++test 只會分析編譯命令文件中定義的源文件。源文件中包含的頭文件將被排除在分析之外

    分析 Microsoft Visual Studio 項(xiàng)目或解決方案

    C/C++test 可以讀取 Visual Studio 項(xiàng)目和解決方案文件,并分析項(xiàng)目或解決方案中的所有源文件和包含的頭文件。使用-input開關(guān)指定 Visual Studio 項(xiàng)目或解決方案文件:

    cpptestcli -config "builtin://Recommended Rules" -input MyProject.vcproj

    您可以指定在分析項(xiàng)目或解決方案期間要使用的構(gòu)建配置和平臺。將配置和平臺名稱附加到解決方案或項(xiàng)目文件名。您的命令可能類似于以下內(nèi)容:

    cpptestcli -config "builtin://Recommended Rules" -input MyProject.vcproj@Debug|x64

    或者,您可以使用以下屬性來指定在分析所有 Visual Studio 解決方案和項(xiàng)目期間要使用的構(gòu)建配置和平臺:

    cpptest.input.msvc.config=Debug
    cpptest.input.msvc.platform=x64

    指定 C/C++test 數(shù)據(jù)位置

    .cpptest需要對該目錄的獨(dú)占訪問權(quán)限。默認(rèn)情況下,該目錄在當(dāng)前工作目錄中創(chuàng)建,該目錄是存儲某些特定于運(yùn)行的數(shù)據(jù)的位置。因此,一次只能在一個(gè)目錄中運(yùn)行一個(gè) C/C++test 實(shí)例。您可以使用該-workspace開關(guān)更改 .cpptest 目錄的位置。

    -workspace <WORKSPACE_LOCATION>

    Parasoft——領(lǐng)先的自動化測試工具,滿足絕大多數(shù)行業(yè)標(biāo)準(zhǔn)

    Parasoft是一家專門提供軟件測試解決方案的公司,幫助企業(yè)打造無缺陷的軟件。

    從開發(fā)到質(zhì)量檢查,Parasoft的技術(shù)通過集成靜態(tài)和運(yùn)行時(shí)分析,單元、功能和API測試,以及服務(wù)虛擬化,在不犧牲質(zhì)量和安全性的情況下加快軟件交付,節(jié)約交付成本。

    強(qiáng)大的報(bào)告和分析功能可幫助用戶快速查明有風(fēng)險(xiǎn)的代碼區(qū)域,并了解新代碼更改如何影響其軟件質(zhì)量,而突破性的技術(shù)將人工智能和機(jī)器學(xué)習(xí)添加到軟件測試中,使組織更容易采用和擴(kuò)展跨開發(fā)和測試團(tuán)隊(duì)的有效的軟件測試實(shí)踐。

    Parasoft針對C/C++、Java、.NET和嵌入式的開發(fā)測試都有著30多年的深入研究,很多全國500強(qiáng)企業(yè)使用Parasoft的產(chǎn)品實(shí)現(xiàn)了軟件快速、高質(zhì)量的交付。

        獲取Parasoft資料或申請?jiān)囉每杉観Q:2867205852

    申請Parasoft測試試用

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();