QAOPs – Road to faster software delivery

QAOPs – Road to faster software delivery

Why QAOPs?

You must have heard about DevOps and wondering what is QAOPs. In 2009 Patrick Debois introduced the concept of DevOps to the software world as a software engineering culture and practice that aims at unifying software development and software operation.

But how about unifying Software QA and Software operations? QA plays a huge role in the software delivery and operation model. QAOPs is an effort to integrate QA processes into the software operation space so that we can built a platform to make our software operational model more seamless and integrated. QAOPs advocate integration of QA processes, automation and QA Reporting dashboard with the software build and release processes. It integrates continuous testing practice in the continuous integration and deployment pipeline. QAOPs aims at making software delivery process faster and more stable and facilitate rapid integration cycles without compromising quality.

What is QAOPs?

Most of us are already aware of the tools and processes of the QAOPs and are implementing them in one form or the other in our delivery cycles. QAOPs deal with setting up QA automation tools and execution on the continuous integration pipeline so that code, configuration and data are continuously getting tested as newer addition or modifications are made. It is about creating testing platform that continuously test the application.

It involves three different steps primarily

  1. Triggering
  2. Execution
  3. Reporting

Triggering:
A critical part of the QAOPs is to build processes or mechanism that can trigger the right set of tests when the application changes or additional functionality is pushed in the pipeline. While designing the triggering process it is important that we build the triggering in way that triggers only the appropriate test sets based on the change that is happening in the application. If the triggering is not build in the right way you may end up testing more than what is needed or missing out areas that need to be tested. More tests would cost you longer feedback time. Less test may result is defect leak.

Good practice would be to think about mapping your tests to the functional requirements, code, data and configuration as they are getting built. In today’s complex world of software development, it is important we consider all the different aspects of the application and not limit our self only to build our mapping of the tests to functional requirements.

This is just to name one of the several factors that need to be considered for designing the triggering mechanism. Triggering mechanism need to be well thought off from the beginning of the software life cycle. Triggering is the foundation block of the QAOPs pipeline . Proper triggering can help software team to be worry free and confident on the product roll out during development and maintenance phase.

Some of the key factors for designing the triggering process

  1. Test mapping
  2. Sequence triggering of different type of testing – unit, api , integration etc
  3. Integration of test triggering based on code check in and deployment

Execution:
Execution is the heart of the QAOPs. Once the triggering happens, execution takes over. Key area to be considered for execution planning

  1. Parallel test execution
  2. Support for multiple types of tests – unit , api , integration .
  3. Incorporation of dependency model in the execution pipeline so that tests can be executed in sequence as needed
  4. Scalability
  5. Distribution of load of test executors
  6. High availability

Reporting:
Reporting is the eye of the project team into the QAOPs process. If the reporting module is not designed properly, even if you have the best processes in place for the QAOPs it will not be adding value to your software delivery model. While planning for reporting, we need to ask who would be the target audience of these reports. Ideally any stakeholder to the project from the developer to the senior management team should be the audience for these reports.

Every group of people have a different prospective on the level of details they need from the report. Design for reporting module should include multiple views – snapshot view as well as detail view so that it caters to the need for every group with the information they need. Key focus areas should be

  1. Multi-level of the results – Snapshot and Drill down
  2. Historical trend report
  3. Proper search criteria to look for specific results
  4. Accessibility of the report
  5. Availability of the report on demand
  6. Level of details as needed for debugging
  7. Scalability of reporting dashboard for handling large data volume

Unless you have proper QAOps set up in your software delivery pipeline even if you have good test automation you can’t leverage the benefit of the automation fully. It is like you may have a sports car but you can’t fully take advantage of the power and performance of the sports car if you don’t have a good road to drive it on . You will still be driving at a low speed with your high end car. Your automation will be under utilize unless you have a good QAOPs set up.

QAOPs is a high specialized area within QA, Dev and DevOps which when designed right can highly optimize your software delivery model. It will assist your software teams to support faster time to market without compromising quality by integrating continuous integration in our delivery process. Best part of the QAOPs model is, once you have laid out the process and tools it can leveraged across multiple projects within the organization and would always be working 24X7 as watch dog to ensure your delivery is stable.

Leave a Reply

Your email address will not be published. Required fields are marked *