本主题描述 C/C++test 附带的测试配置,这些配置代表最常见的方案。参见以获取配置用于政策的测试配置和规则有关在团队中创建定制测试配置和部署测试配置的详细信息。

内置测试配置分为以下类别:

静态分析

该组包括通用静态分析测试配置。请参见 Compliance Packs 以获取强制执行编码标准的测试配置

测试配置 说明
推荐规则

推荐规则的默认配置。涵盖大多数严重性 1 和严重性 2 规则。流分析快速配置中包括规则。

流分析标准检测复杂的运行时错误,而无需测试案例或应用程序执行。检测到的缺陷包括使用未初始化或无效的内存,空指针解引用、数组和缓冲区溢出、被零除、内存和资源泄漏以及无效代码。  这需要专门的流分析许可证选项。有关流分析测试配置的更多详细信息,请参见 内置流分析测试配置介绍。
快速流分析 快速配置使用 "Shallowest” 的分析深度,并且比标准配置和主动配置运行得更快。快速配置可以发现适量的问题,并防止违规数量增加。有关流分析测试配置的更多详细信息,请参见 内置流分析测试配置介绍。
流分析侵蚀侵蚀选项将任何可疑代码报告为违规。有关流分析测试配置的更多详细信息,请参见 内置流分析测试配置介绍。
有效的 C++检查 Scott Meyers 的“有效的 C++”书中的规则。这些规则检查 C++ 程序的效率。
有效的 STL检查 Scott Meyers 的“有效的 STL”书中的规则。
Modern C++ (11, 14 和 17)检查对现代 C++ 标准(C++11、 C++14、 C++17)强制执行最佳实践的规则。
查找重复的代码检测重复的函数、代码片段、字符串文字和 #include 指令。
查找未使用的代码包括用于标识未使用/无效代码的规则。
度量指标报告度量指标统计信息并检测超出可接受范围的度量指标值。
全局分析检查全局静态分析规则。
Sutter-Alexandrescu根据 Herb Sutter 和 Andrei Alexandrescu 撰写的“C++ 编码标准”一书检查规则。
十的力量根据 Gerard J. Holzmann 的文章“十的力量-开发安全关键代码的规则”检查规则。(http://spinroot.com/gerard/pdf/Power_of_Ten.pdf)

遵从性软件包

合规性软件包包括针对特定遵从性域量身定制的测试配置,以帮助您实施行业特定的遵从性标准和实践。有关信息,请参见 Compliance Packs Rule Mapping 有关如何将标准映射到 C/C++test 的规则的信息。

在 DTP 上显示遵从性结果

此类别中的某些测试配置在 DTP 上具有相应的“遵从性”扩展,使您可以查看安全遵从性状态,生成遵从性报告并监测实现安全性遵从性目标的进度。  这些测试配置需要激活专用许可证功能。请与 Parasoft 支持联系,以获取有关遵从性软件包许可的更多详细信息。

有关可用扩展、要求和用法的列表,请参见 DTP 文档中的“ DTP 扩展”部分。

航天软件包

测试配置 说明
Joint Strike Fighter检查强制执行 Joint Strike Fighter (JSF)程序编码标准的规则。
DO178C 软件 A 级单元测试使用适当的覆盖率指标配置和报告设置执行 DO178C A 级软件的单元测试
DO178C 软件 B 级单元测试使用 DO178C B 级软件的覆盖率指标和报告设置的适当配置执行单元测试
DO178 C 软件 C 级和 D 级单元测试使用适当的覆盖率度量指标配置和报告设置执行 DO178C C 和 D 级软件的单元测试

汽车软件包

测试配置 说明
AUTOSAR C++14 编码准则

检查强制执行 AUTOSAR C++ 编码准则(自适应平台,版本 19.03)的规则。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监测对行业标准的遵从情况。它需要激活专用的许可证功能。有关详细信息,请联系您的 Parasoft 代理。

高完整性 C++检查强制执行“高完整性 C++ 编码标准”的规则。
HIS Source Code Metrics检查 Herstellerinitiative Software(HIS)组所需的度量指标。
MISRA C 1998检查强制执行 MISRA C 编码标准的规则。
MISRA C 2004检查强制执行 MISRA C 2004 编码标准的规则。
MISRA C++ 2008检查强制执行MISRA C ++ 2008编码标准的规则。
MISRA C 2012

检查强制执行 MISRA C 2012 编码标准的规则。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监视对行业标准的遵从情况。它需要激活专用的许可证功能。有关详细信息,请联系您的 Parasoft 代理。

ISO26262 ASIL A 单元测试使用适当的覆盖率度量指标配置和报告设置执行 ISO 26262 ASIL A 的单元测试
ISO26262 ASIL B 和 C 单元测试使用覆盖率度量指标的适当配置和 ISO26262 ASIL B 和 C 的报告设置执行单元测试
ISO26262 ASIL D 单元测试使用覆盖率度量指标的适当配置和报告设置执行 ISO 26262 ASIL D 的单元测试

医疗器械软件包

测试配置 说明
FDA (C) 推荐规则检查推荐的规则,以遵从 FDA 软件验证通用原则(C 语言的测试配置)。
FDA (C++) 推荐规则检查推荐的规则,以遵从 FDA 软件验证通用原则(C++ 语言的测试配置)。

安全软件包

测试配置 说明
CWE Top 25 2019

包括发现被分类为 CWE 标准的前 25 个最危险编程错误的问题的规则。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监测对行业标准的遵从情况。

CWE Top 25 2019 + On the Cusp

包括发现问题的规则,这些问题被分类为 CWE 标准的前 25 个最危险的编程错误,或者包含在 Cusp 列表中 CWE 不足。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监测对行业标准的遵从情况。

DISA-ASD-STIG包括查找由国防信息系统局提供的应用程序安全和开发 STIG(安全技术实施指南)中确定的问题的规则。
OWASP API Security Top 10 2019

包括发现 OWASP 的 API Security Top 10 标准中认定的问题的规则。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监视对行业标准的遵从情况。它需要激活专用的许可证功能。有关详细信息,请联系您的 Parasoft 代理。

OWASP Top 10 2017

包括查找 OWASP Top 10 - 2017 中认定的 Web 应用程序安全风险的规则。

OWASP Top 10 2021

包括查找 OWASP Top 10 - 2021 中认定的 Web 应用程序安全风险的规则。

(info) 这是测试配置的预览版。

支付卡行业数据安全标准

检查支付卡行业数据安全标准(PCI DSS)第 6 节中引用的安全问题规则 (https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml)

检测到的问题包括输入验证(以防止跨站点脚本编写、注入漏洞、恶意文件执行等)和正确的错误处理验证。

安全规则检查旨在防止或识别安全漏洞的规则。
SEI CERT C 编码准则检查 SEI CERT C 编码标准的规则和建议。该标准提供了安全编码的准则。目的是通过消除例如可能导致未定义程序行为和可利用漏洞的未定义行为、来促进安全、可靠和安全的系统的开发。
SEI CERT C Rules

检查 SEI CERT C 编码标准的规则。该标准提供了安全编码的准则。目的是通过消除例如可能导致未定义程序行为和可利用漏洞的未定义行为、来促进安全、可靠和安全的系统的开发。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监测对行业标准的遵从情况。它需要激活专用的许可证功能。有关详细信息,请联系您的 Parasoft 代理。

SEI CERT C++ Rules

检查 SEI CERT C++ 编码标准的规则。该标准提供了安全编码的准则。目的是通过消除例如可能导致未定义程序行为和可利用漏洞的未定义行为、来促进安全、可靠和安全的系统的开发。

(info) 此测试配置是 Parasoft 遵从性软件包解决方案的一部分,该解决方案使您可以使用 DTP 上的“遵从性”扩展来监测对行业标准的遵从情况。它需要激活专用的许可证功能。有关详细信息,请联系您的 Parasoft 代理。

UL 2900包括发现 UL-2900 标准中确定的问题的规则。

单元测试

测试配置 说明
文件范围>可执行构建测试(文件范围)

构建“试验构建”的测试可执行文件。

仅检测选定的文件。

文件范围>收集桩函数信息(文件范围)

收集符号数据以填充桩函数视图。

仅插桩选定的文件。

文件范围>调试单元测试(文件范围)

在调试器下执行单元测试。

仅插桩选定的文件。(info) 如果您调试使用 Visual Studio 2019 附带的 Microsoft Visual C++ 14.2 编译器编译的代码,请在调试之前启动 Visual Studio 2019 IDE,并确保它在后台运行,直到 C/C++test 运行结束。

文件范围>生成桩函数(文件范围)

为缺少的函数和变量定义生成桩函数。

仅插桩选定的文件。

文件范围>运行单元测试 

执行可用的测试用例。

仅插桩选定的文件。

构建测试可执行文件 

构建“试验构建”的测试可执行文件。

将插桩所有项目文件。

收集桩函数信息 

收集符号数据以填充桩函数视图。

将插桩所有项目文件。

调试单元测试 

在调试器下执行单元测试。

将插桩所有项目文件。(info) 如果您调试使用 Visual Studio 2019 附带的 Microsoft Visual C++ 14.2 编译器编译的代码,请在调试之前启动 Visual Studio 2019 IDE,并确保它在后台运行,直到 C/C++test 运行结束。

生成回归基础

生成基准测试套件,以捕获项目代码的当前功能;要检测此基准上的更改,您可以定期针对此测试套件运行演进的代码库。 

结果将自动验证。

生成存根

为缺少的函数和变量定义生成存根。

将插桩所有项目文件。

生成测试套件为所选资源生成测试套件(不生成测试用例)。
生成单元测试为所选资源生成单元测试。
运行单元测试

执行可用的测试用例。

将插桩所有项目文件。

使用内存监测运行单元测试

执行可用的测试用例并收集有关内存问题的信息。

将插桩所有项目文件。

在容器中运行单元测试

使用工具链和 Docker 容器中的测试环境执行测试用例 (参见使用 Docker 容器进行分析和测试)。

应用程序监测

测试配置 说明
使用覆盖率监测构建应用程序在启用覆盖率监测的情况下构建经过测试的应用程序。
全面监测构建应用程序在启用覆盖率和内存监测的情况下构建经过测试的应用程序。
使用内存监测构建应用程序在启用覆盖率监测的情况下构建经过测试的应用程序。
使用覆盖率监测构建应用程序在启用覆盖率监测的情况下生成并执行经过测试的应用程序。
在完全监测的情况下构建和运行应用程序在启用覆盖率和内存监测的情况下生成并执行经过测试的应用程序。
使用内存监测构建和运行应用程序在启用覆盖率监测的情况下生成并执行经过测试的应用程序。

嵌入式系统

测试配置 说明
ARM > 通过内存监测运行 ARM 嵌入式 Linux 应用程序在启用覆盖和内存监视的 ARM 嵌入式 Linux 系统上(在实际目标设备或模拟器上)构建并执行经过测试的应用程序。测试执行结果保存在目标计算机文件系统上,并使用 scp 命令复制到主机。
ARM > 运行可执行的 ARM 嵌入式 Linux 测试使用 SSH 协议(在实际目标设备或模拟器上)构建和执行单元测试。测试执行结果保存在目标计算机文件系统上,并使用 scp命令复制到主机。
ARM > 运行带有内存监测功能的 DS-5 2.2 应用程序在启用覆盖率和内存监测的情况下,在 DS-5 调试器上构建并执行经过测试的应用程序。
ARM > 运行 DS-5 2.2 测试使用 DS-5 调试器构建和执行单元测试,并收集结果。
ARM > 运行具有内存监测功能的 DS-5 3.x 4.x 应用程序在启用覆盖率和内存监测的情况下,在 DS-5 调试器上构建并执行经过测试的应用程序。它会生成一个临时调试器脚本,其中包含有关应如何启动测试二进制文件的信息,并使用生成的脚本启动调试器。    您可能需要自定义通过“目标连接配置”测试流程属性传递给调试器脚本的调试器连接名称。
ARM > 运行 DS-5 3.x 4.x 测试

使用 DS-5 调试器构建和执行单元测试,并收集结果。它会生成一个临时调试器脚本,其中包含有关应如何启动测试二进制文件的信息,并使用生成的脚本启动调试器。您可能需要自定义通过“目标连接配置”测试流程属性传递给调试器脚本的调试器连接名称。

Arm > 使用内存监视运行 DS-5 应用程序(软件模型)在软件模型模拟器上生成并执行经过测试的应用程序。启用覆盖率和内存监测。您可以选择模型的名称(可执行)。
Arm > 运行可执行的 DS-5 测试(软件模型)使用软件模型模拟器构建并执行单元测试。您可以选择模型的名称(可执行)。
Altium > 使用 Mem 监测运行 Altium TASKING CTC 应用程序 使用 TriCore 指令集模拟器上的 TASKING 独立调试器(dbgtc)构建并执行测试的应用程序。启用覆盖率和内存监测。模拟器上的测试执行结果保存在主机文件系统中。 
Altium > 使用 Mem 监测运行 Altium TASKING CTC 应用程序- CrossView 使用 TASKING Cross View Pro 调试器(默认情况下在 TriCore 指令集模拟器上)构建并执行经过测试的应用程序。  启用覆盖率和内存监测。模拟器上的测试执行结果保存在主机文件系统中。
Altium>运行 Altium TASKING CTC 测试使用 TriCore 指令集模拟器上的 TASKING 独立调试器(dbgtc)构建并执行单元测试。模拟器上的测试执行结果保存在主机文件系统中。 
Altium>运行 Altium TASKING CTC 测试- CrossView使用 TASKING Cross View Pro 调试器(默认情况下在 TriCore 指令集模拟器上)构建并执行单元测试。模拟器上的测试执行结果保存在主机文件系统中。
Spansion > 使用 Spansion FR Softune 的内存监视构建和运行应用程序-模拟器在启用内存监测的情况下,在模拟器上生成并运行 Softune 应用程序。测试执行的结果保存在主机文件系统中。
Spansion> 运行 Spansion FR 软件测试 - Simulator使用模拟器上的 Softune 调试器构建和执行单元测试。测试执行的结果保存在主机文件系统中。
GNU GCC > 运行具有组件覆盖率监测的 GNU GCC 测试针对 Linux x86(32位)的 GNU GCC 编译器的多合一配置,该程序执行带有程序集覆盖率监测的单元测试。
Green Hills Software > 运行 GHS TestsGHS MULTI Embedded 的多合一配置,可构建、启动测试二进制文件并读取运行时日志。
Green Hills Software>使用 Mem 监测运行 GHS 应用程序GHS MULTI Embedded 的多合一配置,可以在启用内存监视的应用程序模式下构建测试二进制文件,然后启动它并读取运行时日志。
Green Hills Software>使用程序集覆盖率监测运行 GHS 测试GHS MULTI Embedded 的多合一配置,可构建、启动测试二进制文件并读取运行时日志。除单元测试结果外,还收集程序集覆盖率
IAR 系统> 使用 Mem 监测运行 IAR ARM 应用程序一种多合一配置,可以在启用内存监测的应用程序模式下构建测试二进制文件,然后启动它并读取运行时日志。使用手动模拟器配置。
IAR 系统> 运行 IAR ARM 测试 一种构建测试二进制文件,启动它并读取运行时日志的多合一配置。使用手动模拟器配置。
IAR 系统> 使用 Mem 监测运行 IAR EW 应用程序(批处理模板)一种多合一配置,可以在启用内存监测的应用程序模式下构建测试二进制文件,然后启动它并读取运行时日志。使用 EW 生成的批处理脚本。
IAR 系统> 运行 IAR EW 测试(批处理模板)一种构建测试二进制文件,启动它并读取运行时日志的多合一配置。使用 EW 生成的批处理脚本。
IAR 系统> 使用 Mem 监测运行 IAR MSP430 应用程序一种多合一配置,可以在启用内存监测的应用程序模式下构建测试二进制文件,然后启动它并读取运行时日志。使用手动模拟器配置。
IAR 系统> 运行 IAR MSP430 测试一种构建测试二进制文件,启动它并读取运行时日志的多合一配置。使用手动模拟器配置。
IAR 系统 > 使用 Mem 监测运行 IAR RX 应用程序一种多合一配置,可以在启用内存监测的应用程序模式下构建测试二进制文件,然后启动它并读取运行时日志。使用手动模拟器配置。
IAR 系统> 运行 IAR RX 测试一种构建测试二进制文件,启动它并读取运行时日志的多合一配置。使用手动模拟器配置。
Keil uVision > 运行 Keil uVision 测试 - ULINK2 (UART)使用 uVision 调试器构建和执行单元测试,并通过 RS232 连接收集结果。串行端口侦听器用于捕获结果传输。  您可能需要自定义串行连接参数
Keil uVision > 运行 Keil uVision 测试 - ULINKPro 或 Simulator (ITM)使用 uVision 调试器构建和执行单元测试,基于 ITM 的通信渠道收集结果。 
Keil uVision > 运行 Keil uVision 测试 - Simulator (UART)使用 uVision 调试器和模拟器构建和执行单元测试。收集结果并通过模拟 UART 发送。您可能需要自定义串行连接参数
Keil uVision > 使用内存监测运行 Keil uVision 应用程序 - ULINK2 (UART)使用 uVision 调试器在启用了覆盖和内存监视的情况下构建并执行经过测试的应用程序。通过 RS232 连接收集结果。  串行端口侦听器用于捕获结果传输。您可能需要自定义串行连接参数
使用内存监测运行 Keil uVision 应用程序 - ULINKPro 或 Simulator(ITM)使用 uVision 调试器构建并执行测试的应用程序,并启用覆盖和内存监测。通过基于 ITM 的通信通道收集结果。 
Lauterbach Trace32 > 使用 Trace32(FDX)运行带有内存监测的应用程序使用 Lauterbach Trace32 调试器构建并执行经过测试的应用程序。启用覆盖率和内存监测。测试执行的结果保存在主机文件系统中(通过 FDX 协议发送)。默认情况下,调试器设置为与 TriCore TC1796 处理器一起使用。
Lauterbach Trace32 > 使用 Trace32(FDX)运行测试使用 Lauterbach Trace32 调试器构建和执行单元测试。测试执行的结果保存在主机文件系统中(通过 FDX 协议发送)。默认情况下,调试器设置为与 TriCore TC1796 处理器一起使用。
QNX > 使用内存监视为 QNX Momentics 构建和运行应用程序在远程 QNX 系统上构建并执行经过测试的应用程序。您需要自定义远程系统属性(远程主机,用户名和测试目录)。与远程系统的通信基于 rsh 和 rcp 工具。
QNX > 运行 QNX Momentics 测试在远程 QNX 系统上构建并执行单元测试。您需要自定义远程系统属性(远程主机,用户名和测试目录)。与远程系统的通信基于 rsh 和 rcp 工具。
Renesas HEW> 运行 HEW 4.x 测试 (simulated IO)使用 SH 模拟器上的 HEW 调试器构建并执行单元测试。模拟器上的测试执行结果保存在主机文件系统中。
Renesas HEW> 使用 Mem 监测 (simulated IO) 运行 HEW 4.x 应用程序使用 SH 模拟器上的 HEW 调试器构建并执行测试的应用程序。启用覆盖率和内存监测。模拟器上的测试执行结果保存在主机文件系统中。
Texas Instruments > 运行带有内存监测功能的 TI CCS 4.x 应用程序在启用覆盖率和内存监测的情况下,在 Code Composer 调试器中生成并执行经过测试的应用程序。它将自动检测 CCS 项目的活动目标配置。
Texas Instruments > 运行 TI CCS 4.x 测试使用 Code Composer 调试器构建和执行单元测试,并收集结果。它将自动检测 CCS 项目的活动目标配置。
Wind River> Tornado>构建 VxWorks 测试对象 (PassFS)构建一个使用传递文件系统存储结果的测试对象。这包括生成和读取静态覆盖率数据(如果启用),但不启动测试对象或读取任何动态数据。
Wind River> Tornado> 构建 VxWorks 测试对象(套接字)构建一个使用套接字传输和存储结果的测试对象。这包括生成和读取静态覆盖率数据(如果启用),但不启动测试对象或读取任何动态数据。
Wind River> Tornado> 构建 VxWorks 测试对象 (TSFS)构建使用目标服务器文件系统的测试对象。这包括生成和读取静态覆盖率数据(如果启用),但不启动测试对象或读取任何动态数据。
Wind River> Tornado> 加载并运行 VxWorks 测试对象使用 Wind River Shell 启动测试对象。与 PassFS 和 TSFS 构建配置一起使用。
Wind River> Tornado> 加载并运行 VxWorks 测试对象(Socket)启动套接字侦听器,然后使用 Wind River Shell 启动测试二进制文件。与套接字构建配置一起使用。

Wind River> Tornado>使用 Mem 监测(PassFS)运行 VxWorks 应用程序

一种多合一配置,可以在启用内存监测的应用程序模式下构建测试二进制文件,然后启动它并读取运行时日志。
Wind River> Tornado> 运行 VxWorks 单元测试 (PassFS)构建测试对象,启动它并读取运行时日志的多合一配置。 

Wind River> Workbench 3.x> 生成可执行的 VxWorks 测试 - RTP (PassFS)

用于以实时过程可执行文件的形式准备测试二进制文件。PassFS 将用于存储测试结果。 
Wind River> Workbench 3.x> 生成可执行的 VxWorks 测试 - RTP (套接字)用于以实时过程可执行文件的形式准备测试二进制文件。TCP/IP 套接字将用于发送测试结果。 
Wind River> Workbench 3.x> 生成可执行的 VxWorks 测试 - RTP (TSFS)用于以实时过程可执行文件的形式准备测试二进制文件。TSFS 将用于存储测试结果。 
Wind River> Workbench 3.x> 生成 VxWorks 测试模块 - DKM (PassFS)以可下载的内核模块的形式构建测试二进制文件,包括 ctdt.c 文件生成。使用 C++test 进行测试时,可能需要从构建中排除原始 cdtd.c 文件,以避免原始构建 ctdt.c 与 C++test 生成的 ctdt.c 之间发生冲突。PassFS 将用于存储测试结果。 
Wind River> Workbench 3.x> 加载和运行可执行 VxWorks 测试(RTP) 在 VxSim 上运行测试二进制文件。
Wind River> Workbench 3.x> 加载并运行 VxWorks 测试对象(DKM) 在 VxSim 上运行测试二进制文件。
Wind River> Workbench 3.x> 使用 Mem 监测运行 VxWorks 应用程序 - DKM (PassFS)

一种多合一配置,以应用程序模式在启用了内存监测的情况下以可下载内核模块的形式构建测试二进制文件,然后启动它并读取运行时日志。

PassFS 将用于存储测试结果。

Wind River> Workbench 3.x> 用 Mem 监测 VxWorks 应用程序 - DKM (TSFS)一种多合一配置,以应用程序模式在启用了内存监测的情况下以可下载内核模块的形式构建测试二进制文件,然后启动它并读取运行时日志。TSFS 将用于存储测试结果。
Wind River> Workbench 3.x> 使用 Mem 监测运行 VxWorks 应用程序 - RTP (PassFS)一种多合一的配置,可以在启用了内存监视的应用程序模式下以实时进程的形式构建测试二进制文件,然后启动它并读取运行时日志。PassFS 将用于存储测试结果。
Wind River> Workbench 3.x> 用 Mem 监测 VxWorks 应用程序 - RTP (TSFS)一种多合一的配置,可以在启用了内存监视的应用程序模式下以实时进程的形式构建测试二进制文件,然后启动它并读取运行时日志。TSFS 将用于存储测试结果。
Wind River> Workbench 4.x>在完全监测下运行 VxWorks DKM 应用程序(文件系统,WRWB 4.x)WRWB 4.x 的多合一配置,以应用程序模式下可下载内核模块的形式构建测试二进制文件,将二进制文件加载到目标中,运行测试二进制文件,从目标文件中卸载二进制文件并收集 覆盖率和运行时监视结果。
Wind River> Workbench 4.x>运行 VxWorks DKM 单元测试(文件系统,WRWB 4.x)WRWB 4.x 的多合一配置,以可下载的内核模块的形式构建测试二进制文件,将二进制文件加载到目标中,执行单元测试,从目标文件中卸载二进制文件,并收集覆盖率和测试结果。
Wind River> Workbench 4.x>在完全监测下运行 VxWorks RTP 应用程序(文件系统,WRWB 4.x)WRWB 4.x 的多合一配置,以应用程序模式以实时进程的形式构建测试二进制文件,将二进制文件加载到目标中,运行测试二进制文件,从目标文件中卸载二进制文件并收集覆盖率和运行时监测结果。
Wind River> Workbench 4.x>运行 VxWorks RTP 单元测试(文件系统,WRWB 4.x)WRWB 4.x 的多合一配置,以实时过程的形式构建测试二进制文件,将二进制文件加载到目标中,执行单元测试,从目标文件中卸载二进制文件,并收集覆盖率和测试结果。
Wind River> 从 VxWorks 图像中提取符号从选定的 VxWorks 图像中提取符号。使用来自 Wind River> Workbench 3.x 组的测试配置测试 DKM 项目时,应使用提取的符号。
构建可执行测试 - 通用嵌入式系统

实用工具

测试配置 说明
Load Test 结果(文件)

通过文件通道收集测试结果。默认情况下,此配置假定日志位于${cpptest:testware_loc}内部。如果需要,您可以将此位置自定义为可以从 C++test GUI 访问的任何文件系统位置。

Load Test 结果(套接字)收集通过 TCP/IP 套接字发送的“运行”测试结果。它启动一个 Java 实用程序来监听和捕获测试结果。您可以自定义用于测试和覆盖率结果的端口号。使用 results_portcoverage_port 属性定义端口号。 
提取数据库符号用于从外部数据库(或对象文件)中提取符号列表。只要 C++test 的标准算法无法从二进制文件中收集有关符号的信息,就应使用此方法。例如,如果您使用 Wind River DKM 类型的项目,则可能希望以这种方式收集 VxWorks 映像中的所有符号。您可能需要输入要从中提取符号的二进制文件的位置,以及可以用于转储库/目标文件内容的 nm-like 实用程序的名称。 
使用外部数据库符号生成存根在“提取库符号”测试配置运行后生成桩函数。假定带有来自外部数据库的符号列表的文件存储在项目临时数据中。 
加载应用程序覆盖率将使用cpptestcc覆盖率工具收集的覆盖率数据导入您的 IDE;请参阅使用 cpptestcc 收集应用程序覆盖率
加载归档结果将归档的结果加载到 C/C++test 中;请参阅合并多个测试运行的结果

集成

测试配置 说明
Lattix Architect> 导出代码依赖数据为 Lattix Architect 导出代码依赖数据。有关详细信息,请参见与 Lattix Architect 集成



遵从性包规则映射

本节包括 CWE 标准的规则映射。遵从性包随附的 PDF 规则映射文件中提供了其他标准的映射信息。

CWE Top 25 Mapping

CWE ID

CWE 名称

Parasoft rule ID(s)

CWE-119

内存缓冲区范围内的操作限制不当

  • CWE-119-a
  • CWE-119-b
  • CWE-119-c
  • CWE-119-d
  • CWE-119-e
  • CWE-119-f
  • CWE-119-g
  • CWE-119-h
  • CWE-119-i
  • CWE-119-j

CWE-79

网页生成过程中输入的不适当中和(“跨站点脚本”)

N/A

CWE-20

输入验证不正确

  • CWE-20-a
  • CWE-20-b
  • CWE-20-c
  • CWE-20-d
  • CWE-20-e
  • CWE-20-f
  • CWE-20-g
  • CWE-20-h
  • CWE-20-i
  • CWE-20-j

CWE-200

信息公开

  • CWE-200-a

CWE-125

越界读取

  • CWE-125-a
  • CWE-125-b
  • CWE-125-c
  • CWE-125-d

CWE-89

SQL 命令中使用的特殊元素的不正确中和(“SQL 注入”)

  • CWE-89-a

CWE-416

释放后使用

  • CWE-416-a
  • CWE-416-b
  • CWE-416-c

CWE-190

整数溢出或环绕

  • CWE-190-a
  • CWE-190-b
  • CWE-190-c
  • CWE-190-d
  • CWE-190-e
  • CWE-190-f
  • CWE-190-g

CWE-352

跨站请求伪造(CSRF)

N/A

CWE-22

路径名对受限目录的不正确限制(“路径遍历”)

  • CWE-22-a

CWE-78

OS 命令中使用的特殊元素不正确地中和(“OS 命令注入”)

  • CWE-78-a

CWE-787

越界输入

  • CWE-787-a
  • CWE-787-b
  • CWE-787-c
  • CWE-787-d
  • CWE-787-e
  • CWE-787-f

CWE-287

身份验证不正确

  • CWE-287-a

CWE-476

空指针解引用

  • CWE-476-a
  • CWE-476-b

CWE-732

关键资源的权限分配不正确

  • CWE-732-a
  • CWE-732-b

CWE-434

不受限制地上传危险类型的文件

N/A

CWE-611

XML 外部实体引用的限制不当

  • CWE-611-a

CWE-94

代码生成的控制不当(“代码注入”)

N/A

CWE-798

硬编码凭证的使用

  • CWE-798-a

CWE-400

不受控制的资源消耗

  • CWE-400-a

CWE-772

有效生命周期后缺少资源释放

  • CWE-772-a
  • CWE-772-b

CWE-426

不可信的搜索路径

  • CWE-426-a

CWE-502

不可信数据的反序列化

N/A

CWE-269

权限管理不当

  • CWE-269-a
  • CWE-269-b

CWE-295

证书验证不正确

N/A

Cusp 映射上的 CWE 缺陷

CWE ID

CWE 名称

Parasoft rule ID(s)

CWE-835

具有无法到达的退出条件的循环(“无限循环”)

  • CWE-835-a

CWE-522

凭证保护不足

N/A

CWE-704

类型转换或强制转换不正确

  • CWE-704-a
  • CWE-704-b
  • CWE-704-c
  • CWE-704-d
  • CWE-704-e
  • CWE-704-f
  • CWE-704-g
  • CWE-704-h
  • CWE-704-i
  • CWE-704-j
  • CWE-704-k
  • CWE-704-l

CWE-362

使用共享资源并同步不当(“竞争条件”)进行并发执行

  • CWE-362-a
  • CWE-362-b
  • CWE-362-c
  • CWE-362-d
  • CWE-362-e

CWE-918

服务器端请求伪造(SSRF)

N/A

CWE-415

Double Free

  • CWE-415-a

CWE-601

URL 重定向到不受信任的站点(“打开重定向”)

N/A

CWE-863

授权错误

  • CWE-863-a

CWE-862

缺少授权

N/A

CWE-532

在日志文件中包含敏感信息

  • CWE-532-a

CWE-306

缺少关键函数的验证

N/A

CWE-384

会话固定

N/A

CWE-326

加密强度不足

  • CWE-326-a

CWE-770

无限制或节流的资源分配

  • CWE-770-a

CWE-617

可达断言

  • CWE-617-a



  • No labels