As DevOps accelerates the deployment of code from the development to the production environments, this influences the execution of the software testing activity that should assess the quality of this code. How do we integrate software testing into DevOps? Does DevOps mean the end of testing? Luz Parra provides some answers these questions.
Author: Luz Parra, Hexacta, https://www.hexacta.com/
DevOps is here to stay and software 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, integration and delivery, which means going into production continuously.
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 creates 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, along with 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.
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.
5. New knowledge acquisition 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 delivery and test execution. Thus, software 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 all tasks 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.
Conclusion
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.
About the Author
Luz Parra works at Hexacta, where she continues her 10-year-long career as a software tester. Throughout her professional career, she’s had the opportunity to perform in several companies using different software development methodologies. As an Agile team member, she eagerly collaborates to the following of the established methodology, allowing for changes and process improvement. This article was originally published on https://www.hexacta.com/2018/10/08/devops-the-end-of-testing/ and is reproduced with permission from Hexacta.