1、概念
单元测试(Unit Testing)又称为模块测试, 是针对程序模块进行正确性检验的测试工作,测试各个单元的源代码是否符合要求,程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象类、或者派生类(子类)中的方法。
通常来说,程序员每修改一次程序就会进行最少一次单元测试,在编写程序的过程中前后很可能要进行多次单元测试,以证实程序达到软件规格书要求、没有程序错误。为了使每个单元测试案例独立于其它案例,经常使用stubs、mock或fake等测试马甲程序,单元测试通常由软件开发人员完成,用于确保他们所写的代码匹配软件需求并遵循开发目标。
2、特点
总结起来,单元测试通常有以下几个特点:
♦ 单元测试基本上由软件开发人员编写和执行,以确保代码符合其设计和要求。
♦ 单元测试的目标是分离程序的每个部分,并测试各个部件是否正常工作。
♦ 这意味着对于任何函数或过程,当给定一组输入时,它应该返回正确的值。当执行任何无效输入时,它应该在执行过程中妥善处理这些错误,也就是程序的容错性要好。
♦ 单元测试基本上在集成测试之前完成。
3、测试方法
单元测试通常使用白盒测试方法,比如语句覆盖,条件覆盖,路径覆盖等来设计单元测试的用例。
4、优点
♦ 问题在早期发现,由于单元测试由开发人员在集成之前测试其各自的代码。因此,这些问题可以很早地发现并解决,从而不影响其他代码。
♦ 同时单元测试有助于维护和更改代码,降低代码之间的依赖性。
♦ 由于在单元测试中早期发现了错误,因此有助于降低错误修复的成本。