Parasoft C/C++test is a unified, fully-integrated testing solution that helps users identify defects earlier in the development process. Parasoft C/C++test is the best tool on the market for reducing the burden of achieving compliance with security, functional safety, and coding standards such as MISRA, CERT, ISO 26262, DO-178B/C, IEC 61508, IEC 62304, and AUTOSAR.
静态分析
-
提高团队开发效率 — 应用一套全面的最佳实践集合以缩减测试时间,降 低测试难度,和减少到达 QA 阶段的缺陷数量。
-
优化团队开发资源的配置 — 自动地审查已知的代码问题,以便有更多的 时间可以被用于需要人类智慧的地方。
-
建立更可靠的代码库 — 高效地构建,并可持续地执行,和维护一个全面的 回归测试套件,用于检测更新是否破坏了既有的功能。
-
让 C 和 C++ 代码质量和进度可视化 — 获取对用于实现需求代码的评估 ,并跟踪其过程以实现质量和进度的目标。
-
降低项目成本 — 自动对广泛的潜在用户路径进行测试以查找出只有在真 正使用时才能发现的问题。
应用案例
跟踪指标
可配置的详细报告
C++test 的 HTML, PDF 和自定义格式的报告可以通过 GUI 控件或一个选项文件来配置。标准报告包括有通过 /失败的代码分析和测试结果的概要,已分析文件的列 表,和一个代码覆盖率概要。 此报告可以进行自定义,以
包括活动的静态分析检查的清单, 具有单独测试的通过 /失败状态的扩展测试输出, 对于关键指标的趋势图参 数,和用颜色表明的所有代码覆盖率结果的完整代码清单 。 生成的报告可以根据各种角色的过滤器通过邮件被自
动地发送。除了直接提供数据给负责缺陷所标记代码的 开发人员, C++test 也发送概要报告给管理人员和团队 负责人。
高效的团队部署
通过自动化任务 安排 和分配使缺陷审查和纠正更加容易。每个检测到的缺陷通过区分优先顺序,被安排给相应编写这部分代码的开发人 员,并分配完整数据和代码的交叉链接到他的或她的 IDE
中。为了帮助管理人员评估和记录趋势,集中化的报告能够 确保对质量状态和过程实时监控。这些数据同样帮助确定是否需要进一步的行动以满足内部目标或证明策略的遵从性。
应用案例
宿主(开发)环境
在宿主机,模拟器和目标机上测试
C++test 自动化实施完整的测试执行流程, 包括测试用例生 成,交叉编译,部署,执行,和加载结果 (包括覆盖率指标) 返回到 GUI 中。可以为自动的测试执行来从 GUI 或命令行交互地驱 动测试,
以及批处理回归测试。在交互模式中, 为了方便调试 或验证用户可以单独地或在选中的组中运行测试。 对于批处 理执行,用户可以针对指定的代码,它们的名称或者在磁盘 上的位置来执行测试。
高度的可定制化
C++test 允许用户完全自定义测试执行流程。除了使用内建 的自动化测试以外,用户可以包含自定义的测试脚本和 shell 命令来使工具符合他们具体的构建和测试环境。
通过交叉编译为预期的目标环境所提供的运行时库,C++test 可以被广泛的用于多种嵌入式操作系统和结构体系。C++test 的所有测试中间产物的源代码都可见,因此完全可以移植。
应用案例
独特优势
Windows
-
在不执行程序的情况下识别运行时缺陷
-
自动化代码分析,增强兼容性
-
支持嵌入式和跨平台开发
-
提高团队代码走查的效率和全面性
-
为即时验证和回归测试提供自动化单元及组件测试
-
充分集成WindRiver Workbench和 ARM RVDS的C++test插件
-
可高度自定义
支持的环境
主机平台
-
Windows
-
Linux
-
Solaris UltraSPARC
IDE
-
Eclipse IDE for Developers
-
Microsoft Visual Studio
-
Wind River Workbench
-
ARM Workbench IDE for RVDS
-
ARM Development Studio
-
QNX Momentics IDE (QNX Software Development Platform)
-
Texas Instruments Code Composer Studio
IDE的项目导入支持
-
ARM ADS
-
Green Hills MULTI
-
IAR Embedded Workbench
-
Keil µVision IDE
-
Keil RealView
-
Microsoft eMbedded Visual C++
-
Microsoft Visual Studio
-
Texas Instruments Code Composer
-
Wind River Tornado
目标/交叉编译器
-
Altera NIOS GCC
-
ADS (ARM Development Suite)
-
ARM for Keil µVision
-
ARM RVCT
-
ARM DS-5 GNU Compilation Tools
-
Cosmic Software 68HC08
-
eCosCentric GCC
-
Freescale CodeWarrior C/C++ for HC12
-
Fujitsu FR Family SOFTUNE
-
GCC (GNU Compiler Collection)
-
Green Hills MULTI for V800
-
IAR C/C++ for ARM
-
IAR C/C++ for MSP430
-
Keil C51
-
Microsoft Visual C++ for Windows Mobile
-
Microsoft Embedded Visual C++
-
National Instruments LavWindows/CVI 2015 Clang C/C++ Compiler
-
QCC (QNX GCC)
-
Renesas RX C/C++
-
Renesas SH SERIES C/C++
-
STMicroelectronics ST20
-
STMicroelectronics ST40
-
TASKING 80C196 C
-
TASKING TriCore VX-toolset C/C++
-
TI TMS320C2x/C2xx/C5x
-
TI TMS320C2000 C/C++
-
TI TMS320C54x C/C++
-
TI TMS320C55x C/C++
-
TI TMS320C6x C/C++
-
TI MSP430 C/C++
-
Wind River GCC
-
Wind River DIAB
构建管理
-
GNU make
-
Sun make
-
Microsoft nmake
源代码控制
-
AccuRev SCM
-
Borland StarTeam
-
CVS
-
Git
-
IBM Rational ClearCase
-
IBM Rational Synergy
-
Microsoft Team Foundation Server
-
Microsoft Visual SourceSafe
-
Perforce SCM
-
Serena Dimensions
-
Subversion (SVN)
Parasoft C/C++test申请免费试用
在不执行程序的情况下识别运行时缺陷
C++test BugDetective 通过静态模 拟程序执行路径, 可跨越多个函数和 文件, 从而找到运行时缺陷。查找到 的缺陷包括使用未初始化的内存, 空 指针引用, 除零, 内存和资源泄漏。 这些通过常规静态分析所忽略的缺陷, 可高亮显示其执行路径。
对未经健壮性测试的遗留代码 或基于某些嵌入式系统的代码( 运 行时分析是无效或不可能实现 的),BugDetective的这种在执行 代码前就定位缺陷的能力对用户是 非常有用的。
自动化代码分析以增强兼容性
一套行之有效的编码策略能够降低整 个程序中的错误,C++Test通过建立一 系列编码规范进而通过静态分析来检测兼 容性并预防代码错误。对C++test进行配 置用户可以对特定团队或组织进行编码标 准策略增强,同时用户可以在内建和自定 义规则中定义自己的规则集。C++test提 供800多条的内建规则,包括从MISRA, JSF, Ellemtel, Meyers's EffectiveC++和 EffectiveSTL等书中以及其它的一些主 流资源中提取的编程建议,识别代码中 因C/C++使用不当而存在潜在缺陷,提 供最佳编码建议以提高代码的可维护性和 可重用性。使用图形化的RuleWizard编 辑器制订的自定义规则能将API使用标准 化并预防单个错误发现后类似错误重复出 现。
支持嵌入式和跨平台开发
针对嵌入式和跨平台开发,C++test 可以用于基于宿主环境和目标环境的代码 分析和测试流。在宿主环境中,开发者通 过使用编码策略增强,静态代码分析,全 面代码审查,单元、组件测试以及回归测 试来检测代码。测试过程中依赖外部环境 的代码将被桩函数替换,桩函数模拟真实 运行环境,而不需要访问相关硬件或软 件。
通过宿主环境的扩展测试,C++test 允许用户在目标硬件尚未构建好或不可用 于测试的情况下,针对已经完成的代码进 行验证。正是因为如此,应用程序逻辑上 的大多数问题能够在早期就被发现,这时 发现并且修复是最方便和迅捷的,从而使 目标环境的测试能够着重于验证软硬件的 接口方面的问题。此外,宿主环境中,自 动化运行和维护更易于进行,使开发者能
够检查独立于平台的代码的正确性而不必 使用其它附加的嵌入式开发工具。
当开发者准备在仿真器或实际目标环 境上测试时,这些此前生成和改善的测试 套件又能被重用于在目标平台上验证代码 的功能性。在系统集成测试时,之前使用 的桩函数被实际代码和系统接口替换,该 过程不需要更改任何测试代码。C++test
在执行过程中,通过自动捕捉测试结果, 然后把这些结果转为“黄金”数据集,以用 于后续的回归测试。
C++test使整个测试执行流程自动 化,包括生成测试用例,交叉编译,配 置,执行和向GUI中导入结果(包括覆盖 率信息)。测试过程可以在GUI中交互进 行,或在命令行中自动执行以及用回归测 试的批处理方式。在交互模式下,用户可 以选择单个测试对象或者选择一组测试对 象进行测试以方便检查和调试。在批处理 模式下,用户可按照被链接的用户代码, 名字或磁盘中的位置几种分类来进行测 试。
这种静态分析方法消除了在同行代码 走查过程中逐行检查代码的必要性,使走 查过程能够注重于检查算法,设计和自动 工具检查不到的隐藏错误。
提高团队代码走查的效率和全面性
这种创新性的代码走查模块使同行代码走查工作的准备,提示和跟踪都自动完成,并根据丰富的开发实践来定位其中已知的不足之处。通过扫描源码控制系统,C++test能自动识别更新过的代码,根据指定的代码走查者匹配对应代码,跟踪进程中的所有走查直到结束。使用CodeReview模块,开发团队能建立一个坚固的走查进程以使所有的新代码都能被检查到并使所有检查到的代码得到处理。
为即时验证和回归测试提供自动化 单元及组件测试
C++test的自动化测试过程能够帮助用户确保新代码和既有代码的正确性和可靠性。C++test为单个函数生成基于CppUnit格式的测试驱动和测试用例,这些自动生成的测试用例能检查出函数在未知输入情况下的表现,发现潜在的可靠性方面的问题。为了验证代码的功能是否正确,用户可以通过对生成的测试用例添加附加测试的方式进行扩展或者通过手动测试向导来完成。用户可以通过多种测试覆盖率分析工具(包 括语句, 分支, 路径和MC/DC覆盖率)来对测试效果和完整性进行计算,并与测试的兼容性和有效性要求(如DO178B)进行印证。这种自动测试能力对自动化持续集成与测试以及同步测试开发的支持是极其有用的。
C++test还能帮助用户开发健壮的回归测试套件以检测代码改变是否会破坏程序的既有功 能。无论是对大量的既有代码库还是一小段刚完成的代码亦或是其他介于两者之间的代码, C++test都能通过测试断言来捕捉已有软件行为进而生成测试。随着代码库的增加,C++test 会不断返回这些测试并将当前的结果和原始捕获的数据集进行比较。用户可以方便的配置 C++Test以使用不同的执行设置,测试用例和桩进而支持对不同内容的测试(如:不同的持续 集成阶段,对未完成的系统进行测试或测试已完成系统的某个特定部分)。这种回归测试对发 布周期紧迫,功能需求持续扩展而又难以测试的应用程序而言是相当关键的。
可高度自定义
在使用内建自动化测试时, C++test允许完全自定义测试执 行顺序。用户除了可以使用内建 的自动化测试外, 还可以将
shell命令和自定义的测试脚本混 合使用以使C++test能够在某些 特殊构造和测试环境中运行。 C++test运行时的库文件也能进
行自定义并交叉编译以支持各种 目标操作系统。这种非凡的灵活 性可以使用户不受预设工具性能 的限制而实现他们预期的测试流 程。
WindRiver®Workbench和 ARM®RVDS的C++test插件
C++test 可以充分集成于 WindRiver® Workbench 和 ARM®RVDS,从而使用户在相 应IDE环境下就能使用C++test 的全代码分析和单元测试功能。 完整的基于目标环境的测试流程 (包括生成测试用例,交叉编 译,配置,执行和在GUI环境中 导入结果) 可以通过与 Workbench 和RVDS的接口自 动进行并按照用户化需求进行配 置。测试能通过Workbench和 RVDS调试器进行调试。
功能:
- 根据用户选定的编码规范对代码做静态分析来增强兼容性
- 提供一个图形化的RuleWizard编辑器来定制用户编码规则
- 对代码路径做静态模拟以定位潜在运行时错误
- 提供图形化接口和动态跟踪使代码走查自动化
- 自动生成并执行单元和组件级的测试
- 灵活的桩函数机制
- 完全支持回归测试
- 代码高亮显示的代码覆盖率分析
- 使用图形或命令行方式进行全面团队部署
支持的环境
平台
- Windows NT/2000/XP
- Linux kernel 2.4 or 2.6 or higher with glibc 2.2 or higher and anx86-compatible processor
- Linux kernel 2.6 or higher with glibc 2.3 or higher and an x86_64-compatible processor (32-bit compatibility package is required)
- Solaris 7, 8, 9, 10 and an UltraSPARC processor
提供的IDE插件
- Eclipse 3.1, 3.2 (32-bit), 3.3 (32-bit)
- Visual Studio .NET 2003 and 2005
- Wind River Workbench 2.6 (for embedded development)
- ARM RVDS 3.x (for embedded development)
宿主编译器
- Windows: Microsoft Visual C++ 6.0, .NET, .NET 2003, or 2005,
- GCC 2.95.x, 3.2.x, 3.3.x, 3.4.x; Green Hills MULTI for Windows x86 Native v4.0.x
- Linux (x86 processor): GCC 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x Linux (x86_64 processor): GCC 3.4.x, 4.0.x, 4.1.x
- Solaris: GCC 2.95.x, 3.2.x, 3.3.x, 3.4.x, 4.0.x, 4.1.x, Sun C++ 5.3 (Sun Forte C++ 6 Update 2), Sun C++ 5.5 (Sun ONE Studio 8), Sun C++ 5.6 (Sun ONE Studio 9), Sun C++ 5.7 (Sun ONE Studio 10) Sun C++ 5.8 (Sun ONE Studio 11); Green Hills MULTI for SPARC Solaris Native v4.0.x
目标编译器
- Wind River: EGCS-2.90, GCC-2.96, GCC 3.4.x and DIAB 5.4+
- GCC 2.95.x - 4.1.x cross-compilers
- Green Hills 4.0.x
- ARM: ADS 1.2, RVCT 3.0, RVCT 3.1