In this blog, I will point out the importance of collaboration of QA and development teams in achieving common objectives in a modern DevOps culture.
Ever since the release of the Agile Manifesto (2001), which is primarily based on iterative development, the software development landscape changed and stirred the teams into working smarter and more efficient.
DevOps is a natural extension of the agile software development approach that has emerged from businesses' necessity to respond more quickly to market changes. It is a combination of cultural philosophies, practices, and tools to continuously deliver business value. DevOps cultural movement changes the perspective in the design, architecture, and operation of software, taking the view that "the software does not exist separately from the people who use it and the people who create it."
As a way of thinking and smart way of working and organizing, DevOps is successfully integrated into Nebb's culture of sustainable work practices. DevOps is larger than the development and operations teams, it is an intersection of programming, testing, operations, and the business.
Testing is a constant activity starting from the beginning of the project, where the whole team contributes to covering various aspects of quality since it is the leading and crucial aspect of the development process.
Our Quality Assurance (QA) team is an integral part of the smart DevOps concept, where QA activities are performed alongside development and operations. The whole team collaborates around shared business goals, a common set of agile processes, and shared software delivery tools.
How DevOps facilitates the QA process and improves my skills?
DevOps encourages automation, allowing me to expand my skills and scope of testing into the automation area.
Understanding the product's business logic and its specifications from an automation perspective enables me to identify areas of the functionality that can or cannot be automated and define the test strategy. Automated tests are the best way to increase coverage. They help me reduce the time to run repetitive and regression tests from days to hours and can be reused multiple times for any frequent code change.
Automating the proper tests by a wise selection of tools that meets the requirements of our QA team lead to a faster feedback cycle and frequent releases.
Also, the QA testing process can be automated further within DevOps and its key components of Continuous Integration (CI) - of minor code changes, Continuous Testing (CT) - for each step of the development process and Continuous Delivery (CD) - of working software. Thus, a smart selection of automated tests can be integrated into the already implemented setup of building pipelines and run automatically on every build across different environments. The results are integrated back into the pipeline, enabling the whole team to have immediate feedback for the current build.
On the one hand, being a part of this approach as a QA means constantly upgrading my skills. I am familiar with the concept of building pipelines and the usage of the integration tools. I also understand the branching strategy and release management and I have access to different environments and control over the test execution. All of this allows me to visualize and have an overview of the whole software development process.
On the other hand, automation means more time for exploratory testing, which adds additional value to the testing process. It is based on our experience, intuition and creativity, generating new ideas and scenarios. In this way of "thinking out of the box", the QA team gives a unique perspective on the entire system from an external point of view.
Continuous learning of new techniques, tools and ideas is part of my growth as a QA in Nebb where we nurture continuous improvement culture. All team members contribute to constantly improving the working processes, the product, and their skills. And excellent communication and coordination of distinct roles, as a unique team, is fundamental for success.