The motivation for modernizing or transforming COBOL for this desire has remained consistent: reduce risk, reduce cost, maintain mission-critical application processes, accelerate innovation, and transition proprietary processes to modern and industry-standard IT practices, most notably with development and DevOps. The modernization spectrum is wide, ranging from rehosting to rewriting.
CloudFrame offers products that help organizations modernize their COBOL applications. One product, CloudFrame Relocate, allows organizations to cross-compile COBOL into java, allowing it to run on less expensive zIIP or cloud environments. The application executes using the same processes and data as before.
A Y2K Reference?
Since the CloudFrame Relocate modernized COBOL application continues to reside on the mainframe, existing testing resources and procedures can be used to run through the various testing stages (unit, regression, integration, performance, etc.) generally used for a program change. But when the application, not just a program, shifts from mainframe execution to zIIP or cloud JVM, testing requirements go beyond a single program or subroutine. And if applications have not been end-to-end tested since the Y2K days, some organizations may be challenged to test the entire application in a repeatable, cost-effective, and reasonable-duration manner.
Traditional Testing Slows Modernization Achievement
Traditional (manual) testing requires a test engineer to repeatedly run and re-run these tests. Even if the engineer’s testing protocols are followed consistently, there is still an enormous overhead in having a human repeatedly run the same tests. Yet, without that testing, issues in production can cause significant downtime and drain high-value developer resources on incident calls and in war rooms. These are expensive propositions that can be mitigated with automation.
The testing process needs to save you time and money while reducing risk, which manual testing can’t accomplish. It’s simply not realistic to have test engineers manually validate every piece of code – especially if modernization processes may involve the cross-compile of millions of lines of code for hundreds of applications.
Adding resources isn’t really an option, as the number of experienced COBOL programmers continues to dwindle. And while there are Indications of movements to bring updated development processes (i.e., DevOps) to the mainframe, the majority of organizations have not made investments, and those that have reported making little progress. This may be a by-product of decades-long and failed strategies to be free of their mainframe.
A significant benefit of adding these modern development practices into an organization is leveraging the power of automated testing as part of that process. The State of DevOps report has published empirical conclusions advocating for automated processes for a decade. Yet, according to a joint global 2019 survey from Compuware and Vanson Bourne, only 7% of respondents reported automating test cases on mainframe applications. The survey also found that more than half of the time spent on the release of a new mainframe application, feature, or updated functionality is spent on testing.
That data is sobering on its own, but in the context of the benefits that automated testing can offer in COBOL modernization when attempting to achieve ROI and success, that statistic becomes mind-boggling.
It raises the question: Is it time to invest in automated mainframe testing?
What is Automated Mainframe Testing?
Automated testing is a blanket term that can be interpreted in various ways. For this article, we’ll define automated testing as “The application of software tools to automate a human-driven the manual process of reviewing and validating a software product.” (Source: Atlassian)
For organizations that have determined portions of their COBOL applications portfolio will
remain on the mainframe, potentially leveraging the economic advantages of cross-compiling to execute on zIIP or cloud compute environments, the ability to test at the application level, not just at the program level, introduces the need for automated testing. Without automated testing, organizations are incurring and expanding their risks, slowing down innovation, and jeopardizing their competitive position.
Automated testing requires some upfront investment in time and resources, but the long-term advantages far outweigh the cost. After all, you can’t achieve the impact and benefit of a COBOL cross-compile modernization until you move the modernized system into production. And you can’t get to production until you test the application.
The Benefits of Automated Testing
Adopting automated testing leads to more efficient and complete validation of modernized applications while accelerating deployment. The benefits of automated testing are better and faster test cycles and results.
As the previously referenced Compuware report notes, 92% of those surveyed said their organization’s mainframe teams are “spending more time testing code than was required in the past, due to the growing complexity in their application environments.” COBOL modernization should not follow suit, demanding more time to test code and changes than the modernization effort.
Consideration must also be given to the “newly discovered existing errors” that have gone undetected or unmitigated in the existing application. Newly developed testing may point out gaps that had been present in the original source.
Mainframe environments and the COBOL applications that run on them are still crucial and valuable elements to major businesses across the globe. However, these businesses can no longer afford to blame slow innovation or expensive development cycles on COBOL teams. The time spent defining and implementing automated testing processes not only saves companies time and money, but a myriad of tools exists to modernize development practices and support end-to-end automated testing leveraging current languages and technologies.
One thing is sure – mainframe modernization shouldn’t be costly or slow because of testing.
Automated testing processes will allow you to accelerate and better control mainframe transformation projects, reduce costs, resources, and schedules.