DevOps Model: The Role of QA Redefined
You might have come across DevOps so often that it may seem to penetrate each and every organization slightly related to IT. But the reality is different, as always. The point is that this model is far more complicated to apply compared to Agile and other popular forms of SDLC.
Simply because the role of each department undergoes significant changes…
What is DevOps?
Although many definitions are available, we think of DevOps as the space for keeping the software deployable regardless of the new features implemented. Most importantly, DevOps means that everyone — from Jr Analyst to developer, QA engineer, project manager, owner — takes equal responsibility and makes a contribution to the product success.
The fundamental benefit of the model is a clear segmentation of roles that follows the principles of Continuous Integration & delivery (CI/CD).*
*Off-top for those unaware: CI/CD is a concept that enables effective merge of newly developed features into the main codebase. It fulfills the integration aspect by running different tests at each sprint stage and provides delivery aspect by deploying the committed code into the software available for the end-user.
Back to the roles. Although separated, DevOps is a strategy that embeds each just in time and keeps their activity during the whole product growth.
- Developers & Designers (Devs) build the software logic following user stories, create features that work and prove that via unit tests.
- Quality engineers (QEs) helps maintain software quality, review the features, write acceptance/end-to-end tests, and approve the software correspondence to the requirements.
- Product owners (POs) & Business Analysts (BAs) cover the aspect of business value for the end-user, coming up with the user stories. Often, they have to coordinate and analyze the acceptance test results to check their relevance and implement changes in user story when necessary.
- Operations (Ops) take care of the software released. They make sure it is available for the users. Thus, they work on the code logistics design to move developers` code to a production environment where people access the website/app.
DevOps & QA
In a pure DevOps world, QA is an enabler, not a gatekeeper. The model is all about blurring the boundaries between the roles of QA and development in project delivery. Meaning the part of software quality assurance goes in line with development and operations, creating a back-up line for correct product functioning.
These are the areas to work on when implementing QA into DevOps environment:
- Merging the teams. One of the critical aspects to consider is integrating the team of quality assurance with other technical specialists involved in the project. In such a way, QA becomes a strong enabler for ensuring product quality during the whole development lifecycle. Besides, such team structure allows detecting tangible aspects of the quality required from the final product.
- Metrics. Clear quality metrics is of absolute importance in DevOps. The core idea is to find the defects at the earliest stages and prevent serious hurdles on the way. At the same time, this helps to make the team focused on the requirements, stay tuned to any changes within. Besides, QA engineers keep an eye on important details which could have been missed due to miscommunication. The task of QA engineers here is to actively implement the requirements into the process and guide the dev team in the right direction.
- QA + Dev. This is all about communicating the goals of each team. The ever-debated topic of getting QA and developers cooperate acquires more significance in DevOps culture. Project managers know how complicated it might be to make QA specialists and programmers think in line. Yet DevOps requires constant quality maintenance, which is, checking the software for potential errors. This is the place where continuous integration and continuous testing evolve.
- QA + Ops. Since operations make the product available for the end-user, their cooperation with QA is also of prior importance. The user-oriented approach of QA engineers implies the software flow desirable and comfortable for people, justifying the construction efforts of the whole team.
- Parallel tests. When working under DevOps, companies ensure the QA team runs the tests continuously. However, there is a need to explore the ways QA pros perform the tests without extending the software delivery time. The IT-experts and authors at DZone claim the QA engineers have to fully standardize the testing environment, automate the process of test implementation. What`s more, the effective parallel testing strategy requires enough resources, and this is also a point for the management board to think over before the process starts. Parallel check-ups of the software help QA engineers run test cases under different conditions and deliver more reliable results.
Why Continuous Testing Matters
Continuous testing (CT) & delivery are the other two milestones of the DevOps culture. Test early and test often — that`s how the key principle of Continuous testing sounds. It implies the use of Agile-related methods to build a QA strategy. Although DevOps highly encourages automating the whole testing process, QA engineers still play an important role in providing testing solutions into the development. When effectively implemented, CT helps to detect risks, address them, and enhance product quality. That`s a relatively new concept in the area of tech, yet QA engineers achieve CT process via automated test cases and support each development stage with instant feedback.
Notably, DevOps is an environment of highly coordinated cross-team functioning in the development chain. In a perfect scenario, continuous testing & delivery, a developer configures deployments; and while a QA engineer configures automated test cases, developers add them to the QA repository. As such, the team takes collective responsibility for the software quality, together adheres to the deadlines.
The Roles Acquired
With the DevOps emphasis on automation approach, many think that traditional software quality assurance might be called into question. The transformed relations of development and operation stuff could be one of the reasons for that. There is also an opinion that independent software testing service providers with the QA engineers performing their prior function are slowly becoming outdated.
What if we say QA engineers have still plenty of work to do in DevOps environment? The truth is that reinvented role of operations (Ops) in the product development has a powerful impact on the role QA engineer must be ready to acquire.
Software QA as a consultant.
Seems like QA experts won`t be working the same role anymore. For DevOps, a QA engineer would have to change their mindset and start helping businesses to grow instead of providing traditional testing services. Luckily, our experience shows most of the software testers can make this shift. QA consulting is one of the most effective shifts we`ve taken recently. Just because a structured audit provides an unbiased review of the software, and reveals potential changes, suggested ways to improve the project.
So instead of running tests and crafting the documentation, QA pros will have to transition to software quality expert consulting and help developers learn how to make their approach more quality-oriented.
Software QA as a strategist.
There always been an opportunity to embed QA expertise directly to development via SCRUM. When the QA part is involved from the very beginning of each sprint, product growth takes a totally different path.
To account for a crucial role of testing expertise and responsibility in the DevOps model, QA engineers should look for the new ways to add value in the software lifecycle. This means making high-level strategic decisions related to testing and software quality assurance. The point is that a QA engineer thinks what end-users are doing, how they interact with the software. This is what a QA strategy often lacks. QA engineers might consult the team how to mimic user-experience, what kind of code data is required to meet users` needs.
No more “passed/failed.”
Final: Any Challenges?
The info above should have answered this question 🙂 One of the major hurdles DevOps model implies is the process itself. A lot of tech specialists used to their responsibilities will have to redefine their roles. Moreover, to combine several teams takes efforts, requires high-standard management, resources. That`s why there are still companies resistant to DevOps culture.
It is a relatively young method, though. If to approach it with open mind and implement it step-by-step, you`ll manage to bring the best parts together into a greater whole.