翻譯|使用教程|編輯:李顯亮|2021-07-13 10:15:35.740|閱讀 585 次
概述:Parasoft C++testC++test 可以進行靜態分析,全面代碼審查,運行時錯誤檢測,并在單元測試和組件測試中集成覆蓋率分析。本系列文章將為自動化用戶提供基礎操作指南,本文將介紹parasoft中如何運行靜態分析。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Parasoft C/C++test針對C/C++開發的專業白盒自動化測試方案,能有效提高軟件開發效率和代碼質量。C++test 可以進行靜態分析,全面代碼審查,運行時錯誤檢測,并在單元測試和組件測試中集成覆蓋率分析。
先決條件
在分析代碼之前,必須將 C/C++test 配置為與特定的 C 和 C++ 編譯器和版本一起使用。配置應反映用于構建被測代碼的原始編譯器和版本。原始編譯器可執行文件必須在 $PATH 上可用(除非使用完整路徑指定)。
使用-compiler開關指定編譯器配置標識符:
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input cpptest.bdf
或者,您可以cpptest.compiler.family在自定義配置文件中配置該屬性:
cpptest.compiler.family=gcc_4_5
如果您使用單個編譯器和版本進行所有測試,則cpptestcli.properties 可以在 [INSTALL_DIR] 或 [USER_HOME] 目錄中的全局配置文件中指定編譯器標識符。
執行以下操作之一以查找編譯器的配置:
cpptestcli -detect-compiler gcc
cpptestcli -list-compilers
分析單個文件
運行分析并使用--開關(分隔符)指定原始編譯器命令。
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -- gcc -I include Bank.cxx
C/C++test 將使用原始編譯器可執行文件和編譯器選項分析 Bank.cxx 文件,并向輸出控制臺報告檢測到的違規。
只會分析指定的源文件。源文件中包含的頭文件將被排除在分析之外。要擴大測試文件的范圍,包括頭文件。
您還可以使用該-fail選項在分析報告靜態分析結果時生成非零退出代碼。
分析基于 Makefile 的項目
運行代碼分析和指定原始構建命令與-trace開關。
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -trace make clean all
C/C++test 將執行以下任務:
只有在運行構建命令時編譯了該文件,C/C++test 才會檢測用于測試的源文件。只會分析來自 Makefile 的源文件。源文件中包含的頭文件將被排除在分析之外。
關于構建數據文件
構建數據文件存儲構建信息,例如工作目錄、編譯的命令行選項以及原始構建的鏈接過程。指定 .bdf 文件的路徑使您無需重新構建即可分析項目。
您可以使用 -trace開關創建 .bdf 或使用位于. 中的獨立cpptestscan或cpptesttrace實用程序[INSTALL_DIR]/bin directory。
以下示例是來自構建數據文件的片段:
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實用程序
該cpptestscan實用程序在正常構建期間用作編譯器和/或鏈接器的包裝器。要cpptestscan與現有構建一起使用,請cpptestscan在構建代碼庫時為編譯器/鏈接器可執行文件添加前綴。這可以通過兩種方式完成:
要cpptesttrace與現有構建一起使用,請cpptesttrace在構建代碼庫時為整個構建命令添加前綴。cpptesttrace將跟蹤構建期間執行的編譯器和鏈接器進程,并將它們存儲在構建數據文件中。
在這兩種情況下,您都必須在 PATH 環境變量中指定任一實用程序的完整路徑。下表總結了cpptestscan和 的其他選項cpptesttrace。可以直接為cpptestscan命令或通過環境變量設置選項。大多數選項都可以應用于cpptestscan或cpptesttrace 通過更改命令行中的前綴。
cpptestscan 的基本用法:
基本的 cpptesttrace 用法:
選項
|
環境變量
|
描述
|
默認
|
---|---|---|---|
--cpptestscanOutput-File=<OUTPUT_FILE> --cpptesttraceOutput-File=<OUTPUT_FILE> |
CPPTEST_SCAN_OUTPUT_FILE | 定義要附加構建信息的文件。 | cpptestscan.bdf |
--cpptestscanProject-Name=<PROJECT_NAME> --cpptesttraceProject-Name=<PROJECT_NAME> |
CPPTEST_SCAN_PROJECT_NAME | 定義 C++test 項目的建議名稱。 | 當前工作目錄的名稱 |
--cpptestscanRun-OrigCmd=[yes|no] --cpptesttraceRun-OrigCmd=[yes|no] |
CPPTEST_SCAN_RUN_ORIG_CMD | 如果設置為“是”,將執行原始命令行。 | 是的 |
--cpptestscanQuoteCmdLineMode=[all|sq|none] --cpptesttraceQuoteCmdLineMode=[all|sq|none] |
CPPTEST_SCAN_QUOTE_CMD_LINE_MODE |
確定在準備 cmd 行運行時 C++test 引用參數的方式。 all: 所有參數都將被引用 none: 不會引用任何參數 sq: 只有帶有空格或引號字符的參數才會被引用 Linux 不支持 cpptestscanQuoteCmdLineMode |
全部 |
--cpptestscanCmd-LinePrefix=<PREFIX> |
CPPTEST_SCAN_CMD_LINE_PREFIX | 如果非空且正在運行的原始可執行文件被打開,則指定的命令將作為原始命令行的前綴。 | [空的] |
--cpptestscanEnvInOutput=[yes|no] --cpptesttraceEnvInOutput=[yes|no] |
CPPTEST_SCAN_ENV_IN_OUTPUT | 啟用會轉儲選定的環境變量和輸出文件的命令行參數。對于高級設置,請使用 --cpptestscanEnvFile 和 --cpptestscanEnvars 選項 | 不 |
--cpptestscanEnv-File=<ENV_FILE> --cpptesttraceEnv-File=<ENV_FILE> |
CPPTEST_SCAN_ENV_FILE | 如果啟用,指定的文件會保留所有構建命令的公共環境變量;主輸出文件只會保留差異。使用此選項可減小主輸出文件的大小。在啟用 --cpptestscanEnvInOutput 的情況下使用此選項 | [空的] |
在不重新構建的情況下重新分析項目
運行代碼分析并使用-input開關指定現有構建數據文件的路徑。例如:
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input cpptest.bdf
C/C++test 將執行以下任務:
不會執行原來的構建命令。
您可以使用多個-input開關指定多個文件:
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input project1.bdf -input project2.bdf
分析基于 CMake 的項目
分析基于 CMake 的項目:
更新 C/C++test 命令行以包含-input <PATH_TO_COMPILE_COMMANDS_JSON>傳遞編譯命令文件的位置。您的命令行可能類似于以下內容:
cpptestcli -config "builtin://Recommended Rules" -compiler gcc_4_5 -input compile_commands.json
C/C++test 將執行以下任務:
C/C++test 只會分析編譯命令文件中定義的源文件。源文件中包含的頭文件將被排除在分析之外。
分析 Microsoft Visual Studio 項目或解決方案
C/C++test 可以讀取 Visual Studio 項目和解決方案文件,并分析項目或解決方案中的所有源文件和包含的頭文件。使用-input開關指定 Visual Studio 項目或解決方案文件:
cpptestcli -config "builtin://Recommended Rules" -input MyProject.vcproj
您可以指定在分析項目或解決方案期間要使用的構建配置和平臺。將配置和平臺名稱附加到解決方案或項目文件名。您的命令可能類似于以下內容:
cpptestcli -config "builtin://Recommended Rules" -input MyProject.vcproj@Debug|x64
或者,您可以使用以下屬性來指定在分析所有 Visual Studio 解決方案和項目期間要使用的構建配置和平臺:
cpptest.input.msvc.config=Debug cpptest.input.msvc.platform=x64
指定 C/C++test 數據位置
.cpptest需要對該目錄的獨占訪問權限。默認情況下,該目錄在當前工作目錄中創建,該目錄是存儲某些特定于運行的數據的位置。因此,一次只能在一個目錄中運行一個 C/C++test 實例。您可以使用該-workspace開關更改 .cpptest 目錄的位置。
-workspace <WORKSPACE_LOCATION>
Parasoft是一家專門提供軟件測試解決方案的公司,幫助企業打造無缺陷的軟件。
從開發到質量檢查,Parasoft的技術通過集成靜態和運行時分析,單元、功能和API測試,以及服務虛擬化,在不犧牲質量和安全性的情況下加快軟件交付,節約交付成本。
強大的報告和分析功能可幫助用戶快速查明有風險的代碼區域,并了解新代碼更改如何影響其軟件質量,而突破性的技術將人工智能和機器學習添加到軟件測試中,使組織更容易采用和擴展跨開發和測試團隊的有效的軟件測試實踐。
Parasoft針對C/C++、Java、.NET和嵌入式的開發測試都有著30多年的深入研究,很多全國500強企業使用Parasoft的產品實現了軟件快速、高質量的交付。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn