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