- Views: 13
- Report Article
- Articles
- Computers
- Software
Quality Assurance in DevOps.
Posted: Oct 31, 2017
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.
Michael works for Cigniti Technologies, which is the world's first Independent Software Testing Company to be appraised at CMMI-SVC Level 5, and an ISO 9001:2008 & ISO 27001:2013 certified organization.