We spoke with several people that are looking for a solution to the problem of successful Java unit testing at scale. An organization polled 450 IT leaders to discover more about their perspectives on application modernization and how their companies are tackling it. One thing was clear: there is still a lot of work to be done on Java programmes.
But why are they looking? After all, most Java teams have spent years balancing delivery against a (constantly growing) backlog with achieving/maintaining strong unit test coverage.
Among all the business-specific reasons, application modernization – the necessity to modernize Java systems so they can more effectively support a 21st-century business – comes up more and more frequently, so we decided to take a deeper look.
The most recent Java community poll investigates how difficult application modernization is for Java teams, how they plan to handle it, and what the primary difficulties are expected to be.
Some of the outcomes were unexpectedly emphatic. For example, corporations intend to modernize more than 80% of their Java apps (which could number in the hundreds). Or the thought that all of that labor may absorb nearly half of all available developers. For at least five years, and possibly even longer.
The full survey results are accessible in the survey report of Online Java Test, however here are some highlights:
- The most significant impediment to successful Java modernisation is… code quality. 46% said it was one of the most significant concerns, and 18% said it was the single most significant impediment.
- It appears that technical leaders believe their Java programmes are insufficiently secure. 56% consider ‘enhancing application security’ to be an important modernization driver (the most popular option).
- Automation is a synonym to modernization. For 58% of respondents, the terms have the same meaning, and 90% believe that more automation is required for modernization.
- The human cost of not modernizing is considerable and widely acknowledged. 40% of IT leaders believe that doing nothing will increase personnel turnover.
A summary of these highlights is available, but let’s dig a little further.
Java is not going away.
For the better part of three decades, Java has been used to construct enterprise software; many new languages have arrived, and others have faded away, but Java can still be found in a variety of areas. No surprise there, but as an example of size, some survey respondents reported running more than 1,000 different Java apps! Half of those polled have more than 100.
According to the poll, businesses consider Java systems as an important aspect of their future IT strategy. Almost all respondents (96%) stated that Java programmes are vital to their organizations, and 87% believe that modernizing Java applications should take precedence over other IT projects.
Almost everyone claimed they have funding set up for modernisation efforts, with the majority of it earmarked. It’s uncertain whether it’ll be enough to cover the labor required.
The most difficult challenge is code quality.
Java modernisation is a difficult task. There are many roadblocks to success, but maintaining code quality topped the list in our study (46% said it was one of their major issues, and 19% said it was the most important of all). Why might this be the case, given other considerations such as the emphasis on security? It’s most likely due to what modernisation entails: the programme must continue to function at least as well as it always did, regardless of what changes are made.
That’s often difficult to achieve when you’re working on undocumented code created 5, 10, 15 (or more) years ago by someone who has since left the organization.
Unit testing is widely recognised as an effective method for addressing the code quality issue. Unit tests offer developers with immediate feedback and excel at detecting regressions when changes are made to existing code – two essential aims during application modernization.
When it comes to modernizing operational software, 97% of survey respondents say unit testing is extremely or very important, yet 87% believe a high or extremely high level of developer work is required to achieve the optimum coverage level.
Automation’s Importance in Modernization
Responsibility is ‘shifting left’, from testing to security to operations. That sometimes means more work for developers. It is sometimes assisted by more cross-functional teams (the DevOps paradigm). In either case, automation is critical.
However, the poll appears to show that either teams lack the automation required for successful application modernization: 90% believe that modernization programmes will spur increased adoption.
Perhaps more intriguing is the above reported statistic: 58% of IT leaders believe that modernization entails automating more processes. It’s the main reason for making the effort (or one of the main ones).
That section of unit testing I just highlighted, which was regarded as critical by survey respondents, is ripe for automation. A developer can spend 10 minutes on average developing a single unit test. Thousands of tests may need to be written throughout the course of an application modernization project – certainly a measure of ‘extreme’ developer work!
Unit testing that is completely autonomous
Fortunately for the developers (and other team members) who will be doing all of that work in the coming years, AI-powered solutions are increasingly giving the means to make some of the most repetitive, time-consuming modernization chores faster and easier.
A good example is unit testing. AI that uses reinforcement learning to generate JUnit tests that are indistinguishable from those written by a developer. It can write each test in seconds without requiring human input or review, assisting in delivering the high levels of test coverage required to handle the code quality challenge and ensure the success of application modernization.
Conversations with our customers revealed that application modernization was on many IT leaders’ to-do lists, which is why some of them chose us in the first place, 45% of developer resources represents not just a significant financial expense, but also a potentially significant missed opportunity – consider all the other tasks they could be doing. Mercer | Mettl can help you enhance test coverage and conduct online coding test developer efficiency whether you’ve started your modernization journey or not.