系统集成测试
定义
编辑
系统集成测试,简称集成测试,是将已通过单元测试的组件作为输入,将它们采用一次性或增量方式集成为更大的组件或整个系统,验证系统的接口、数据、功能等各方面是否符合设计的要求,验证组件之间的连通性、可用性、联动性,逻辑性等,发现集成系统的问题并返回给开发团队进行修改和完善。
集成测试一般有模块级、子系统级、系统级。
当系统的所有组件都集成在一起并通过系统集成测试后,这个集成系统就作为输出进行下一阶段的系统测试。
实践出处
编辑
集成测试是软件开发V模型中的一个测试阶段。V模型把测试分为:单元测试、集成测试、系统测试、验收测试。
为什么
编辑
大量实践表明,有时单元组件虽然可以单独工作,但是并不能保证组装起来也可以同时工作。例如接口不统一无法集成;数据可能在通过接口的时候丢失;功能逻辑和流程可能不通顺或不合理;模块之间的互相作用产生了没有预期到的问题等等。
所以集成测试是必不可少的,系统集成测试也是后续进行系统测试和验收测试的必要的前提条件。
当系统非常复杂时,比如需要由多个模块或子系统互相联动才能完成核心功能;跨学科、跨领域的技术;多重异构、分布式、软硬件结合;由不同团队协同开发等等,更加需要集成测试来尽早发现集成系统的问题。
集成测试的好处包括(但不限于):
更早进行测试,更早获得反馈:
-
完成单元测试的组件就可以进行集成测试。
-
在集成测试发现了缺陷马上送回开发团队,查错和修复的成本越低。
-
可以更早的验证集成的模块是否按预期工作。
-
集成的模块或系统更方便用户进行早期反馈。
扩大验证范围,提高验证效率: -
集成测试覆盖多个模块或子系统,测试效率更高。
-
重点关注组件的集成交互,接口测试易于自动化,性价比高。
持续集成 -
让集成的风险更小,问题排查更清晰,质量随时受控并处于可接受状态。
-
好处多多,请查阅持续集成实践。
何时使用
编辑
集成测试是软件开发V模型中的一个测试阶段。V模型把测试分为:单元测试、集成测试、系统测试、验收测试。 集成测试阶段发生在单元测试之后,系统测试之前。
当软件的单元组件完成了单元测试之后,就需要集成到更大的组件中进行集成测试。 直至整个系统的组件都集成在一起。
在敏捷开发中,推荐持续集成的实践,每当有新开发的功能模块代码合并到主分支代码时,就需要进行集成测试,并且通常是自动化测试。
如何使用
编辑
1)进行被测系统的结构、模块、接口等分析。
2)确定集成测试的策略。例如:
-
非增量集成测试策略:大爆炸式集成。
-
增量的集成测试策略:自顶向下、自底向上,混合式(三明治式)、基干式(从核心功能到外围)、基于风险,基于流程等等。
3)确定集成测试的范围和关注重点,例如:
-
接口是否一致(各种数据模型,输入输出方式,微服务接入方式等)。
-
数据流和控制流是否按照设计实现其功能。
-
集成后的功能可用性、正确性。
-
集成后的性能、稳定性、兼容性等。
-
集成后的联动逻辑性、合理性、可操作性等。
-
如果是微服务架构的系统,集成测试方法主要是接口API测试。
4)生成测试计划、编写测试用例、搭建测试环境等,(敏捷开发中需要使用持续集成工具平台)
5)执行集成测试
6)生成集成测试报告并尽快反馈给开发团队
输出物
编辑
集成测试策略、计划、测试用例集、测试环境、集成测试结果报告等。 敏捷开发中,还要搭建能进行持续集成测试的工具或平台。
常见问题解答
编辑
系统集成测试与系统测试的区别
1.测试的对象不同:
集成测试的对象是模块或子系统的集成和调用关系,主要是针对程序内部结构进行测试,包含接口、数据、功能连贯性等。
系统测试对象是整个系统,将系统中的硬件、软件、操作人员看作一个整体,来验证系统功能是否正确实现、是否遗漏,性能、安全等是否符合要求。
2.测试的角度不同:
集成测试更多从系统的结构和逻辑进行测试,验证系统可以按设计运行。
系统测试除了考虑符合设计,还要从用户使用的角度进行测试,验证系统可以按照用户的期望执行(功能、性能、操作习惯等)。
3.测试的依据不同:
系统集成测试是验证集成系统符合《设计说明书》。
系统测试是验证系统满足《需求规格说明书》、《产品使用说明书》等。
4.测试的方法不同:
集成测试一般采用灰盒(白盒加黑盒)的方式来测试。
系统测试一般采用黑盒方式来测试。
参考资料
编辑
-
《敏捷测试》
-
《Continuous Delivery 持续交付》
实战案例
编辑
采用微服务架构,增量式的集成测试策略,使用敏捷开发和DevOps工具,在持续集成平台上进行频繁和持续的自动化集成测试。
欢迎补充更详细的实战案例。
关键词
编辑
集成测试,系统集成测试, SIT
我们非常重视知识产权,我们在非常努力地寻找最初的出处来源并注明出处。但因为互联网信息浩瀚,难免会有疏漏。如果您觉得有侵犯您的权益,请联系我们。