At the end of 2018, we released IBM Z Open Development, enabling developers to code and build on z/OS as they would on any other platform by making Git usage a reality for Z. This toolset most notably offers Rocket Software’s port of Git bundled with EGit, making Git on Z possible through IBM Dependency Based Build. Along with modern editors, Z Open Development also provides Groovy scripts to run MVS, TSO, and/or ISPF commands on z/OS. All these capabilities work together to provide a modern development environment, allowing full participation in a true enterprise-wide Continuous Delivery pipeline.
But, a Continuous Integration/Continuous Delivery (CI/CD) pipeline is incomplete without automated unit testing. In fact, a core tenant of CI is continuous testing, wherein developers build and unit test code after every change.
On that note, we are excited to announce IBM Z Open Unit Test: an automated unit testing tool for batch and CICS programs. IBM Z Open Unit Test works in conjunction with IBM Z Open Development to create a powerful continuous development, testing, and delivery environment.
Because this offering is well integrated to provide maximum value and ease of use, unit testing can now become a daily practice for z/OS application developers. The advanced capabilities in IBM Z Open Unit Test reduce the time and effort required for unit testing. Some of the key features out-of-the-box include:
• Automated data capture and recording
With data recording and playback capabilities for batch and CICS programs, developers can rapidly generate test data for their unit tests.
• Test case generation for COBOL CICS programs with stubbing capabilities
Developers can generate test cases for COBOL CICS programs, as well as stub out CICS — achieving environment independence from CICS runtime during test case execution. For those not familiar with stubs: a stub is an object that holds predetermined data, which is provided in response to calls made during tests. Stubs are incredibly useful when you’re not able to (or don’t want to) involve objects that answer with real data. For recording and stubbing, Z Open Unit Test operates without the overhead of a debugging tool, lightening the load on the system and systems programmers.
• Ability to store test cases in any SCM, including modern SCMs like Git or RTC
All generated test cases are written in COBOL or PL/I, and can be stored in any standard SCM along with the programs they test. You also have the ability to export and view test results in popular formats like JUnit and in SonarQube dashboards.
A more comprehensive list of features with IBM Z Open Unit Test is below:
• Automated Unit Testing for COBOL and Batch PL/I programs
• Generated test cases in COBOL or PL/I programs, which can be stored in any SCM along with the programs they test
• Test case generation for COBOL CICS programs with stubbing
• Data recording and playback capabilities for Batch and CICS COBOL programs
• Ability to invoke test cases from the IDE or as part of a CI/CD pipeline
• Verification of VSAM and Sequential files
• Stubbing of VSAM and Sequential files
• Creation of file stubs by importing from notepad or spreadsheet or from an existing sequential file
• Assertions and automated Pass/Fail checking
• Support for Negative Testing
• Ability to export of test results in JUnit and SonarQube format
• Debug support of the program under test as well as the testcase
• Code coverage for validating changes are covered by tests
• Ability to export code coverage results to IBM Application Discovery and Delivery Intelligence
• Data recording capability for Batch and CICS COBOL programs, helping to get started with an initial set of data for testing a single program
The automated unit testing capabilities listed above are also delivered as an integrated part of
the following offerings within the z/OS Automated Unit Test Framework (zUnit):
• IBM Developer for z Systems V14.1.6
• IBM Developer for z Systems Enterprise Edition V14.1.6
You can learn more about IBM’s new unit testing capabilities at the announce here.
We also invite anyone interested to join our Sponsor User Program, where we can talk about your unit testing goals and needs. For more information, please reach out to Korinne Alpers (Korinne.Alpers@ibm.com).