• 1. C++单元测试2009年1月13日
  • 2. 提纲什么是单元测试 为何要进行单元测试 单元测试过程 单元测试分析方法 单元测试范畴 单元测试工具
  • 3. 什么是单元测试? 单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。 对于C,单元测试的最小单元一般为函数; 对于C++,单元测试的最小单元一般为类。 执行单元测试,是为了证明某段代码的行为确实和开发者所期望的一致。
  • 4. 为什么要进行单元测试?单元测试保证局部代码的质量 单元测试改良项目代码的整体结构 单元测试降低测试、维护升级的成本 单元测试使开发过程适应频繁变化的需求 单元测试有助于提升程序员的能力
  • 5. 单元测试过程单元测试是一种编程测试,要求严格地检查代码, 对函数或模块的输入-输出进行分析。 对函数或模块的内部执行路径进行分析。 编写驱动模块。 执行测试。 分析测试结果。
  • 6. 单元测试过程驱动模块被测模块桩模块桩模块桩模块测试用例测试结果
  • 7. 单元测试的分析方法白盒测试为主 黑盒测试为辅白盒测试的用例设计: 逻辑覆盖 基本路径测试 黑盒测试的用例设计: 等价类划分 边界值分析 猜测错误
  • 8. 白盒测试 已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查 1.对程序模块的所有独立的执行路径至少测试一次。 2.对所有的逻辑判定,真假至少测试一次。 3.在循环的边界和运行界限内执行循环体。 4.测试内部数据结构的有效性。 等等
  • 9. 黑盒测试 已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求 1.是否有不正确或遗漏了的功能。 2.接口上,输入能否正确接受,能否输出正确的结果。 3.是否有数据结构或外部信息访问错误(如数据文件)。 4.性能上是否能够满足要求。 5.是否有初始化或终止性错误。
  • 10. 单元测试范畴代码覆盖率 代码覆盖率越高,代表单元测试工作越充分彻底。但100%的覆盖率并不意味您的程序没有BUG!往往测试用例的正确性才是关键。不管怎样保证较高的代码覆盖率是必须的。 代码性能分析 对被测试代码的性能分析能够使开发人员了解性能瓶颈所在,为优化代码提供一些依据。 代码走查(Code Review) 代码审查主要对代码的逻辑、变量命名、变量定义、注释等等进行检查。(静态检查)
  • 11. 主要单元测试工具Visual Studio Team Edition for Testers 微软在VS2005的Team版中提供的集成单元测试工具。 CppUnit 著名的开源C++单元测试框架。提供控制台测试作界面和图形测试界面。针对我们程序的特点,一般使用控制台方式。 工具只是提供一种框架的辅助,本身并不能代替程序员编写测试代码的工作。
  • 12. 欢迎指正