• 1. 《单元测试》 测试工具 - C++TEST肖睿 rui.xiao@jb-aptech.com.cn
  • 2. 内容什么是C++Test C++Test可以解决什么问题 C++Test如何解决问题 C++Test的使用经验
  • 3. 什么是C++TestC++Test是一个针对C/C++源代码进行单元测试的自动化工具,是Parasoft 公司最早最著名的测试工具之一 第一个版本诞生于1999年,2002年发布2.0版本,2003年6月发布2.1版本 由Java编写,需要JDK1.4支持 目前支持Windows、Unix、Linux启动演示
  • 4. 什么是C++TestC++Test支持ParaSoft的AEP Automated Error Prevention --- AEP 问题:不包括增加的测试资源投入,美国每年因为软件错误造成的损失达到$60Billion 策略:Finding error -> fix errors vs fix process 传统行业自从开始改变策略,从注重修补缺陷转变到注重改进过程,产品和服务的质量才开始大幅度的提高 方法: 1、发现错误 2、找出错误原因 3、找出引起错误的过程点 4、改进过程避免错误再次发生 5、评测过程改进效果
  • 5. 什么是C++TestParaSoft公司AEP工具包括: 1、C/C++ Development C++ Test 对C++代码进行静态分析和代码覆盖,并检查编码规范 对C++类自动生成测试用例、驱动模块/桩模块 Code Wizard 管理编码规范库 Insure++ 检查运行时的内存错误 C/C++ Solution 整合以上工具并提供流程支持以实现对C/C++项目的AEP
  • 6. 什么是C++TestParaSoft公司AEP工具包括: 1、C/C++ Development 2、Java Development Jtest 对Java代码进行静态分析和代码覆盖,并检查编码规范 对Java类、JSP自动生成测试用例、桩模块/驱动模块 Jcontract 使用DbC(Design by Contract)检查Java代码是否正确运行 Java Solution 整合以上工具并提供流程支持以实现对Java项目的AEP
  • 7. 什么是C++TestParaSoft公司AEP工具包括: 1、C/C++ Development 2、Java Development 3、.NET Development 4、Web Development 5、Database Development 6、Web Services Development 7、Enterprise Development
  • 8. 内容什么是C++Test C++Test可以解决什么问题 C++Test如何解决问题 C++Test的使用经验
  • 9. C++Test可以解决什么问题所有的C/C++开发人员在写完一个函数、一个类时都会问自己: 我写完应该写的代码了吗? 我写得代码符合编码规范吗? 我写的代码能够正确运行吗? 我现在就执行单元测试,还是等系统差不多完成的时候再一起测试? 如果现在测试,就要 写测试用例 写驱动模块(Driver/Harness)或者桩模块(Stub)
  • 10. C++Test可以解决什么问题代码符合规范吗? 所有代码都被测试了吗?---测试覆盖 针对每一个函数和类 自动生成测试用例 自动生成驱动模块和桩模块 自动执行自动测试用例和手工测试用例,记录并分析测试结果 测试数据共享、测试环境集成
  • 11. 内容什么是C++Test C++Test可以解决什么问题 C++Test如何解决问题 C++Test的使用经验
  • 12. C++Test怎么解决这些问题演示时间 静态分析 DIVIDE_BY_ZERO.CPP CPPTEST_DEMO.CPP SORTDEMO.CPP 动态分析 DIVIDE_BY_ZERO.CPP CPPTEST_DEMO.CPP
  • 13. C++Test怎么解决这些问题归纳一下 静态分析 检查编码规范 系统自带编码规范318条 Effictive C++ More Effective C++ Meyers-Clause Universal Coding Standard User Standard 用户可以自己添加编码规范,或者修改已有规范 Rule Wizard 用户可以自己定义本次检查使用的 编码规范集合 严重级别(I/PV/V/PSV/SV)
  • 14. C++Test怎么解决这些问题归纳一下 静态分析 检查编码规范 动态分析 白盒测试 检查代码覆盖情况 Setting|Coverage 2.1版本增加了条件覆盖等更复杂的覆盖度量方式 针对每一个类和函数自动生成 测试用例:等价类划分/边界值分析 桩模块(Stub)/驱动模块(Driver/Harness) 用户可以定制自动生成的参数(Project|File Test Configuration) 用户可以编辑/修改测试用例,自定义桩模块和驱动模块
  • 15. C++Test怎么解决这些问题归纳一下 静态分析 检查编码规范 动态分析 白盒测试 黑盒测试 只针对类的公共接口函数进行测试 不自动生成测试用例,而是运行当前已有的测试用例 主要使用用户定义的测试用例
  • 16. C++Test怎么解决这些问题归纳一下 静态分析 检查编码规范 动态分析 白盒测试 黑盒测试 回归测试 在修改源代码后用原有的测试用例进行重新测试 检查 所有测试用例通过 代码覆盖率符合要求
  • 17. C++Test怎么解决这些问题归纳一下 静态分析 检查编码规范 动态分析 白盒测试 黑盒测试 回归测试 其他支持 测试数据和记录的存取 与VC开发环境集成,与Insure++/CodeWizard集成 2.1版本中加强了用户帐号的管理,适合团队开发
  • 18. 内容什么是C++Test C++Test可以解决什么问题 C++Test如何解决问题 C++Test的使用经验
  • 19. C++Test的使用经验在实际使用中首先执行一遍白盒测试,让软件根据函数自动生成相应的测试用例,然后再根据需要手工添加一些测试用例,最后再执行一遍黑盒测试。 应按文件一个一个地测试,否则可会会导致程序死掉。
  • 20. 内容什么是C++Test C++Test可以解决什么问题 C++Test如何解决问题 C++Test的使用经验