C++ test介绍

来源:互联网 发布:linux扫描新增磁盘命令 编辑:程序博客网 时间:2024/05/23 17:37

 

 

C++Test来历:

  C++Test是Parasoft针对C/C++的一款自动化测试工具,Parasoft是全球领先的软件测试工具和整体解决方案的专业开发供应商;AEP(自动错误预防)理论的创始者,软件测试领域的领导者;成立于1987年,总部设在美国加利福尼亚州的蒙罗维亚市;前身是一家专业为美国国防部提供并行计算等专业服务的机构。拥有20年丰富的专业技术积累和行业应用经验,专注于软件测试领域,18项软件技术专利,致力于帮助客户迅速提高软件质量的同时大幅缩短上市周期和降低开发成本,Parasoft公司拥有遍布全球的分支机构和分销商网络,全球超过10,000家客户,财富500强公司中的58% 、财富100强公司中的88%都正在使用Parasoft的产品和解决方案。

C++Test总体介绍:

  Parasoft C++test 是经广泛证明的最佳实践集成解决方案,它能有效提高开发团队工作效率和软件质量。   C++test支持编码策略增强,静态分析,全面代码走查,单元与组件的 测试,为用户提供一个实用的方法来确保其C/C++代码按预期运行。   C++Test 能够在桌面 的IDE环境或命令行的批处理下进行回归测试。   C++test 和 Parasoft GRS 报告系统相集成,为用户提供基于Web且具备交互和向下钻取能力的报表以供用户查询,并允许团队跟 踪项目状态并监控项目趋势。

C++Test的单元测试功能:

  C++Test是一个C/C++单元级测试工具,自动测试C/C++类、函数或部件,而不需要编写测试用例、测试驱动程序或桩调用代码。   C++Test能够自动测试代码构造(白盒测试)、测试代码的功能性(黑盒测试)和维护代码的完整性(回归测试)。C++Test是一个易于使用的产品,能够适应任何开发生命周期。通过将C++Test集成到开发过程中,您能够有效地防止软件错误,提高代码的稳定性,并自动化地实现单元测试(这是极端编程过程的基础)。   著名测试专家Boris Beizer博士认为:"软件开发历史上最臭名昭彰的错误都是单元错误--即通过适当的单元测试可以发现的错误。" 他引证了Voyager的错误(将探测器发送到太阳)、AT&T和DCS的错误(曾造成美国三分之一的电话瘫痪)以及Intel奔腾芯片错误,都能够通过全面的单元测试排除掉。

C++Test主要特性:

   在不需要执行程序的情况下识别运行时缺陷   C++testBugDetective通过静态模拟程序执行路径,可跨越多个函数和文件,从而找到运行时缺陷。查找到的缺陷包括使用未初始化的内存,空指针引用,除零,内存和资源泄漏。这些通过常规静态分析所忽略的缺陷,可高亮显示其执行路径。   对未经健壮性测试的遗留代码或基于某些嵌入式系统的代码(运行时分析是无效或不可能实现的),BugDetective的这种在执行代码前就定位缺陷的能力对用户是非常有用的。   
自动化代码分析以增强兼容性   一套行之有效的编码策略能够降低整个程序中的错误,C++Test通过建立一系列编码规范进而通过静态分析来检测兼容性并预防代码错误。对C++test进行配置用户可以对特定团队或组织进行编码标准策略增强,同时用户可以在内建和自定义规则中定义自己的规则集。C++test提供800多条的内建规则,包括从MISRA,JSF,Ellemtel,Meyers’sEffectiveC++和EffectiveSTL等书中以及其它一些主流资源中提取的编程建议,识别代码中因C/C++使用不当而存在潜在缺陷,提供最佳编码建议以提高代码的可维护性和可重用性。使用图形化的RuleWizard编辑器制订的自定义规则能将API使用标准化并预防单个错误发现后类似错误重复出现。   
优点   提高团队开发的效率 应用全面的最佳实践集合以缩减测试时间,降低测试难度,减少QA阶段遇到的错误。   在现有开发资源下完成更多任务 自动解决琐碎的编码问题从而更多的时间可被分配到需要人来解决的问题上。   可靠的构件代码 高效地构造,可持续执行和全面的回归测试套件以检测版本更新是否破坏既有功能。   提供C/C++代码质量完成状态的可视化报告 按需访问目标代码的评估,并跟踪其过程以提高质量和完成预期目标。   削减支持成本 自动对广泛的潜在用户路径进行负面测试以查找出只有在真正使用时才能发现的问题。   
  

  

   支持嵌入式和跨平台开发   针对嵌入式和跨平台开发,C++test可以用于基于宿主环境和目标环境的代码分析和测试流。在宿主环境中,开发者通过使用编码策略增强,静态代码分析,全面代码审查,单元、组件测试以及回归测试来检测代码。测试过程中依赖外部环境的代码将被桩函数替换,桩函数模拟真实运行环境,而不需要访问相关硬件或软件。   通过宿主环境的扩展测试,C++test允许用户在目标硬件尚未构建好或不可用于测试的情况下,针对已经完成的代码进行验证。正是因为如此,应用程序逻辑上的大多数问题能够在早期就被发现,这时发现并且修复是最方便和迅捷的,从而使目标环境的测试能够着重于验证软硬件的接口方面的问题。此外,宿主环境中,自动化运行和维护更易于进行,使开发者能够检查独立于平台的代码的正确性而不必使用其它附加的嵌入式开发工具。   
功能   Ø 根据用户选定的编码规范对代码做静态分析来增强兼容性   Ø 提供一个图形化的RuleWizard编辑器来定制用户编码规则   Ø 对代码路径做静态模拟以定位潜在运行时错误   Ø  提供图形化接口和动态跟踪使代码走查自动化   Ø 自动生成并执行单元和组件级的测试   Ø 灵活的桩函数机制   Ø 完全支持回归测试   Ø 代码高亮显示的代码覆盖率分析   Ø 使用图形或命令行方式进行全面团队部署   
■ 提高团队代码走查的效率和全面性   Ø 可靠及精确的测试套件   Ø 可共享的测试资源   Ø WebKing提供基于策略的方法来增强应用程序的质量   Ø 使团队中的技术和非技术人员轻松地交流   Ø 提高整个网络应用程序的一致性   
为即时验证和回归测试提供自动化单元及组件测试   C++test的自动化测试过程能够帮助用户确保新代码和既有代码的正确性和可靠性。C++test为单个函数生成基于CppUnit格式的测试驱动和测试用例,这些自动生成的测试用例能检查出函数在未知输入情况下的表现,发现潜在的可靠性方面的问题。为了验证代码的功能是否正确,用户可以通过对生成的测试用例添加附加测试的方式进行扩展或者通过手动测试向导来完成。用户可以通过多种测试覆盖率分析工具(包括语句,分支,路径和MC/DC覆盖率)来对测试效果和完整性进行计算,并与测试的兼容性和有效性要求(如DO178B)进行印证。这种自动测试能力对自动化持续集成与测试以及同步测试开发的支持是极其有用的。   
WindRiver®Workbench和ARM®RVDS的C++test插件   C++test可以充分集成于Wind River Workbench和ARM RVDS,从而使用户在相应IDE环境下就能使用C++test的全代码分析和单元测试功能。完整的基于目标环境的测试流程(包括生成测试用例,交叉编译,配置,执行和在GUI环境中导入结果)可以通过与Workbench和RVDS的接口自动进行并按照用户化需求进行配置。测试能通过Workbench和RVDS调试器进行调试。