什么是单元测试?
单元测试由开发人员执行,并测试程序代码( aka module, component) 单元。有助于降低错误修复的成本,因为错误能在开发周期的早期阶段识别出来的。
什么是集成测试?
集成测试由测试人员执行,并测试软件模块之间的集成。集成测试有两种方式,一种是自下而上的方法,另一种是自上而下的方法。
以下是两者的详细比较-
单元测试 | 集成测试 |
---|---|
单元测试背后的思想是测试程序的每个部分,并确保各个部分是正确的。 | 集成测试背后的思想是将应用程序中的模块和测试组合为一组,以查看是否运行正常 |
是一种白盒测试 | 是一种黑盒测试 |
可以在任何时候执行 | 通常在单元测试之后和系统测试之前进行 |
单元测试只测试单元本身的功能,可能不会捕获集成错误或其他系统范围的问题 | 集成测试可以在集成模块以构建整个系统时检测错误 |
从模块内部开始 | 从对外接口开始 |
关注单个模块的行为 | 注重模块间的集成 |
单元测试不会验证代码是否能正确处理外部依赖项。 | 集成测试验证代码是否能正确处理外部依赖项。 |
通常由开发人员执行 | 通常由测试团队执行 |
查找错误很容易 | 查找错误很困难 |
单元测试的维护费用很低 | 集成测试的维护费用很高 |
关键差异
- 单元测试可以测试单个源代码单元以确定是否可用,而集成测试则检查软件模块之间的集成。
- 单元测试测试程序的每个部分,并显示各个部分是正确的,而集成测试将应用程序和测试中的不同模块组合为一组,以查看是否正常工作。
- 单元测试从模块内部开始,而集成测试从对外接口开始。
- 单元测试可以随时执行,集成测试在单元测试之后和系统测试之前执行。
- 单元测试由开发人员执行,而集成测试由测试团队执行。
- 单元测试错误很容易发现,而集成测试很难发现错误。
- 单元测试是一种白盒测试,而集成测试是一种黑盒测试。