
很难高估测试的重要性,尤其是当涉及到信用传送系统交互作用的集成平台时。 在本文中,我们想讨论一下我们的团队如何首先设计这样的总线,然后对其进行自动测试。
什么是集成平台,为什么需要它?
在大型公司系统中,内部子系统之间经常存在交互问题。 由于无休止的联系和要求,随着时间的推移这种纠结变得越来越混乱和复杂。 难以维护和管理它。
每个子系统都有其自己的发布周期:有些子系统每年更新一次,而有些则每周更新一次。 还需要考虑这些更改并将其集成到整个系统画布中。 为此,您需要一个中介机构来在公司所有子系统之间交换数据。 该中介是集成平台。
为了寻找艺术家的发展,客户准备了需要实施和保护的测试任务。 这是一个非常简单的任务描述,其中包含几个选定的系统:数据库,服务,文件目录等。 在一周之内,有必要创建和演示容错解决方案,并描述开发平台。 在执行此类项目中,我们获得了体面的经验,根据辩护的结果,我们被选为执行者。
那时,客户在大多数情况下使用点对点集成方案:每个系统都相互集成。 这不方便且难以维护。 我们有三个任务:
- 通过集成平台替换现有的集成;
- 整合新的银行系统;
- 自动化它们之间的数据交换。
成功通过测试任务后,我们开始了该项目。 自己确定阶段的方式是这样确定的:
- 进行审核;
- 寻找了解业务流程目标状态(而不仅仅是当前状态)的客户员工;
- 制定IT系统的业务需求,并提供过渡到业务流程目标状态的路线图。
实作
为了实现,他们选择了模块化集成平台Red Hat JBoss Fuse。
JBoss保险丝架构关于现成的基本工具的更多信息:
基于公司集成模板(EIP)构建的
Apache Camel提供消息路由,具有大量现成的适配器,可与外部系统一起使用:数据库,文件,消息代理,目录服务,邮件等。
Apache ActiveMQ ,它组织消息的交换,并确保消息的传输和存储,直到订阅者将其接收为止。
集成过程本身(流程)是一组顺序的操作。 例如:要通过已开发/现有的适配器从源系统接收消息,请转换消息数据,添加,过滤并通过其适配器进一步传输到接收器系统。
整合过程同时,对数据进行验证,保证其交付,提供收集监视系统功能的错误处理,将错误告知负责的执行者等。
例子
采取在银行发行贷款的过程。 Internet银行中的客户填写了一个应用程序,从表单发送数据并等待结果。 里面发生了什么:总线通过提供给Internet银行的其余api,接受带有主数据的请求。 此外,他通过MDM系统中的soap接口请求有关客户的其他信息,将接收到的信息组合到一个公共集中,然后通过ActiveMQ专用队列将其传输到RTDM系统,以在现有贷款产品的框架内制定报价。 然后返回RTDM的结果,然后总线将客户的报价发送回Internet银行。
测试中
当集成总线传递给测试人员时,最初是手动确定产品测试的问题。 但是,在此过程中,决定将整个过程自动化并创建一个测试平台。
我们为所有银行系统编写了模拟器。 客户并不总是提供一次对工作数据和系统进行测试的访问权限,因此为每个项目分别开发了仿真器。 这项工作的复杂性可与集成解决方案本身的开发相媲美。 测试平台的任务是:收集,部署,运行测试并将结果发送到TestRail。
我们制作了两组在每个构建期间运行的脚本(CI / CD)。 根据提交,组装已启动并部署到展台。 部署过程完成后,运行了一个简短的脚本(烟雾测试),这使我们知道没有集成交互中断。
我们正在寻求夜间装配的扩展方案,这为我们提供了一个完整的答案:总线是什么?总线如何与外部系统交互? 在早上的报告中,我们看到了成功的测试或出现的问题。 但是,由于要验证此类测试的结果非常困难,因此我们没有使集成平台与外部系统的测试自动化。 因此,他们放弃了手动测试:客户的员工对其系统进行了验收测试,我们的专家通过日志检查了信息是否正确传递。
结果,有可能在仿真器上实现100%的测试自动化。 在更新外部系统之一时,总线承担着维护业务流程可操作性的任务;因此,直接对其进行了更改。 这使您可以快速测试任何更改。
而不是结论
经过所有阶段之后,我们的团队与承包商和客户建立了快速,透明的流程,并且进一步的开发,测试,实施和支持流程变得简单。 结果,实现了12个业务流程的自动化,其本质上是结合了银行主要系统(ABS,MDM,处理,RTDM等)的工作。在此类项目中,我们始终仅尝试进行自动化测试,而实际上并未涉及功能测试人员。 这减少了项目开发和集成的最终成本,缩短了上市时间并提高了人为因素的水平。
Jet Infosystems软件解决方案中心测试部副主管Alexander Sadykov
Jet信息系统软件解决方案中心开发团队负责人Pavel Ivanov