今天主要讲解“软件的白盒测试”第一部分,之前我们详细介绍了测试用例的设计方法,这些测试用例的设计方法主要是针对黑盒测试进行的。而一个完整的测试过程包括界面和代码两部分的测试,本章主要介绍基于代码的测试方法,即单元测试,也可以称为白盒测试。
本章主要包括以下内容
单元测试介绍
静态测试技术
动态测试技术
CppUnit自动化单元测试框架
单元测试主要是对单元测试的基础知识进行介绍,包括单元测试的定义、单元测试对象、单元测试环境和单元测试策略。
1、单元测试定义
单元测试是对软件基本组成单元进行的测试,如函数(function、procedure)或一个类的方法(method)。单元具有一些基本属性,如明确的功能、规格定义、与其他部分的接口定义等,可清晰地与同一程序的其他单元划分。
在一种传统的结构化编程语言(比如C 语言)中,要进行测试的单元一般是函数或子过程。在类似C++这样的面向对象的语言中,要进行测试的基本单元是类或类的方法。测试时基本单元不一定是指一个具体的函数或一个类的方法,也可能对应多个程序文件中的一组函数。
单元测试的目的在于发现各模块内部可能存在的各种错误,主要包括以下几个方面:
(1)验证代码是与设计相符合的。
(2)发现设计和需求中存在的错误。
(3)发现在编码过程中引入的错误。
2、单元测试的重点
单元测试主要是针对系统最基本的单元代码进行测试,测试时主要从接口、独立路径、出错处理、边界条件和局部数据五个方面进行测试,如图10-1 所示。通过这五个方