单元测试与集成测试
单元测试
- 单元测试是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。
- 通常可以使用 Junit 测试单元来实现,通过调用方法,执行断言来判断是否成功
- TDD测试驱动开发
集成测试
- 在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试
- 实践表明,一些模块虽然能够单独地工作,但并不能保证连接起来也能正常的工作。一些局部反映不出来的问题,在全局上很可能暴露出来。
区别
- 测试的单元不同:单元测试是针对软件的基本单元(如:函数)所做的测试,而集成测试则是以模块和子系统为单元进行的测试,主要测试接口间的关系。
- 测试的依据不同:单元测试是针对软件的详细设计做的测试,测试用例的主要依据也是详细设计。而集成测试是针对软件的概括设计做的测试,测试用例的主要依据则是概括设计。
- 测试空间不同:集成测试主要测试的是接口层的测试空间,单元测试主要测试的是内部实现层的测试空间。
- 测试使用的方法不同:集成测试关注的是接口的集成,和单元测试只关注单个单元,因此在具体测试方法上也不同。
黑盒测试与白盒测试
黑盒测试
- 黑盒测试又称为功能测试,主要检测软件的每一个功能是否能够正常使用。在测试过程中,将程序看成不能打开的黑盒子,不考虑程序内部结构和特性的基础上通过程序接口进行测试,检查程序功能是否按照设计需求以及说明书的规定能够正常打开使用。
- 黑盒测试常用的方法:等价类划分、边界值分析、因果图分析法、错误推断法
白盒测试
- 白盒测试也称为结构测试,主要用于检测软件编码过程中的错误。程序员的编程经验、对编程软件的掌握程度、工作状态等因素都会影响到编程质量,导致代码错误。
- 白盒测试常用的方法:代码检查法、静态结构分析法、逻辑覆盖法、基本路经测试
区别
- 软件的黑盒测试意味着测试要在软件的接口处进行。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。因此黑盒测试又叫功能测试。
- 软件的白盒测试是对软件的过程性细节做细致的检查。这种方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序的所有逻辑路径进行测试,通过在不同点检查程序状态,确定实际状态是否与预期的状态一致。因此白盒测试又称为结构测试。白盒测试主要是想对程序模块进行检查。