DevOps Testing Strategy: A quick guide

Introduction to DevOps

Wizeline QA Team
4 min readMay 13, 2021

The term DevOps comes from the combination of the words “Development” and “Operations”. DevOps is a software development and delivery process that considers the complete SDLC (Software Development Life Cycle). From a concept to customer satisfaction. DevOps expands the scope of the Agile methodology from delivering a quality product to include the deployment process and feedback from customers. The goal is to deliver better, faster, and more responsive software by bringing the Development and Operations teams together. It is all about simplifying and automating your entire Software Delivery Lifecycle.

For most companies, a successful DevOps strategy starts by adopting the Continuous Integration (CI) concept, which is an Agile best practice. This CI concept consists of Developers checking-in code into a shared repository several times a day. Then, this new code is verified by automated tests allowing teams to catch errors, conflicts, and other issues as soon as possible. Finally, this decreases the delivery time of the final product.

In the following article, we will give you an overview of what DevOps is, the benefits you can get from it, how the testing process is integrated, and how automation is part of this new cultural shift. Get your favorite drink and enjoy.

DevOps Fundamentals

What is at the center of DevOps? Integration at its best. This means, when people of various teams can work and move around their disciplines to achieve a faster velocity on construction and delivery to the consumer applications with increased security and more effectively.

Some DevOps models will require that teams are merged to work through all the building-process of the application. Yet, that comes with a change in the culture and mindset. Optimization would be required to remove traditional barriers between teams so that updates can be done more frequently and encourage the whole team to see the development as their responsibility.

The DevOps Continuous Lifecycle

For a successful DevOps culture, both the Dev and Ops teams should follow a ‘continuous’ lifecycle in an effective manner. The DevOps Continuous Lifecycle includes the following:

  • Continuous Integration: The practice of merging several times a day all developers production-ready code to a main branch in a shared repository . The main goals of CI are:
  • Maintain the code repository
  • Prevent a backlog of changes that have not been incorporated into the repository.
  • Remove any surprises that might occur when the code is deployed into an environment by frequent testing.
  • Continuous Delivery: A process to deploy software into the appropriate environment in an automated fashion and receive continuous feedback to improve the quality of the process and software. The goal of Continuous Delivery (CD) is to deliver new features to the customers and end-users as soon as possible. A strong foundation of CI and a good automated test suite with good coverage of the codebase is needed for CD to succeed.
  • Continuous Testing: The execution of tests repeatedly against a codebase. Testing provides the quality gates throughout the DevOps pipeline and increases confidence in the product. The success of Continuous Delivery and Continuous Deployment relies on Continuous Testing. At every stage of the DevOps pipeline, Continuous Testing ensures that what is being delivered through a stage is stable and good enough to progress to the next stage of the pipeline. Testing should be incorporated as much as possible into the DevOps pipeline.
  • Continuous Deployment: In Continuous Delivery, an application is automatically staged in preparation for production, but it must be manually deployed to production. Continuous Deployment adds automation to the process, making it (theoretically) possible for changes to go live within minutes after the code has been checked, merged into the main branch of the shared repository, and verified by the automated processes. One downside of Continuous Deployment is that it eliminates the safeguards that come with manual verifications.
  • Continuous monitoring: Enables the DevOps team to monitor the application constantly in the production environment to ensure that the software is performing at an optimal level and the environment is stable. Continuous Monitoring helps in diagnosing and fixing errors as soon as they are found.
  • Continuous Feedback, Improvement, and Innovation: An important part of DevOps is the focus on improvement. This means that feedback must be continuously gathered from all stakeholders affected by the process. This feedback is then analyzed by the team to determine areas for improvement and to identify opportunities for innovation. Gathering feedback and using it to inspire innovation to achieve overall improvement is a critical aspect of a successful DevOps implementation.

DevOps Testing

In the DevOps model, testing is performed continuously, early, often, and even after applications are in production.

The goal of most DevOps projects is to automate as many processes in their software delivery process as possible. It means Continuous Testing. Continuous Testing needs to be a key element of your testing strategy if you want to successfully implement a DevOps pipeline.

A successful DevOps testing strategy is one aimed at building, testing and releasing software faster and more frequently. A good approach is to create and automate your software delivery pipeline. One of the best practices for Continuous Testing is to automate as many tests as you can. It helps to eliminate most of the risks that come with CI and get feedback earlier on application quality.

Test Automation in DevOps

Test Automation is a set of scripts that will simulate the end-user interaction with the application. These scripts perform inputs and validate the expected outputs. Test Automation plays an important role in the DevOps pipeline. The automation starts with the unit test validating there are no issues introduced for every developer commit. Then we have an acceptance test that determines if the build can be installed in a test environment or not. Several other automated tests can be performed in test labs once everything passed successfully DevOps can perform the CD.

Reference: AT*SQA — DevOps Testing

Brenda Ruiz
Oscar Dominguez
Alberto Nuñez
Evelyne Franco
Marco Olivares
Guillermo M. Marchebout

--

--