As a member of the Sauce Labs team, I am lucky to work with our customers as they embark on their continuous testing journeys. Teams of all sizes have undergone massive shifts in their development practices, mainly through the rise of Continuous Integration (CI) and Continuous Delivery (CD) as ways to deliver features more quickly to their users. However, they quickly realize that in order to achieve the speed that CI/CD is capable of, they also have to change the way they test those features. And while most agree that testing practices need to change, where I find teams have the most questions is, “where do we begin?”
Our ongoing summer series focuses on CI/CD with continuous testing, and we have lots of tips to help you increase your release velocity without compromising quality. Optimizing your pipeline for automated testing best practices can seem like a tough task, but considering a few key factors can help ease barriers to adoption, improve processes, and ultimately keep your users happy with innovative, bug-free features released at the speed that they demand.
In our most recent installment of Sauce Labs Tech Talks, I joined Josh Grant, Solutions Architect at Sauce Labs to discuss how environment and feature management can help teams of all sizes embrace continuous testing to keep quality code moving through the pipeline more quickly. We discussed two particular areas where teams can see significant results:
Environment Management: Teams who want to achieve red hot speeds in CI/CD know that they can only go as fast as their environment will allow them to, and the same applies for testing. It’s important for teams that are building out continuous testing practices to consider the environments they need for testing throughout the pipeline. And the good news is that there are a number of options available for test environments throughout the pipeline. From headless browsers for component tests providing fast feedback to developers, to full cross browser regression tests later in the development lifecycle, applying the appropriate environment at the right stage in your pipeline can help improve productivity, decrease costs, and most importantly increase release velocity. Furthermore, teams that adopt a sound environment management strategy for testing see an increase in adoption across distributed teams.
Feature Management: In order to release more features more quickly to your users, you have to change the way you build that application. Breaking up monolithic applications into smaller feature branches is a very common practice, but it’s important to understand how that changes your testing strategy as well. In fact, feature branches can help you embrace more testing throughout your CI/CD pipeline. Smaller features mean more they are more testable, and allow for test automated best practices to flourish. One of my favorite quotes from Josh around this is “You can do test automation without CI/CD, but you can’t do effective CI/CD without good test automation.” This means writing tests at every level (functional, unit, API) that are small, atomic, and autonomous. Furthermore, smaller features mean it’s easier to turn them on and off, and it allows for mechanisms such as feature flags or canary releases to effectively test features without compromising user experience.
To learn more about these topics in optimizing CI/CD for continuous testing, check out our Tech Talk on environment and feature management. These two considerations can help your team take your CI/CD to the next level, and help you achieve blazing fast speeds in CI/CD.