Many teams are now “shifting left,” and starting their QA process earlier in the development cycle. But in most cases shift left testing is confined to unit testing alone. While unit testing is a core component of a continuous testing strategy, teams that want to optimize for speed and quality should shift functional testing left as well.
In this post we’ll look at two organizations that have adopted a shift left strategy for functional testing, and learn how this practice helps them develop and ship features faster with minimal risk of bugs in production.
Jitjatjo’s mobile platform has a small, distributed development team with just one quality engineer to support testing. Waiting to test until late in development created a huge backlog of tests, with the QA bottleneck compounded by the fact that the team was spread across multiple time zones. This also put pressure on Jitjatjo’s QE to perform a large amount of repetitive manual tests himself, in addition to exploratory and UX testing.
In order to use their in-house resources as efficiently as possible, Jitjatjo moved their functional testing as early as possible. Their QE begins writing Rainforest tests as soon as a new feature or product is specced, making any minor tweaks needed throughout development to ensure that the test case stays aligned with the code. This also brings the developers closer to the testing process, ensuring that quality stays top-of-mind for the entire team. “Each JIRA ticket, when it goes into a sprint, must have a Rainforest test associated with it,” says Dominic Esposito, Head of Product for Jitjatjo. “The developers use the test criteria to help understand what we need from the feature.”
As a result of adopting a shift left strategy for functional testing, Jitjatjo has been able to minimize the amount of time their team spends on testing. “We’re saving 25-30% of our QA time by leveraging Rainforest,” says Dominic. By streamling their functional testing, Jitjatjo frees up their QE to focus on quality improvement and user experience, ensuring that their user base has a better product experience overall.
After raising a round of funding, Bluecore turned its focus to creating a stronger user experience for their marketing automation platform. They already had a well-developed practice of using unit tests and testing automation to keep development moving fast, but wanted to optimize their process for quality as well. “Once we reached product-market fit we turned our focus toward building a world-class user interface to support the underlying technology,” says Mahmoud Arram, co-founder and CTO of Bluecore. “A lot of our traditional infrastructure for automated unit tests and code testing did not really apply to UI testing.”
Bluecore’s development team took steps to integrate functional testing earlier in the development cycle. They hired their first QA engineer to help manage and organize the testing strategy, and tasked developers with contributing functional tests alongside the automated unit tests they create during development. “When the team starts building their features, they’re writing very high-level tests. On the server side, they’re writing automated tests. On the UI side, they’re building a simple Rainforest test that exercises the happy path of the feature,” says Mahmoud. “This way changing the code and then changing the test isn’t so arduous.”
Since implementing Rainforest to execute frequent, early functional tests, Bluecore’s team has seen improvement to the quality of each release. They’ve been able to deploy features faster, with greater assurance that they meet a high bar for quality. "Rainforest has shortened our iteration cycle, as fewer bugs made it to the support and client success teams and eventually to our customers,” says Mahmoud of the results of his team’s shift-left strategy.
To learn more about how to apply shift left testing strategies to functional testing, access the on-demand recording of our webinar "How to Move Your Shift Left Strategy Beyond Unit Tests", where Rainforest Security Architect Nicolas Valcarcel discusses how to optimize your testing strategy to get earlier, more comprehensive results so you can catch bugs faster and ship more frequently.