Even though organizations are looking for ways to speed up their software development process by implementing DevOps methodologies, there are some implications to this approach. In an agile environment, individuals and QA teams work closely to ensure releasing and updating software through the process rather than deploying an entire application altogether and at once. However, one thing that remains common in both the waterfall approach and DevOps is the defect management tools. They are capable of adapting any testing approach. The purpose of these tools is to ensure that a software product meets all quality requirements and meets delivery deadlines successfully.
How Does QA Work in DevOps?
DevOps appears to be at the center of the QA and development, and operations teams. On one hand, QA works with developers to push more tests into the CI process. These tests should have lesser human intervention and can generate their test data. While on the other hand, QA works with operations to collaborate on monitoring tools, and continuously run smoke tests in production. In the meanwhile, operations are developing scripts for backup and restoration of production systems, etc.
Why DevOps Does Not Need QA?
DevOps revolves around continuous integration (CI) and continuous delivery (CD) approaches. Developers use various continuous integration tools to integrate code into a shared repository multiple times and DevOps uses automation to determine the quality. It is not possible to have any human intervention if the team wants to run a CD, which ensures that any version of a batch of code in the repository can be released at any time. The traditional QA cannot work in a complete CI/CD environment. In the traditional waterfall approach, the responsibility of QA belonged to QA. Whereas, things have changed today. The developers own the responsibility rather than a separate entity within the organization. They use several defect management tools such as BUGtrack, JIRA, and GitHub, etc. to report software bugs and defects. So by the end of the process, the existence of QA in between developers and operations staff cannot perform CI and CD seamlessly. Thus, DevOps does not need QA in a pure DevOps environment.
Conclusion
Besides the above discussion on whether QA is required or not in a certain development methodology, the need for testing a software application can never end. However, different approaches to software testing aim at achieving quality products faster than before. Thus we can never assume that testing or the need for QA does not exist. While we can see the rising importance of QA and their expertise, it is becoming a question for organizations as to which approach suits best their business operations and how they can make their software testing and defect management processes more efficient. The debate around the topic is still prevalent in the industry but without any doubt, the job of software testers never seems to be redundant.