With the development and operations team
working together, the question is where the testing team fits in DevOps.
Although it is not being involved in the definition or conversation, testing is
the most important aspect in the transition to DevOps.
The testing team is more aware of the flow
of information from development to production. They are responsible for the
process of moving the application from development environments, testing and
delivering them into production. They understand the infrastructure, its
working and what requires to be done to get them deployed. Hence, DevOps
advocates on engaging testing early and often.
One of the main reasons for the emergence
of DevOps is to overcome the communication gap and poor collaboration resulting
from a psychological divide between the development, operations and the testing
teams. Practicing continuous testing is the first step in a DevOps journey. Continuous Testing(CT) sets
into motion, a mechanism of continuous feedback, that drives the software
delivery life cycle forward. If the feedback requires to stop, then the
involved processes are halted immediately and corrective measures are taken.
Establishing
an environment for CT involves the following steps:
-
Establish
a single authentic source: This can be done by
shifting the automation test scripts to an enterprise version control tool. The
automated code base should be stored in a version control repository.
-
Enable a centralized
execution and reporting process by integrating the automation suite with the
deployment tool.
-
Enable a process of faster
feedback by classifying the automation suite in multiple type of tests. All
these tests will be run as a part of the build deployment process. In case any
of them fail, the deployment process is halted and corrective measures are
taken. These tests are of the following types:
-
Health check
-
Smoke Test
-
Full Regression
-
Intelligent Regression
Automated testing is more efficient than
manual testing. But it faces the following challenges
-
Test built on commercial
tools are limited by license constraints. These test face scalability
challenges and slow down over time.
-
Different tools are
required for automating different artifacts of
the application.
-
Regression tests require
building long running tests.
Testing teams play an important role in
overcoming these challenges. They orchestrate an infrastructure for continuous
testing and create a loop for early feedback with the development and
operations. By implementing continuous testing, build deployments an be
automated which further helps to achieve a full cycle of continuous
integration, continuous delivery and continuous deployment. Introducing
intelligence to the automated tests and migrating them to a more open source
tool further enhances the effectiveness
of DevOps. An intelligent test automation framework can turn test scenarios on
and off based on the changes made in the application.
Conclusion
Once the testing team in involved, they get
embedded into the Development and Operations. This prepares an environment of
experimentation for continuous quality testing.
This finally leads to a combined focus on the development process with continuous testing for continuous
delivery.

