Developer Productivity Gets a Boost from Machine Learning
Gradle Enterprise Announces Support for Predictive Test Selection Technology to Dramatically Speed Up Software Testing Feedback Cycles
April 19, San Francisco, CA. Gradle Inc. announced today the immediate availability of a Gradle Enterprise product extension called Predictive Test Selection. Predictive Test Selection cuts testing time up to 70% by using machine learning to select and run only tests that are likely to provide useful feedback during test runs. It currently supports Gradle and Apache Maven™ build tools.
“Avoiding irrelevant tests which often take minutes or hours has a number of desirable outcomes. For developers, it means less waiting, faster feedback cycles, and a better developer experience,” said Eric Wendelin, its lead engineer at Gradle. “For businesses, it means faster time to market without compromising quality, reduced infrastructure costs and energy waste, and happier developers which makes them easier to retain.”
Predictive Test Selection is part of a comprehensive build and test performance acceleration strategy and product suite that includes build caching, test distribution, and performance continuity engineering.
Development teams can leverage Gradle Enterprise Build Cache and see immediate performance benefits by avoiding re-running unchanged build and test actions. Gradle Enterprise Predictive Test Selection provides a complementary build action avoidance technique that focuses on the remaining uncached tests.
Gradle Enterprise Test Distribution can then be used to speed up the execution of the remaining relevant tests by running them in parallel across multiple machines. To close the loop, Gradle Enterprise Performance Continuity provides the observability and analytic capabilities to continuously monitor and sustain performance gains over time. The result is not just a much lower average build and test time but the feedback cycle time is also much more consistent.
“We’ve calculated that over 90% of build time is automated testing. Predictive Test Selection has shown that we could save thousands of hours in testing time every week, and we are eager to give our developers that time back so they can focus on delighting our customers.” said Danny Thomas, senior software engineer at Netflix.
According to the company, key features of Predictive Test Selection include:
- Model accuracy. Predictive Test Selection can predict more than 99% of all breaking changes and avoid most irrelevant tests. It also provides a logical explanation of why each test was selected or not, to give users confidence in its predictions.
- Unparalleled insights. Gradle Enterprise is uniquely able to leverage detailed code and dependency data, which gives the model unparalleled insight into production sources and related tests.
- Proactive risk analysis. Development teams can try before they deploy Predictive Test Selection by simulating the effectiveness of the model and estimating time savings against actual test results.
The dashboard shows adoption and savings for a custom set of test runs
Gradle supports key open-source projects with free instances of Gradle Enterprise. Spring, JUnit, and Micronaut are all running Predictive Test Selection simulations. You can learn more about Predictive Test Selection by exploring the live public instances. Here you can see, for example, how Spring is saving almost 17 days worth of test time in a 20 business-day window.
“Gradle Enterprise remote build caching already cuts our test build times in half. We expect to cut it down 10x more using the machine learning capabilities of Predictive Test Selection and then Test Distribution for the rest,” said Cédric Champeau, Micronaut committer at Oracle Labs. “That will be a game changer for us.”
Gradle is leading a Webcast on April 26 that will explain the benefits of its new machine learning technology to developers and IT management, demonstrate its key capabilities, and answer questions in a live Q&A format. Joining information can be found here.