True continuous deployment requires a testing strategy that can keep up with rapid development cycles. Many companies are turning to continuous testing as a method for bringing QA up to speed with CI/CD processes. When utilized effectively, continuous testing can have a significant positive impact on your business:
- Help improve code quality by revealing issues earlier
- Speed up release cycles and reduce time spent doing QA
- Minimize risk of products and features failing in production
Continuous testing can require significant infrastructure and procedural changes for your team. If you want to implement continuous testing successfully, here are some key actions you’ll have to take to get the most out your new testing processes.
1. Identify Gaps In Your Current Testing Processes
According to the 2015-2016 World Quality Report, 41% of QA and testing executives cite getting the right test coverage as a major challenge to application development. Knowing what test cases you should include in your QA strategy is key to implementing continuous testing. Whether you currently use manual testing, automation or a combination of testing resources, audit your existing testing strategy and identify where your weak points are. Finding the sources of quality breakdowns and release bottlenecks – from QA activities that your team spends too much time on, to the types of bugs you often see in production – can help you identify where you need to bulk up your QA processes.
2. Shift QA Testing Left
Continuous testing should not wait until the end of development. To reap the benefits of having a tight feedback loop between development and QA teams, continuous testing should start during development, with unit tests and functional and regression testing. For example, productivity software company Atlassian exemplifies this practice of “shifting left” with their QA practices, and regularly involve QA testers in development activities and place a focus on empowering developers to write more effective unit tests early on. As a result, they’ve been able to speed up development cycles and keep their QA team lean and efficient.
3. Leverage CI for Regression Testing
Continuous integration, or CI, gives you the advantage of a consistent build and a consistent run of your tests. Leveraging a CI server to streamline integration and execute unit tests can help your team find regressions more effectively. When used in conjunction with proper code branching strategy, CI tools like CircleCI and Jenkins can significantly reduce the bugs and provide immediate feedback on the quality of your codebase.
4. Rethink How You Use Testing Automation
Automation is a critical part of scaling up QA practices. But many teams make the mistake of trying to go all-in with automation premature. When products and features are still in development, test parameters are generally in flux. Testing automation suites often require too much time and too many resources to set up for tests that many change quickly. As a result, testing automation is can be an inefficient use of resources for certain tasks. Rainforest, for example, can function as a stop gap for features that require more testing than your team can do manually, but that aren’t ready for full-blown automation.
Learn More about Continuous Testing in “Continuous Testing for CTOs”
If you’re ready to get started with continuous testing, read more about implementing continuous testing in our guide, Continuous Testing for CTOs. In the guide, we discuss the challenges of QA testing, what continuous testing involves at various stages of development, and how Zenefits has successfully implemented continuous testing across multiple development teams.
This post is adapted from content found in Continuous Testing for CTOs. To read the full guide, download it here.