If you’re like most software development teams, you are always looking for ways to speed up your CI pipeline and reduce build time. This can be a difficult task, especially when you have to contend with large test suites and limited resources. There’s now a NEW WAY to reduce CI pipeline build time and Testing Resources. Keep reading to find out more…small hint, just run the tests that matter 🙂
Long CI Pipeline Build Time hurts Productivity
CI Pipeline builds are a growing concern for DevOps, Developers, QA, and teams alike, as they can significantly affect productivity by delaying test results and hampering collaboration.
One of the biggest challenges with build times is that they can often take hours or even days to complete, which can make it difficult for developers to understand if their changes brought about any bugs or errors.
Furthermore, these long CI Pipelines also directly impact team members who need timely feedback in order to continue working on their own projects, as the team will often have to wait for test results before starting new work. Ultimately, addressing CI Pipeline build time is critical for ensuring that developers and teams remain productive and able to collaborate effectively in an ever-changing digital landscape.
The OLD way to Reduce CI Pipeline Build Time
The traditional way to reduce CI pipeline build time was to run automated tests in parallel. This made sense, as automation testing can take a long time and running tests in parallel would allow teams to complete builds more quickly.
However, while this approach may provide some benefits, it is not without its downsides.
- Teams are limited by the number of parallel threads they can run.
- Tests often pull from the same feature areas, minimizing the number of tests that can be run concurrently.
- Parallel testing can often be extremely expensive for teams due to high resource utilization.
- Spinning up multiple Nodes on every build takes it’s toll on the team’s budget.
Ultimately, it seems clear that there must be a better way to reduce CI build time while reducing costs and increasing efficiency.
Why not just run the Automated Tests impacted by Recent Developer Changes and Reduce Build Times by 80%?
The NEW way to Reduce CI Pipeline Build Time
Execute a prioritized set of tests instead of the full automation test-suite for faster build time! By automatically selecting and executing just the tests impacted by recent developer changes, Smart Test Execution reduces CI build times by over 80%.
This strategy relies on analyzing recent commits for changes that are likely to cause issues, and then prioritizing those tests accordingly. In doing so, teams get more value out of their CI builds by catching bugs faster without having to spend excessive time and resources on running unnecessary tests. Whether you’re looking to improve CI pipeline speeds or simply want a more efficient testing process, prioritizing your tests is definitely worth considering.
2 Major Benefits of Running Tests by Priority
The time it takes to build your code is precious and can be spent doing other important things. Running tests by priority reduces the CI Pipeline build times, which means more free minutes in your day!
Save Time and Money
Running tests can be an expensive endeavor, requiring a significant amount of capital resources. This is especially true when you are running every test on every build, regardless of whether they are actually necessary or relevant to the specific code base that you are working with.
By running a subset of tests based developer activity, you’ve cut out all those tests that are certain to pass. Therefore, you’re running only what’s important and cutting down significant time and resources in the process. Reduce CI Pipeline build times by over 80%!
For example, Appsurify’s automatic risk based testing tool runs tests by priority automatically per build in the CI. The CI plug-in reduced a 4 hour Azure DevOps pipeline to 35 minutes. Once they plugged in Appsurify, they easily reduced their CI Pipeline build by 80% saving over 3 hours per build and now requiring less resources to catch bugs earlier.
They’ve saved time running less tests (while still catching the bugs) and money by not requiring as many parallel threads to keep build time down.
Shift Left
By only running the tests that matter on a per change basis in the CI, tighten the feedback loop between QA and Development and achieve a true Shift Left Strategy.
Catch bugs as they are made by getting instant test results back into the hands of developers on a Per Change Basis while they are still working on the current task.
Achieve your Shift Left Strategy by running a small subset of tests on a Per Change Basis to Catch Bugs Earlier!
Your own Dynamic Smoke Test on the Fly!
Running Tests by Priority is Faster than running Tests in Parallel!
Tests can take a long time to run, which impacts the development process. By running tests in parallel, you can reduce the amount of time it takes for tests to complete but there are limitations to this approach.
A better way to execute your tests is by priority, which allows you to only run the tests that have been impacted by recent developer changes on a per PR basis. This saves time and money while still providing instant feedback to developers. Appsurify’s CI Pipeline Test Prioritization Tool is the perfect solution for those looking to achieve a Shift Left Strategy.