Mainframes. Big Iron. The technology is over 60 years old, yet it remains critical for handling most of the world’s transactions. We’re talking about credit cards, banking, airlines, health care, the government, and even new technology like mobile applications (CA Technologies 3). The relevance of Mainframes was never the question, but their age indicates they need modernization to match today’s standards. As such, our team is integrating new methods to implement modern software/source control/testing, updating security, and experimenting with generative AI to help modernize the mainframe. My time here placed me in this process, where I worked on automated testing.
About My Summer Project:
My name is Jeff, and I am a senior at the University of Illinois at Urbana-Champaign as a computer engineer. Over the summer, I worked as a NextGen Mainframer under Broadcom’s MSD Data Management Value Stream. For my project, I developed and integrated an automated test to verify the functionality of Broadcom's SQL-Ease product for z/OS, a feature within ISPF (Interactive System Productivity Facility).
You might think: “Dude, what does that even mean?” When I first heard about my project, the project’s scope flew over my head. The mainframe is a massive hub used for tons of data processing, so naturally, it has a lot of terminology that seems overwhelming at first. Let’s go over my project in detail to explain some of this terminology.
The ISPF is a menu-driven user interface that communicates with the mainframe. SQL-Ease is an ISPF feature that allows you to analyze, format, and execute SQL statements stored in the mainframe. I like to interpret it as a limited IDE inside ISPF like Vscode/Intellij but only for SQL.
Figure 1. SQL-Ease Main Menu panel in ISPF
In short, here is what my test performs:
-
Navigate through SQL-Ease and test its contents and functionality.
-
Output data to our database. This is to detail any changes in SQL-Ease for debugging.
-
Add the new test to the regression test suite. This centralizes several mainframe tests to one big test bucket for testing out different environments in ISPF.
The purpose of this test is to automatically verify that SQL-Ease's behavior doesn't change when updates are made to the product or environment. SQL-Ease is extensive, but my test verifies this feature quickly in about 60 seconds. On the other hand, manually doing so would take a few days. In this case, our efforts to modernize the mainframe allow the new generation, like me, to use modern IDEs/frameworks to efficiently interact with it rather than inconveniently doing so via the mainframe terminal.
Now that we know the project’s scope, let’s overview what I learned to implement the project.
Learning Mainframe and Skills Through The Project:
PTG2
PTG2 (PragueTestingGears2) is a framework written in Python meant to simplify automated mainframe testing, where it bridges scripts with mainframe applications. It has an emulator I used to navigate through ISPF and test SQL-Ease. I also used it to transmit data packets detailing any changes in SQL-Ease contents/functionality detected by my test into a relational database Broadcom uses.
DBeaver (SQL and Databases)
DBeaver is a database administration tool that allows users to connect and interact with various databases. Broadcom uses a relational database utilizing DDLs (Data Definition Language) to define database objects. DDL objects make large data packets comprehensible, and DBeaver gives infographics for these structures to learn about them more easily. I mainly used this tool to learn SQL and run queries to debug/clean up incoming data packets sent from PTG2.
Figure 2. A query ran in DBeaver showing failed/passed test data sent from PTG2.
Jenkins (CI/CD)
Jenkins is a system testing server that helps develop/integrate new software in large projects. It is a powerful tool used to test if new code breaks any of the project’s existing functionality before actually adding it to the project, also known as regression testing. I learned about Jenkins to integrate my test with the other regression test cases encapsulating the functionality of any other features in ISPF.
Figure 3. Two regression test instances from Jenkins show that the SQL-Ease test passed and failed.
Other
I gained more experience with large codebases and picked up good practices from my project’s existing work. For example, I used existing tests in the project to blueprint many parts of my test and learn about PTG2’s capabilities. Additionally, I learned how to work with Sonarlint in my IDE which assisted me in writing better and more consistent code. Lastly, I learned industry-standard skills such as JSON parsing to pass arguments and documentation using markdown.
Summary:
To help with the mainframe’s modernization, I designed an automated test that verified the contents and functionality of SQL-Ease in ISPF, stored debugging information in a relational database, and integrated it into a Jenkins pipeline. I improved my skills in Python and learned SQL, DBeaver, Jenkins, and industry-standard coding practices.
Conclusion:
The summer I spent in Broadcom was a challenging, productive, and fun experience. Time seriously flew by while I learned about the mainframe and honed my skills as a programmer both in coding and practice. If I had to choose, my favorite part of the experience was my team and the work culture. There was a time when I got stuck on my project, and my coworkers suggested using the building’s gym to clear my brain’s cache. I swear, the gym is a cheat code for productivity because I solved my problem soon after weightlifting there. Shoutout to my team for being the coolest and smartest team ever (definitely not biased here), they always had my back whenever I was confused or needed help. Lastly, I’d like to thank my buddy and my manager for teaching me the ropes to becoming a Mainframer. In conclusion, I am proud of the experience I gained over the summer and look forward to learning more about the mainframe in the future.
References:
CA Technologies. Connecting Applications from Mobile to Mainframe in the Application Economy. docs.broadcom.com/doc/connecting-applications-from-mobile-to-mainframe-in-the-application-economy. Accessed 22 July 2024.