Role of Quality Engineering within DevOps and CI/CD

In today’s fast-paced world, where technology is frequently changing, it has become imperative for software development organizations to be competitive and meet customer demands. In this environment, the traditional waterfall software development methodology is inadequate for organizations to stay on top of the market. Despite its strengths, it often produces low-quality applications and results in time-to-market delays. This has forced software-development organizations to pursue alternate methodologies—particularly the Agile- and DevOps- based development processes.

DevOps is an extension of the Agile development methodology that allows software development and testing to operate in parallel through continuous collaboration between all stakeholders. With the introduction of DevOps, many people assumed that the QA role was no longer required and that the development team could develop any application or product itself. Organizations that went ahead without a QA team started seeing quality degradation of their applications and poorer ROIs. This has required organizations to reshape roles, fall back to a shift-left approach, and bring back the QA function. However, the conventional QA role does not fit well into DevOps. To align with DevOps and to support current and future technologies, the QA role is being transformed into Quality Engineering (QE).

The Quality Engineering role is more demanding than QA was, as it is more fundamentally focused on quality. The QE role demands that you have expertise in all aspects of DevOps which are directly or indirectly related to product quality–including software testing, automation testing, Agile processes, CI/CD, etc. Apart from the above, quality engineering personnel should also have a good knowledge of design techniques, the technology stack, delivery processes, etc. to help the team build high-quality products. QE must be an integral part of the DevOps team as they participate in a wide range of activities like collaborating with business analysts, developers, stakeholders, and customers; as well as developing test automation frameworks and test scripts.

The QE team needs to align their efforts to the DevOps cycle by ensuring at least 90% test coverage with all test cases automated. The focus is on automating set-up, deployment, and testing, together with aligning these tasks to the Continuous Integration Cycle. This requires collaboration and coordination between different teams (development, QE, operations, and so forth). It is important to automate all testing processes and configure them to run automatically when deployment is complete. QE also needs to ensure that the environment and deployment processes are standardized.

Beyond automation, QE also needs to focus on getting faster test results by appropriately defining the test strategy and selecting the right tools.

The following activities should be considered when defining the test strategy:

  • Test cases need to be identified for each build.
  • Test execution should ensure fast results—speed that can be achieved through distributed and concurrent test execution.
  • Teams should collaborate and identify affected areas for planning testing activities and test case priorities.
  • Once priority test cases are executed, regression test cases should also be executed.
  • The strategy around testing new features should be formalized. Interim builds should be given to QE who should, in turn, create test scripts and run these automation tests on the interim builds until the code becomes sufficiently stable.
  • Using various automation techniques, QE should be able to perform automation-testing runs across various cross-platform and cross-browser (if appropriate) environments.

Apart from automating test cases, an automation framework should be integrated with the build release management process (CI/CD pipeline) to get faster results and align QE with DevOps. All the environments required for testing need to be standardized, and the deployments should be automated. This ensures that the automation framework execution can be kicked off as soon as the build is released. Subsequently, results should be shared with the stakeholders automatically. Blocker or critical bugs found during testing should be reported, fixed, and passed through the same chain of events before the code deployment into the production environment. Security testing should also be built into software changes and deployment operations (CI/CD pipeline) for identifying vulnerabilities when the code is changed.

In DevOps, QE’s role is not just to focus on testing. QE needs to be involved in all aspects of the development process like estimations, requirements, and code reviews. QE works closely with the development team to configure specialized code analysis, review, and coverage tools. It ensures that the code review is completed at all levels and that nearly 100% code coverage is achieved. Lastly, QE works closely with the operations team to set up monitoring of the production environment. This can expose issues related to infrastructure before they cause failure. Setting up desired counters like response times, memory, and CPU utilization can provide a lot of insight into the end-user experience and ensure that the systems are online all the time.

In a nutshell, the role of QE has evolved to fit into DevOps. QE needs to be involved at all stages of the product lifecycle, and QE needs to collaborate with all other teams. To get the best results it is very important to select the correct QE tools for test management, test automation, security testing, performance testing, and application & infrastructure monitoring. The respective tools should seamlessly fit into the CI/CD processes to produce the desired, fast results.



Vikas Shukla
Director – Quality Engineering

Himanshu Gosain
Senior QE Architect


Read other blogs of the series to get more insights on Quality Engineering, QE services, and QE Automation:

Moving from Quality Assurance to Quality Engineering
Test Automation – Getting the most out of open-source
Adding AI capabilities to a Test Automation Framework
Mobile Test Automation – How to get the most bang for your buck
ETL Data Validation – Better decision making through improved data quality

Similar Blogs/Articles/Briefs

Elevate your overall success