Insights

QAOps: What it is and how it accelerates software delivery

Written by Anastasiia Knysh | Feb 5, 2020

Introduction

Product teams are often pushed to build and release faster. But too often, accelerated delivery comes at the expense of quality. Sacrificing quality is a shortsighted delivery strategy that almost always ends up causing more havoc in the long run.

We’ve written in the past about why product leaders should focus on quality delivery first, then accelerate that process. However, this doesn’t mean that speed and quality must be mutually exclusive or competing goals.

One way to increase speed and quality in tandem is through QAOps, an emerging practice that integrates quality assurance (QA) into software delivery pipelines. What is QAOps? How can it help delivery teams move faster without sacrificing quality? Let’s dig in and find out.

How a QAOPS framework works

QAOps is a framework that fuses the principles of DevOps—where software development and IT operations teams collaborate and combine processes—with quality assurance. This framework was created to improve software delivery processes and workflows without sacrificing the quality of an application or platform. QAOps seeks to fuse QA practices with software development and IT operations to create a long-term, integrated operational delivery model.

In contrast to testing and QA being a final, pass/fail checkpoint before release, QAOps integrates QA throughout the software development lifecycle (SDLC). Within QAOps, QA teams are given a more prominent role in the SDLC. This empowers QA teams the ability to analyze and advise future development cycles, find issues sooner, and help to accelerate the actual value delivered to customers and users.

QAOps combines QA processes and reporting dashboards with the basic ideas of DevOps—continuous integration (CI), continuous delivery (CD), and continuous testing (CT)—into the same pipeline.

What is QAOPS?

A consensus on the exact definition of QAOps has yet to emerge, but the framework is based on two primary principles:

  • The QAOps framework integrates continuous testing in DevOps together with a CI/CD pipeline
  • The framework increases the collaboration between QA engineers and developers.

QAOps defines and streamlines the QA process, integrates QA processes into DevOps, and pulls QA teams out of silos and into the cross-functional product team.

Where can a QAOPS framework be used?

The framework promotes increased collaboration between each engineering practice in the SLDC. This helps remedy the communication issues that often occur between testing QA teams in more traditional software development models, where QA is the binary pass-fail process that occurs just before release.

That’s the big-picture QAOps definition. Now, let’s investigate how QAOps can be used to improve specific testing processes.

1. Automated testing

Automation testing is a software testing technique that compares actual outcomes with expected outcomes. Automated testing automates the more mundane aspects of testing, allowing QA analysts to measure test results and advise subsequent stages of development based on the data these tests produce.

As it accelerates the quality feedback loop, automated testing is essential to a QAOps environment. However, before building an automation framework, QA specialists must study the product in detail to better understand its goals, specifications, and functionality.

Once this analysis has been performed, QA teams can decide which tests can be automated first, depending on the stage of the product their working on. Automated tests are then tailored to the goals of the product, saving time and making testing data more relevant.

2. Parallel testing

Parallel testing is the process of running multiple test cases on an application and its subcomponents across operating systems and browsers at the same time. These tests are automated and can drastically reduce total testing time, making parallel testing ideal fit to continuous integration, continuous delivery, and QAOps.

Parallel testing works well In QAOps, as it allows for accelerated testing within the delivery pipeline. However, given the amount of data that parallel tests process and produce, the demands on hardware and infrastructure will be greater. It’s vital to utilize a robust testing cloud that can handle the increased data processing load required of multiple tests in tandem.

In cases where server capacity allows, teams can launch CI/CD pipelines with automated and smoke tests in multiple parallel streams. This helps to quickly identify “flaky” tests—tests that exhibit both a passing and a failing result with the same code. Detecting flaky tests earlier in the SDLC helps teams find and eliminate unstable tests in their application.

3. Test scalability

After a product launch, it’s time to think about scalability. Product managers and product designers consider customer feedback when thinking about what features to add or improve next.

But when scaling a product, it’s also important to consider how tests will scale with the product. Scalability testing is a non-functional test methodology that measures the performance of a system when the number of user requests is scaled up or down.

Scalability testing helps to define a system or application’s performance at different conditions by changing the testing loads. The results of these tests show how the system or app will respond at scale. This data is important because, in a CI/CD model, tests must synchronize to scale up and down with the pipeline.

Automated tests are easier to scale than manual. With automated tests, engineers can save steps, models, methods, page objects, and features, and reuse them in future tests. Since the components have already been built, process automation makes the development of new tests less complex and easier to build with each step.

As a common QAOps practice, quality assurance teams must have the scalable infrastructure for performing testing to be able to increase the speed of tests, when required.

4. Smoke testing

Smoke testing, also known as “build verification testing” or “confidence testing,” determines whether a deployed build is stable or not. If features don’t work or bugs haven’t been fixed, testing is halted to prevent developers from wasting time installing a broken test build.

Integrating development and operations with QA

Each of the above testing methods can be used within QAOps. The final—and most crucial—step to achieve success with the framework is to implement all QA activities into the CI/CD pipeline.

So what’s the best way to integrate development and IT operations with quality assurance? Developers should begin by writing test cases. IT operations engineers and product designers should work to detect UX/UI issues with the help of the QA team.

This gives QA specialists and developers the opportunity to work together and gain a better understanding of the QA process. This initial collaboration among departments will help to make the process of development and testing more effective in tandem.

QAOPS: Final thoughts

QAOps is a useful set of practices that automates the processes between software development, IT, and QA to deliver software faster and more reliably.

The emergence of QAOps draws attention to the fact that quality is often neglected in software development. It shouldn’t be. Quality assurance analysts and test engineers are integral to any successful, long-term delivery model.

QAOps offers an encouraging next progression in software development—one that offers speed without sacrificing quality delivered.

Looking for a deeper dive? If you’re struggling with quality assurance, your QA strategy, or how to implement QAOps, we’re happy to help. Get in touch with us.