We often live in an ‘either or’ environment, having to make difficult decisions that sacrifice an eventual outcome in some way. In the world of testing, this leads to the age-old debate between speed and quality. Fortunately, DevOps and the concept of continuous testing have given us the best of both worlds by allowing developers to increase the quality of the code that they ship as well as the velocity at which they release it. To better understand how we got to this place it’s important to understand the history of test.
Legacy testing used a linear approach to the software development lifecycle. These stages worked in succession: discover, design, develop and only then test and release. This was a slow process that was used primarily to mitigate risk due to the exponential cost of failure of previously catching bad code in production. The continuous testing model works like less of a straight line and is more akin to an infinite loop where testing is happening both earlier and more often in the software development lifecycle including during production.
Because continuous development has become the expectation of stakeholders and brands need to deliver an excellent customer experience every time, continuous testing is becoming industry standard. It enables companies to move quickly with digital confidence, allowing both a shift left and shift right approach to testing.
Customers have always demanded speed because in the world of software every minute matters. DevOps allows us to release code in production because of an increased ability to use error monitoring to find these flaws that negatively impact the user experience, and as Sauce Labs’ Marcus Merrell will tell you, the number one job for a tester is to model and advocate for a great user experience. And that experience is everything. Today’s customers vote with their thumbs. Delivering a negative experience, even once, can convince a user to take their business elsewhere.
By testing deep into production, QA and product teams are empowered to work quickly and confidently. Sauce Labs CTO John Kelly mentioned in an article with the SD Times, “In the modern era of DevOps-driven development, a testing strategy that does not extend into production is simply not complete.”
This is not to say front end testing is no longer important because we can more easily fix things in production. Front-end testing and error monitoring work in tandem to deliver us the intersection of quality and speed. These innovations in testing are delivering new and exciting customer insights that can inform the whole software development process as well. To paraphrase a famous pop song, testing harder, makes your process better, allows you to do it faster and make the user experience stronger. No longer do testers have to choose, simultaneous speed and quality have become attainable.