Test time is one of the key drivers of build times. There are many contributing factors, including the growing number of integration and functional tests to cover a wide range of inputs, running tests sequentially, and dependencies on expensive external services. This often leads to developers only running tests on CI thereby considerably lengthening the feedback loop. And even then, running all tests for every change can be a challenge both in terms of cost and build time. Gradle Enterprise provides two groundbreaking new technologies that allow to run tests earlier and more frequently: Predictive Test Selection and Test Distribution.
Predictive Test Selection saves testing time by identifying, prioritizing, and running only tests that are likely to provide useful feedback. This is accomplished this by applying a machine learning model that uniquely incorporates fine-grained code snapshots, comprehensive test analytics, and flaky test data.
Test Distribution expands test parallelism by fanning out test execution to remote agents takes your existing test suites and distributes them – based on historical execution times – across remote agents to execute them faster.