Java Unit Testing Solution Free for Open Source
Diffblue, a UK-based startup founded by University of Oxford researchers and focused on automating software development through artificial intelligence (AI), today announced that it is making a free version available for developers on open source software projects.
The new company launched its first product, an AI-powered Java unit testing solution, in September. Diffblue’s Community Edition IntelliJ IDEA plugin, available now on the JetBrains marketplace. interactively writes unit tests for Java applications, increasing test coverage, and helping devs find regressions in future code changes.
“How Diffblue works for experienced Java hands, is it uses reinforcement learning to automatically write regression unit tests for Java apps,” a company spokesperson explained in an email. “They reflect the current behavior of the application and so can be used to find regressions in new code commits, and it writes test that look like a human wrote them. Diffblue Cover (the company’s flagship product) makes full use of Spring test infrastructure and mocking to write canonical Spring tests. Unlike other tooling, Cover can also automatically maintain its test suite as the code evolves, updating just the tests that need to be re-written after a change.”
In the first 15 days after the Diffblue Cover Community Edition launch, developers wrote more than 21,000 Java unit tests, which saved about 580 days of manual effort (assuming 10 minutes per test, 6 hours of productive time per developer day), the company said.
Diffblue Cover is based on reinforcement learning (RL) research conducted at Oxford by the company’s founders. RL is a method of training machine learning (ML) models to take the best action to maximize reward in a particular situation–in other words, to learn by trial and error. It’s the same method used in AlphaGo, the Alphabet subsidiary DeepMind’s software that beat the human world champion player of Go.
Where most unit test generators create boilerplate code for tests that must be completed by developers to get functioning tests, the company explained in a statement, Cover is able to create complete human-readable unit tests that are ready to run immediately. In fact, the company claims that its solution creates Java tests at speeds 10X-100X faster than humans that are also easy for developers to understand, and automatically maintains the tests as the code evolves, even on applications with tens of millions of lines of code.
“Our goal is to be the leader in applying AI to code, starting with unit tests, the critical foundation that allows developers to more frequently ship higher quality software,” said Diffblue CEO Mathew Lodge, in a statement. “We help organizations reduce time to ship, ship more often, and ship code with fewer defects while freeing up developers to focus more time on the most engaging part of their jobs. Companies on the journey to digital transformation, especially during this COVID pandemic, can’t keep up with the rapid software changes required to reorient their businesses. Automating unit testing on new and legacy code can accelerate their journey to success.”
“As enterprises all over the world increasingly emphasize the velocity of their application development processes, unit testing becomes more and more critical,” said RedMonk analyst Stephen O’Grady, in a statement. “This is particularly true for the millions of enterprise Java developers worldwide, who are charged with maintaining countless critical applications for businesses large and small. The challenge is that tests can be tedious to write, and developers would prefer to devote their time and attention to writing code if the task of writing tests can be automated. This is the precise opportunity that Diffblue was built for.”