在自动化开发流程中,集成静态代码分析对保障代码质量至关重要。Parasoft C/C++test 的命令行工具为持续集成提供了强大支持。下面将说明如何使用 cpptesttrace 和 cpptestcli 这两个核心工具,完成从项目构建到静态分析的全流程。
>>点击获取Parasoft C/C++test试用
生成BDF——cpptesttrace
相关参数
使用安装目录下bin目录下的cpptesttrace命令,主要介绍四个参数。
- --cpptesttraceProjectName 指定的是C/C++test的项目名;
- --cpptesttraceOutputFile 指定的是BDF的生成路径及BDF的名称,一定要是绝对路径,例如/home/root/project/project.bdf;
- --cpptesttraceTraceCommand指定的是跟踪编译器的名称。一般来说不需要指定,但是如果编译器不在C/C++test已知列表中,如交叉编译器,就需要额外指定,示例:arm-linux-gcc;
- --cpptesttraceHelp打印帮助输出。
使用方式
基本命令为cpptesttrace
[参数]
[构建命令],示例:
如果项目构建命令是./build.sh,那生成BDF的命令可以为
cpptesttrace \ --cpptesttraceProjectName=project \ --cpptesttraceOutputFile=/home/root/project/project.bdf \ --cpptesttraceTraceCommand=ntoaarch64-gcc \ ./build.sh
项目运行——cpptestcli
项目的测试需要依靠cpptestcli,介绍一下几个重要的参数。
相关参数
- -config: 指定本次测试的测试配置,可以是文件、测试配置名或者连接等。
- -data: 指定工作空间。
- -resource: 指定测试范围。测试范围的.properties文件: com.parasoft.eclipse.checker.core.resources指定测试范围,用:隔开。
- -include&-exclude: 指定额外包含或者排除的文件。
- -bdf: 对应导入操作,指定项目的bdf文件,C/C++test会导入对应的项目。
- -gpj: 对应导入操作,适用于Green Hills项目。
- -import: 对应导入操作,适用于eclipse项目(实测不适用于基于eclipse的环境如tasking、CCS,读不到特定于这些项目的属性配置等)、已存在的C/C++test项目以及特殊情况(比如CMake项目,通过修改CMakeLists.txt文件配置的方式)。
- -publish: 加上这个选项,C/C++test会在测试完成后将结果上传到DTP。
- -report: 指定报告生成的路径。
- -localsettings: 指定一个.properties文件,这个文件主要是设置首选项的内容。
- -showdetails: 打印详细的进度信息。
- -appconsole: 命令行输出控制台内容。
- -list-configs&-list-compilers: 分别是打印可使用的测试配置以及可供选择的编译器。
- -encodepass: 对密码加密。
- -machineid: 打印机器码。
config选项
这个参数后面可以接文件,文件可以由界面导出:
1、找到菜单栏的Parasoft,然后选择测试配置;

2、找到要导出的配置,右击,选择导出;

3、然后导出文件的路径和名字就好了。
localsettings选项
4、编译器相关设置:
# 指定编译器家族,如果不清楚,可以使用cpptestcli [其他参数] -list-compilers # 打印出可选择的编译器家族名称 # 交叉编译器一般需要 bdf.import.compiler.family=gcc_5_custom0 # 设置具体的C编译、C++编译器和链接器 bdf.import.c.compiler.exec=/home/admins/prebuilt_QNX700/host/linux/x86_64/usr/bin/ntoaarch64-gcc bdf.import.cpp.compiler.exec=/home/admins/prebuilt_QNX700/host/linux/x86_64/usr/bin/ntoaarch64-gcc bdf.import.linker.exec=/home/admins/prebuilt_QNX700/host/linux/x86_64/usr/bin/ntoaarch64-gcc
5、DTP相关设置:
# 指定服务器的ip地址 dtp.server=127.0.0.1 # 指定端口号 dtp.port=8443 # 指定用户名密码 dtp.user=admin dtp.password=admin # 如果需要上传报告到DTP,需要指定上传到DTP的具体的项目,这个项目名必须是存在的 dtp.project=Default Project # 设置为true相当于`cpptestcli -publish` dtp.share.enabled=true
6、license相关设置:
# 浮动license cpptest.license.use_network=true # license版本,具体看不同的license cpptest.license.network.edition=automation_compliance_edition
# 锁定license cpptest.license.use_network=false cpptest.license.local.password=[具体license]
7、另外也可以从本地导出设置,方法是:
(1)找到菜单栏的Parasoft,然后选择首选项;

(2)还是选择Parasoft,然后是右边的共享;

(3)选择要导出的设置,比如报告、许可证等,然后输入要导出的路径文件,应用之后设置就能导出成文件了。

附上cpptestcli.properties供参考。
项目导入
通过前面对选项的描述,可以了解项目导入主要是使用-bdf、-gpj或-import参数指定。一般需要指定工作空间以及通过-localsettings选项指定项目编译器。
示例:
cpptestcli -data $proj_workspace -bdf ${proj_loc}/${proj_name}.bdf \
-localsettings $proj_workspace/localsettings.properties
执行静态分析
执行静态分析主要是跟-config参数相关。如果有执行项目导入,这一步可以省去-bdf、-gpj或-import参数,指定-data和-localsettings,一般也会加上-report指定报告生成路径,如果不指定,会生成在当前目录下。如果有DTP,也可能会加上-publish参数,将报告同时上传到DTP中。
示例:
cpptestcli -data $proj_workspace -config "builtin://MISRA C 2012" \
-report ${proj_workspace}/report \
-localsettings $proj_workspace/localsettings.properties \
-publish
通过组合运用cpptesttrace生成BDF与cpptestcli执行分析,能快速构建起高效的自动化静态代码分析流程。而且Parasoft C/C++test还能进行深入的单元测试、运行时错误检测,并集成代码覆盖率分析。通过将这些能力统一融入开发周期,C/C++test能够从根本上提升软件质量,降低后期修复成本,并确保产品符合最严苛的安全与可靠性标准。
关于慧都
慧都科技(EVGET)成⽴于2003年,是⼀家⾏业数字化解决⽅案公司,⻓期专注于软件、油⽓与制造⾏业。公司基于深⼊的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与⻓期竞争优势。
慧都科技作为Parasoft公司在中国区的官方授权合作伙伴,为国内企业提供Parasoft C/C++test产品的正版授权、定制化部署与全生命周期技术支持与服务。我们致力于助力客户精准贯彻功能安全标准、全面提升软件开发效率、有效管控项目风险,最终构建符合国际标准的高质量软件体系。
023-68661681
返回
发表评论