Test-Driven Development in Cobol
Dave Nicolette

Mainframes, like Mark Twain, may well say, "The reports of my death are greatly exaggerated." Mainframe systems have always been around, quietly processing 80% or more of financial transactions worldwide while people's attention was focused on colorful and innovative front-ends. Now mainframes are enjoying a resurgence. There is growing demand for Cobol programming skills and general mainframe skills. In the past 25 years or so, people working on mainframe applications have lived in a separate world from everyone else. They have not adopted many of the technical practices we usually associate with Agile software development. Only now, commercial software vendors and open source projects are filling the gaps in tooling for building and supporting mainframe applications using contemporary methods. One of the largest gaps is in tooling to support fine-grained test-driven development for traditional mainframe languages, especially Cobol. Traditional mainframe languages were not designed to allow inspection of code at runtime or to enable small sections of code to be exercised in isolation. Testing tools developed by the major players in the mainframe software market can't exercise any smaller subset of code than an entire executable. This makes it difficult to run a large number of unit test cases quickly, without any dependencies on external resources.

Today we'll take a look at an open source project that aims to provide Cobol programmers with the same level of granular unit testing as programmers in other languages enjoy. Cobol Check is designed to enable isolated execution of single Cobol paragraphs, and to stub out all references to external dependencies such as files, databases, subprograms, and CICS facilities. Now "full stack" developers have the tooling they need to deliver a vertical slice of functionality all the way through the true "full stack."

Learning Objectives
* Understand how test-driven development at the microtest level is possible in Cobol in the mainframe platform
* Overview of the current state of tool evolution for mainframe development, and future direction
* Understand how you, as an agile coach or technical coach, can bring the back-end into the agile picture effectively, so your teams can support the true "full stack"
* See a demonstration of a tool that enables fine-grained microtest-level TDD for the Cobol language
Session Type
TDD, Technical, Cobol, Mainframe