System Programmers and System Testing Challenges
What is the role of a mainframe system programmer, and how do they go about testing and covering everything from a major OS release to a specific software product?
This is the second post in this series on system and application testing on enterprise systems. In this post, I discuss the challenging job of being a mainframe system programmer and how they go about testing, covering everything from a major OS release to a specific software product. What is the role of a system programmer? What do they do?
Responsibility of System Programmers
The system programmer has an important role in IT. He or she installs, tailors and maintains z/OS and other OSs as required. Beside the OS, system programmers also install or upgrade products that run on the system like CICS, IMS and Db2.
The work is varied and thorough. Sometimes it’s upgrading the latest version of the OS or it could be something simpler like upgrading a single product, such as the IBM z/OS XL C/C++ compiler. It’s widely understood that the toughest job, requiring great care and attention to detail, is upgrading the OS, as this has the potential to impact every batch job, online transaction and started task in one or more systems.
Test Activities Focus on Systems, Components and Middleware Products
System programmers will IPL a new release in a production environment after they have tested it with a simulated production workload in a test LPAR. One of the challenges for system programmers is that the workload needs to include all applications and software products to ensure service-level agreements can be met. After initial testing, system programmers usually IPL in a shared OS environment after having installed any PTFs needed for coexistence.
System programmers perform a substantial level of function and stress testing because testing by IBM on z/OS and middleware doesn’t replace the need for testing in their own environment. System programmers often start with basic function testing, including:
- Initialize z/OS with JES2 or JES3
- Log on to TSO/E, submit a job and check the job’s output
- Run the product installation verification procedures (IVP) that are typically found in the program directory. Some IVPs are documented on websites like the IVP for testing the CICS Db2 environment.
A typical next step for the system programmer is customization of z/OS. Early on, they might enable automation software since most z/OS systems today have automated startup, shutdown and recovery support provided by special products like IBM Automation Control for z/OS. Next, if CICS or IMS is installed, system programmers initialize a region and sign on to a terminal. Then, they might start bringing ISV products into the test environment. As the administration and testing continues, systems programmers often ask application programmers for help running critical production jobs and testing support for a representative interactive workload.
How Many System Programmers?
Of course, the answer is “it depends.” Generally, one system programmer doesn’t do all these activities. And there is a degree of product specialization where different system programmers support the OS versus the transaction processing systems and the database software. Also, the number of OSs, IBM and ISV products, and complexity of the implementation will drive the workload, which will help determine the number of needed system programmers. In the next post, I will take a look at the role of application programmers and how they test enterprise applications.