Whether you're writing COBOL or Go, this is how unit tests make your software better

2 years ago 355

Commentary: The lone mode to support gait with bundle improvement without getting buried successful bugs is to portion test.

10.jpg

Image: iStockphoto/faithiecannoise

If you enactment for a institution of important size, oregon 1 that has simply been astir a while, likelihood are bully that you're moving COBOL. Perhaps tons of it. And, if so, you apt privation that you could update it to thing else, but find the risks often outweigh the rewards. I recently wrote astir a large Midwest pension fund with hundreds of billions of dollars nether management, and however it was trying to migrate overmuch of its COBOL codification to a much modern programming language, Java. They wanted much flexibility and velocity successful adding caller features to support up with lawsuit request for much retail-like computing experiences. They wanted to spell afloat DevOps.

SEE: Quick glossary: DevOps (TechRepublic Premium)

But wanting didn't marque it so. Unit tests, however, offered them a way forward.

The penning of portion tests is cardinal to readying immoderate codification migration initiative. Unit tests, said Dan Wahlin, service arsenic a benignant of crystal shot due to the fact that they alteration you to "more accurately foretell aboriginal changes [to your code] and the interaction they'll have." A batch of ample institutions tally a batch of COBOL, but astir nary 1 astatine those companies truly understands anymore however it each works. Given the gargantuan quantity of codification moving successful accumulation contiguous (an estimated 92 cardinal lines of caller codification written each year), astir of it lacking portion tests, this turns retired to beryllium a large occupation for enterprises that privation to safely upgrade their systems. 

Given the standard of the portion investigating problem, the lone viable way guardant whitethorn beryllium to automate those tests.

Automation, but not with robots

The emergence of artificial intelligence solutions similar Diffblue can automate portion trial penning successful human, readable output. This is captious arsenic we are ne'er going to person capable developers to constitute each the codification we need going forward, particularly tests. AI is utilized successful cars, medicine, online dating, societal media and more, yet developers person lone conscionable precocious started to usage it for testing. With Diffblue and others offering specified investigating for free, it's becoming ever easier to find if automated investigating volition enactment for your peculiar applications. 

It's important to commencement now.

SEE: Hiring Kit: JavaScript Developer (TechRepublic Premium)

In my article, I referenced a glaring illustration of mainframe failure–the New Jersey authorities authorities website for unemployment filings. Everything worked large until it didn't. As it happened, excessively galore customers rushed online successful January 2020 arsenic governments and banks closed offices oregon restricted hours successful effect to COVID, crashing the site. Turns retired it wasn't COBOL oregon the mainframe's fault. Rather, it was the web exertion betwixt the mainframe and the extracurricular world. Applications written successful COBOL are mostly truthful aged present that they're beauteous good debugged. They're stone coagulated and conscionable arsenic inflexible arsenic chromatic for galore caller usage cases.

Therein lies the problem. 

COBOL is much than fractional a period old. There are 280 cardinal lines of COBOL moving each time (it's the backbone of our planetary fiscal systems). It works. It works due to the fact that we've spent decades honing it for peculiar usage cases. Programming languages are designed with a bias. Python shines for information subject and artificial intelligence. Fortran is unsurpassed astatine rendering mathematics formulas successful code. JavaScript makes websites interactive. But astir thing beats COBOL for crunching billions of transactions.

SEE: 10 ways to forestall developer burnout (free PDF) (TechRepublic)

Despite COBOL's reliability, immoderate effort to update to a caller language, arsenic successful the illustration cited supra of the Midwest pension fund, creates immoderate uncertainty. Of course, you don't request to beryllium updating a strategy to person the accidental of exertion failure. What happens erstwhile the time comes with a caller bug find successful your programme but the writer is nary longer employed connected your team? A caller squad subordinate needs to recognize the codification and marque definite she doesn't interruption the programme with a fix. With portion tests, this is overmuch easier, faster and much reliable.

Unit tests besides assistance successful codification reviews. And if the wide codification basal has bully trial coverage, it tin beryllium overmuch easier to recognize the larger picture, amended the programme and debar different bugs. Whatever your programming language, and immoderate the application, portion tests are sometimes eschewed due to the fact that they dilatory bundle improvement down. Sometimes, however, slowing the gait to beryllium much deliberate done portion tests really speeds everything up.

Disclosure: I enactment for MongoDB but the views expressed herein are mine.

Developer Essentials Newsletter

From the hottest programming languages to the jobs with the highest salaries, get the developer quality and tips you request to know. Weekly

Sign up today

Also see

Read Entire Article