level 6
在学习单元测试前,我们必须要了解的是软件测试的过程,如下图:

二. 单元测试简述单元测试是V模型的测试级别中最低级别的测试,单元测试是其他级别测试的基础。单元测试(Unit Testing)又称模块测试,是对构成软件最小单元进行的测试,在一个软件系统中,一个单元是指具备以下特征的代码块:
具有明确的功能
具有明确的规格定义
具有明确的与其他部分接口定义
能够与软件的其他部分清晰地进行划分
通常,单元测试是针对源程序精心的测试,例如,在传统的结构化编程语言中,针对函数或子过程进行的测试,在Java、.Net、C++这样的面向对象语言中,对类的测试。换句话说,在不同的编程语言中,单元的划分是不同的。
单元测试就是依据软件详细设计说明书,检查软件单元是都符合软件详细设计说明书的要求,单元测试既可以使用白盒测试方法,也可以使用黑盒测试方法。白盒测试是基于代码的测试,依据软件的编码实现,设计测试用例,将被测程序看成一个透明的盒子,可以看到程序的内部结构。黑盒测试是不同考虑软件是如何编码实现的测试,测试人员将被测程序看成一个黑盒子,在完全不考虑程序内部结构的情况下,检查程序的功能是否符合软件需求规格说明书的要求,单元测试通常采用是白盒测试方法。单元测试依据:
单元或组件需求说明
详细设计文档
代码
典型单元测试对象:
单元或组件
程序
数据转换/移植程序
数据库模型
单元测试是相对独立的,所以可以单独对一个单元进行单元测试,在对一个单元进行单元测试时,这个单元与其他单元的联系通过使用桩、驱动器和模拟器来实现。单元测试可能包括功能测试和特定的非功能够特征测试,比如资源行为测试(如内存泄漏)或健壮性测试和结构测试(比如分支覆盖),根据工作产品,例如单元规格说明、软件设计或数据模型等设计单元测试用例。
单元测试的一个方法是在编写代码之前就完成测试用例的编写和测试用例自动化,这种方法被称为测试有限的方法或测试驱动开,这是高迭代的方法,并且取决于如下的循环周期:测试用例的开发,构建软件单元和建增集成,执行单元测试,修正问题并反复循环。直到全部通过。在单元测试时,通常使用白盒测试技术设计测试用例,采用自动化测试方法(单元测试框架,如Unittest,Junit,Nunit等)执行单元测试。

