How do we integrate software testing into the DevOps context? Does DevOps mean the end of testing? Let’s see it here!
Author: Luz Parra
DevOps is here to stay, and testing becomes a vital part of this new mindset by presenting changes and new challenges for software testing professionals. In this article, we will delve into the basic DevOps concepts and how software testing integrates into it.
What does DevOps mean? DevOps is the combination of cultural philosophies, practices, and tools that increase the ability of an organization to deliver applications and services at a higher velocity compared to teams not working in a DevOps context.
One of its main concepts is continuity. A DevOps team needs to do continuous planning, integrations, and deliveries, which means going into production continuously.
Content related: Why DevOps in two perspectives
How do we integrate software testing into the DevOps context? The most important thing is that at some point within the software testing, we stop being only testers to become consultants of the whole team, leaving aside the obsolete role consisting of just creating and executing test cases as isolated tasks.
This change of role implies the generation of several challenges:
1. Organizational change
To work with integrated teams, we propose to have a sponsor within the organization that pushes the change towards the DevOps mindset. This means that there must be someone who encourages the different teams (testing, development, operations, etc.) to work hard toward a level of maturity that will come with effort, time, and practice, to eventually become a self-managed team. But first, getting there implies an organizational change.
2. Mindset change
The testing team, same as the development and the operations teams, has to be committed to work in an integrated manner. Although we have different roles and responsibilities, all of us are a single team and the commitment of the integration has to be undisputed.
This might be interesting: The what, why, and how of a Testing Center of Excellence.
3. Process change
Stop working in a linear process to begin working in a continuous and collaborative way. This can be achieved by having a testing team with enough maturity and experience to propose a change of direction at the time of continuous integration.
4. Appropriate metrics implementation
It is very important to apply the correct metrics. Many metrics are important, such as the number of bugs found, the number of bugs per severity, etc., but we must learn to measure other things:
- How effective is our automated regression?
- What is the effectiveness of our automation by release?
- Are we finding the bugs we want to find?
- How many continuous builds have failed or succeeded?
We have to define criteria for failure or success. In addition to that, we can question through the use of new metrics.
Do not miss this: We are what we measure: metrics and software development.
5. New knowledge acquirement and skills development
From our point of view, this is the biggest challenge in the world of testing in the context of continuity and DevOps.
We need to adapt ourselves to continuous software deliveries and test executions. Because of this, testers must learn to work with cross skills. What do we mean by that? To set an example, the tester should know a little bit about performance, something about programming, and how to use an automation tool. However, one of the most important challenges is to keep up with the skills that a tester must have and be a person who learns and applies tools and concepts of testing.
What types of tests can be applied within the context of DevOps?
There are multiple testing processes in the DevOps context:
The main concept of all this is that we have to know that everything that CAN BE automated has to be automated. Does it all have to be automated? Not really. Not everything is automated, but automation becomes a very important aspect within the concept of DevOps.
Software testing is conceptual. This process within DevOps depends on the context of the organizations, and with the automation of everything that can be automated, the testers have even more time to do exploratory testing to find risky and tricky bugs. The critical spirit of exploratory testing has to remain as a main factor within the continuous context.
To sum up
To work in a DevOps context, we have to create a collaborative environment and also work as consultants, which require both social and soft skills. We need to be proactive, curious, and up to date with new testing technologies.
We must change the team mindset and the way of thinking, and this not only applies to the testers but to the rest of the team members as well. The implementation of DevOps practices does not represent the end of software testing but an evolution.
Content related: Testing in Scrum: 4 reasons why testers are needed from Day 1.
Comments? Contact us for more information. We’ll quickly get back to you with the information you need.