Improving quality and reducing outages
This Global Technology Manufacturer (‘The Company’) needed to reduce software outages for their high-earning cloud service, increase developer productivity and accelerate application modernization. They looked to autonomous unit test writing to help.
The Company depends on a number of large Java applications, including an IoT platform that generates hundreds of millions of dollars of annual revenue. Frequent changes are necessary to meet customer needs, but the size and complexity of the decade-old codebase made it difficult for developers to fully understand the real impact of each change. Delivery was slow as a result, while frequent production outages incurred financial penalties and reduced customer satisfaction.
The Company’s leadership recognized the power of more effective unit testing as a means to address the problem, so a new unit test coverage gate was implemented. Reaching this elevated coverage bar was a challenge, despite a team of more than 100 developers already spending over 20% of their time on unit testing. Much of the legacy platform had low coverage and many tests that did exist weren’t effective enough, providing coverage without sufficiently exercising the code.
In parallel, an application modernization initiative - designed to increase agility and customer responsiveness of this important application - is underway. The monolithic legacy codebase is being refactored into a microservice - and Kubernetes-based architecture, requiring a considerable amount of code change. Without associated unit tests the project simply cannot succeed.
The scope of work to create the necessary unit tests was daunting. With the team already working at capacity to deliver a backlog of new feature requests, they began to search for a tool that could help.
Autonomous unit test writing
Diffblue Cover provided the specific capability the team required. With Cover, they are able to write and maintain consistent, predictable, comprehensive Java unit tests at scale without any increase in developer effort. The new code is generated completely autonomously, quickly increasing coverage and going beyond the ‘happy path’ testing of some of the Company’s previous test suites.
The Company initially trialled Cover in a new application that had a low level of unit tests, quickly rolling it out to the monolithic IoT codebase and new Kubernetes-based pipeline when they saw what it could do.
As always, the Diffblue team worked in close partnership with the Company’s platform owners and Java development teams as Cover was deployed, to ensure the highest possibility of success. Weekly “surgery” sessions took place alongside ongoing training and consultancy until Cover was up and running.
More coverage; more speed & agility
The Company quickly saw the potential of Diffblue Cover when it automatically generated 70% unit test coverage from a base of virtually zero in the first Java project.
Cover is now integrated into Jenkins-based CI pipelines across the three initial Java applications, ensuring that unit test writing has become a completely automatic, standardized part of the software delivery process. A significant number of developers no longer have to worry about writing or updating tests.
In addition, with Cover Reports the Company has the means to understand exactly what level of unit coverage they have; previously an impossible task across such a large codebase. Reports provides a detailed analysis of unit test coverage - from the project level all the way down to individual methods - so teams can identify gaps, the reasons for them and the levels of risk they present.
With Diffblue Cover in place the Company is able to use the power of unit testing to help them reduce downtime, become more agile, accelerate modernization, and ultimately become more competitive.