The Linux Foundation Projects
Skip to main content
Blog | COBOL Check | Mentorship

COBOL Check: Summer Mentee Experience

By | September 21, 2023

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.