The Curiosity Blog

De-Risking Mainframe Migration

Written by Huw Price | 15 October 2020 12:08:56 Z

The value of migrating from mainframe to web and cloud architecture often appears obvious to businesses: reduced infrastructure costs, increased speed, and all the flexibility of open system architecture. Overall, that promises reduced capital expenditure, a promise that is driving wide-spread business interest in moving away from the mainframe.

However, this business interest carries technical complexity and, where essential systems are involved, risk. That’s why the team at Curiosity have built an automated approach to migration testing, iteratively testing components as they move from legacy to new systems.

Let’s first consider how mainframe systems can derail migration projects, before seeing how this automated approach de-risks migration projects.

Mainframes create developer uncertainty

Mainframe components add uncertainty to lengthy and sometimes costly migration projects. They are frequently poorly documented black boxes, built long ago or inherited through mergers. Yet, they are still relied upon for essential business processes, making them paramount to a successful migration.

Developers must understand the inner workings of these poorly documented systems, ready to migrate them and integrate them within a wholly new system. However, there is little help available for understanding the forgotten logic, which frequently carries business data through mazes of interrelated legacy systems.

Will testers find the bug in time?

Testers are often similarly left guessing at how the legacy systems work. Yet, they must build rigorous tests and data to validate that migrated systems run the same essential business processes reliably.

This rigorous testing must identify the distinct journeys with which data can travel through the interrelated legacy systems, along with expected results for each complex journey. Lacking clear understanding, it’s impossible to define these reliably, and manual test design instead hits just a fraction of the system logic.

Creating and executing the tests is further slow and complex, especially if performed manually. In this instance, testers must script or execute a large number of highly repetitive tests. These complex tests must reflect the complex data journeys through migrated systems, and test teams often struggle to find or make linked-up data sets for end-to-end test execution.

Often, testers need to run tests against both the new and legacy system to verify their understanding, and it’s still unfortunately common to find testers entering repetitive text into green screens. This doubles the time invested in test creation and execution, forcing migration testing ever-later in the project.

A challenge that can’t be ignored

The time, complexity and uncertainty of migrating mainframe components means that they are often left until the last minute in migration projects. However, leaving these business-critical components until late in the project risks undoing all the time and cost invested in the project so far.

Rigorous mainframe migration testing should instead be performed iteratively, identifying and resolving issues as they emerge. This minimises the risk of finding critical bugs in migrated systems when it’s too late to fix them, in turn mitigating against the risk of costly project failure.

Automate migration testing

Using Test Modeller, test and development teams can now iteratively test migrations as they move components, resolving issues in new systems as they arise. They can use the same visual models to execute tests for both legacy and new systems, performing snapshot comparisons to ensure that the new system performs reliably.

Meanwhile, the intuitive flowcharts maintain the knowledge and visibility needed for reliable testing and development in future:

Figure 1 – Executable flowcharts perform rapid before/after comparisons as systems
migrate and maintain knowledge of both systems.

With Test Modeller, test teams can rapidly create automated tests for both new and legacy systems, performing iterative snapshot comparisons during a migration. Automating tests for both systems is as quick and simple as dragging and dropping actions to the same flowcharts, selecting different frameworks to test each.

This avoids the bottleneck of test creation and execution, while test design is further optimised for rigour. Test Modeller uses automated coverage algorithms to generate the smallest set of tests needed to test the modelled logic, along with the “just in time” data journeys needed to execute every test.

Figure 2 – Testing iteratively throughout the migration project reduces the risk of late project collapse.

Each modelled component further becomes a re-usable subflow in the approach, a Lego Brick that can be leveraged in future testing and development. This simplifies end-to-end and integration testing, rapidly assembling components to generate tests. Test optimisation then generates comprehensive, linked-up tests and data journeys for the integrated systems, ready to execute against both the old and new system logic.

Visual run results for both the migrated and legacy system are then available side-by-side at the model level, allowing test and development teams to evaluate the risk of pushing migrated systems live.

Accelerate and de-risk mainframe migration

Using this approach, test and development teams can iteratively compare new and old systems, identifying and resolving issues as they arise. Meanwhile, they maintain precise documentation of both systems, avoiding the challenges of forgotten system knowledge and technical debt in future.

Using visual models to create tests for both systems thereby helps to ensure that mainframe migration projects deliver their full value, minimising the risk of late project collapse.

You can see this approach in action here. We’d love to hear your thoughts and to chat about your techniques for mainframe migration project success.