分层测试(四):集成测试
分层测试系列文章
https://www.cnblogs.com/yuxiuyan/tag/分层测试/
1. 什么是集成测试
集成测试是在模块接口的基础上,将所有涉及模块按照设计要求(比如根据架构图)组装成子系统,对系统接口进行正确性校验的测试技术。
通过集成测试可以暴露出这些模块在集成交互时的缺陷,这些缺陷在对各自模块进行接口测试时可能是无法暴露的。
2. 集成测试的模型
可以看到,集成测试的用例模块是跟业务模块独立存在的,并且逻辑也比接口用例要复杂,通过模拟外部使用者行为(有可能是用户,也有可能是其他子系统)的方式,来测试对应的系统或子系统。
3. 集成测试的优点
-
减少连通性问题:集成测试通过对子系统或系统的全面分析,大大降低了出现严重系统级连通性问题的可能性。
-
完善测试体系:单模块/接口测试无法发现的问题,在集成测试阶段可以发现。
4. 集成测试的挑战
-
测试复杂性: 集成测试意味着测试两个或多个集成系统以确保系统正常工作。不仅要测试集成链路,还要进行考虑环境的详尽测试,以确保集成系统正常工作。可能存在可应用于测试集成系统的不同路径和排列。
-
管理复杂:管理集成测试变得复杂,因为其中涉及的因素很多,例如数据库、平台、环境等。
-
不同系统的交互:如果测试涉及处理由两个不同供应商创建的两个不同系统,那么就会有关于这些组件如何相互影响和交互的问题。
5. 最佳实践
5.1 尽早开始测试
在业务实践中允许同时开发模块,因此需要在早期阶段执行集成测试、检测问题并在开发过程中对业务逻辑进行更改。
这体现了产品开发进度,因为可以更早地检测和修复错误,而无需等待一个模块完成。
此外,如果缺少模块或存在开发中的模块需要联调,可以用Mock来替换它们。
5.2 区分业务逻辑和集成测试
单元测试通常速度快且运行时间短。可以在持续集成环境中为每个构建运行它。它旨在对代码进行基本验证,检测业务逻辑中的错误。
但是集成测试需要更长的时间才能运行,并且将它们包含在每个构建中会导致大量时间消耗。可以将它放在靠近日常构建的地方,来降低构建耗时的影响。
5.3 记录测试日志
集成测试的范围很广,因为它跨越应用程序中的多个模块。与单元测试不同,在集成测试中没有简单的方法来分析故障的根源。
因此,记录测试结果是发现问题的唯一方法。可以使用一个有效的日志记录框架,提供有关每个测试完成的详细信息。