做了很多个项目的接口测试,目前接口测试的范畴已经不仅仅是接口测试,而是包括了接口测试和集成测试,目前随着系统组件化以及分布式系统的发展,接口测试本身已经满足不了需求,当我们用接口测试去保证系统的每个组件正常运行是,却发现每个组件之间的配合以及组件和组件间的数据传递测试却被开发和测试重视不够,系统越复杂这种集成测试越不够,留给集成测试的时间越短,开发和测试也就越不重视了,最终导致冒烟测试效果不好,以及后期测试进度缓慢甚至延期。
对此我们有必要细细阐述一下集成测试的好处,以及给后期环境部署以及功能测试带来的推动作用。
1. 系统的集成测试可以检查一系列的环境配置正确与否
由于目前基于SPRING架构的系统都会产生一大堆的配置文件,包括数据库配置,接口配置,缓存配置,工作流配置,还有一些还其它系统的远程调用配置,这些配置文件的任何一点错误都会导致系统打包部署的失败,而这种失败,开发和测试需要费相当大的周折去排查这些错误。而集成测试需要在冒烟测试以前把所有的配置文件整合起来,加载至内存,这个过程可以快速鉴别配置上的错误。
2. 系统的集成测试可以从更高的层面上面模拟业务场景
如果把整个业务看成一个工作流,接口测试则是对业务流程的每个节点进行隔离测试,而集成测试则是把整个业务流程串起来进行测试,更加接近用户操作的实际场景,更加易于发现业务层面的BUG,举个例子,订购产品,确定价格,然后记录到用户账本,这个从用户角度看是一整个完整的流程,接口测试则分为三块,分别测试订购产品,计算价格,然后记账,虽然可以保证每个模块是正确的,但是却无法保证整个流程,而集成测试证实弥补了这个缺点,他把上述三个节点作为一整个流程进行测试,程序的执行者即是用户,测试的输入数据即是用户的输入数据,测试的验证数据则是用户完成这个流程以后看到的结果,这样就可以模拟完整的业务了。
3. 系统的集成测试可以迅速定位BUG
大家都知道,当功能测试找到一个BUG以后,会提交给开发,如果系统只有一个组件,那定位BUG还是比较快的,但是如果系统中有很多个组件,特别是这些组件部署在不同的地方,那么定位BUG就非常困难了,需要逐个系统排查,如果有大量这种类型的BUG,那么开发定位修复BUG的时间就可想而知了。集成测试则不然,当运行一个测试以后,如果发现BUG,则可以采用DEBUG的方法,快速定位的是那个API的问题,这样的话,定位修复BUG的时间将大大缩短。
4. 系统的集成测试可以为功能测试和性能测试提供支持
当集成测试用例和脚本完成以后,可以在开发每天早上运行一次,以确保头天晚上开发提交的代码的正确性,这样可以让功能测试对代码更加放心。同时如果性能测试需要对整个业务流程进行性能测试时候,则可以直接调用集成测试的测试用例进行测试,这样也可以大大缩短性能测试配置环境的时间。
综上所述,对于复杂系统的开发,尤其是多组件系统的开发中,应该充分重视起集成测试,因为这个是保证业务系统稳定的有效手段。