水木-软件测试-求推荐代码静态分析工具(c,c++代码),Parasoft C/C++test

C++test是一款强大的静态代码分析和自动化测试工具,它能通过静态模拟执行路径查找运行时缺陷,如未初始化内存、空指针引用等。工具支持自定义编码规范,提供图形化RuleWizard编辑器制定规则。C++test适用于嵌入式和跨平台开发,能在目标环境构建前定位问题,支持单元和组件测试,生成测试用例并计算覆盖率。此外,它还具备自动化代码审查、同行代码走查和回归测试功能,确保代码质量和兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在不执行程序的情况下识别运行时缺陷

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值