Written by Issac To, King’s College London student and Summer 2023 Mentee
During this summer, I had the privilege of working on COBOL Check, a testing framework designed for the COBOL programming language. As a computer science student with prior work experience in mainframe technologies, I am enthusiastic about applying the knowledge I gained in compiler design and software testing to develop software aimed at enhancing the efficiency of mainframe developers.
COBOL Check is a unit testing framework for COBOL, like JUnit in Java and Jest in JavaScript. It allows users to run unit tests against COBOL programs using its high-level testing language, Cobol unit test language (.cut).
COBOL Check provides an interpreter and Visual Studio Code extension. The interpreter defines the .cut language and consists of a tokenizer, interpreter, and code generator. Upon running, it converts the .cut files to COBOL code and generates a detailed test report. Meanwhile, the Visual Studio Code extension offers syntax highlighter and interactive testing buttons.
Watch my overview video below or continue reading:
Tasks
Throughout the project, I was engaged in the development of both the interpreter and the Visual Studio Code extension, utilizing Java and Typescript. I first worked on the interpreter, involving tasks such as parser modifications and code generator enhancements. These features extend the coverage and comprehensiveness of the testing framework. Afterwards, I turned my focus to the extension, where I addressed existing Regex bugs and introduced a new test tree feature, which is the most challenging task I found.
Inspired by the Jest testing framework, the test tree lists all the .cut files inside the working repository and allows users to run individual files, test suites and test cases with interactive buttons in Visual Studio Code. This enhancement streamlines the experience and increases the efficiency for developers when using COBOL Check.
Conclusion
This mentorship marks my first open-source contribution and has been incredibly rewarding. I have learned software engineering best practices and the critical importance of rigorous testing, ensuring thorough coverage whenever changes are made. This project has equipped me with valuable technical and soft skills, and sets up a strong starting point for me to participate in other open-source projects in the future. I look forward to contributing and using COBOL Check in future COBOL projects.
I would like to take this moment to extend my heartfelt gratitude to my mentors, Rune and David, for their generous guidance and continuous support throughout this journey.