Streamlining Core Banking: Overcoming Challenges with Karate Test Framework
Hosted with Alberto Ceballos, 25 years in IT including two decades at GFT IT Consulting — on how his team built a complete shift-left testing framework for a Tier-1 bank’s multi-year core banking migration. Moderated by Benjamin Bischoff.
A Tier-1 US bank embarked on a multi-year programme to replace its mainframe core banking system with a cloud-based platform. The new architecture spans 50–60 microservices (mostly Java Spring Boot), each owned by a separate team. Functional testing was only happening in integrated environments — meaning issues surfaced too late, cost too much to fix, and slowed production deployments. Kafka was a critical communication layer but was barely tested. There was no schema registry, no consistent reporting, and no shared definition of what a “component test” even meant across teams.
GFT was engaged from the beginning of the programme. They started by defining and documenting a test strategy with an aligned stakeholder — a step Alberto calls “the single most important thing in a complex environment.” They then chose Karate for component testing and extended it using Java interoperability to cover databases, JMS, AWS services (S3, SQS), Redis, and Kafka:
- Embedded everything locally — Kafka, databases, Redis, and AWS services all brought up as embedded instances, so developers could test their service in total isolation without any external dependencies
- Karate mocks for cross-service dependencies — external services mocked using Karate so each team tests only what they own, with full control over the mock’s behaviour from the test itself
- Same tests reused for performance — Karate’s built-in Gatling integration let them reuse component tests as performance benchmarks without duplicating scripts
- Custom functional reporting layer — built on top of Karate’s execution reports to give stakeholders a view of test status aligned to business scenarios, not technical scenarios