DevOps can be considered as the next
evolution of Agile. This organizational method is being adopted by many
companies in order to facilitate automated software development. DevOps
provides a structure that enables continuous delivery and continuous deployment
of a software application. Quality can be said to be built into DevOps.
Inability to provide high quality software implies the failure in DevOps
implementation.
In DevOps, infrastructure is the code.
Traditionally, there was a clear difference between development and operation.
A product was developed, deployed into the testing environment, if a problem was
found, it was fixed else it was deployed in the production system. But as the
line blurs between development and operation, as suggested by the very name
‘DevOps’, here the development environment itself becomes a part of the
product.
Role
of QA in DevOps
Quality Assurance
in DevOps is about preventing defects, not detecting them. QA in DevOps has the
visibility and directive for pushing code out when it is working and rolling it
back when it is not working. QA teams here are assigned with a task of
preventing defects from occurring at all.
-
QA in DevOps identifies
the defect in the product as well as the development process and accordingly
recommend changes wherever required.
-
QA influences both the
processes of development and operations in order to maintain quality. It tries
to improve predictability and repeatability.
Test automation is clearly more preferable
over manual processes in DevOps. But there are
certain challenges in automated testing, which need to be overcome.
-
Tests that are built over
commercial tools slow down over time and face scalability challenges, more
often from licensing issues. Migrating tests into more open source tools can
enhance the effectiveness of a DevOps practice.
-
The business perspective over regression issues
influences the development teams to build long-running tests. Hence, subsets of
total regression tests need to be carved out in order to accelerate test runs.
DevOps puts into practice the theory of
Continuous Testing. Its core philosophy is to test every change made to the application
as soon as possible. Non-functional tests such as performance testing and
security testing also need to be included in this process. In order to
effectively use all the available resources and be able to run load tests on
demand without wasting time and resources, building a cloud infrastructure is a
good option.
Conclusion
DevOps practices a very powerful set of
principles which improves the communication between the development and the
operational team. It helps them to share their knowledge, experience and skills
and deliver quality applications ensuring success. In DevOps, testing and
quality assurance are addressed throughout the entire lifecycle of the software
application. Here, quality is built from
the beginning.

No comments:
Post a Comment