QAOps Practices with Dmitry Gorbunov
On October 5th, Devexperts held an online dxTechTalk focused on the topics of Automation and Operations. Dmitry Gorbunov, QA Automation Team Lead, presented a talk on QAOps practices while Kirill Kozlov, Software Engineer, spoke about the parallel execution of desktop tests.
You can now watch the recording of the QAOps practices presentation.
As a follow-up to the meetup, we took the opportunity to explore the topic of QAOps and had a quick interview with Dmitry!
What is the difference in specializations – QA Automation Engineer – QAOps – Software Development Engineer in Test?
First and foremost: QAOps is a framework, not a specialization. QAOps is a set of practices that helps test engineers (including automation engineers and SDETs) improve software delivery processes. I believe QAOps may eventually grow into a specialization as DevOps did. Right now, it’s a methodology.
While old-school test automation can perfectly live even in waterfall-like processes, QAOps-driven automation aims to integrate testing practices throughout the whole delivery pipeline.
QAOps is a major practice within the popular shift-left paradigm, an approach in which testing is performed earlier in the lifecycle. As we’re moving test practices to early stages, we have to focus on:
- test decomposition for multiple layers
- test and environment scalability
- environment readiness, including virtualization, initialization and mocking
- test parallelism, safety and performance
- effective test data management, both static and dynamic
- scalable and meaningful reporting
In a modern world, these areas might not always be a direct responsibility of a classic test engineer, but rather interdisciplinary tasks, each with a unique skill set required.
|Classic Test Engineer
|QAOps Test Engineer
|Designs and implements extensive functional scenarios
|Designs concise yet effective test suites for all SDLC stages
|Works within QA tasks
|Goes beyond classic QA tasks
|Creates test coverage
|Makes sure testing is done as early, fast and stable as possible
How many people do you need for this practice?
It all depends on the project structure and needs. We have a project team of 9 people, out of which 3 are constantly involved in different kinds of QAOps activities, such as improving data management tools, designing execution management solutions, etc.
In the future, I believe every good engineer will need to have some QAOps skills – such as the ability to deploy a required version using an orchestration tool or quickly integrate a no-code solution to automate the critical routine.
How to understand that the time has come for the company to implement this practice?
I believe this is something that grows organically. Shifting left and migrating to faster delivery models constantly sets newer, higher standards for test stability and performance. To avoid turning into a bottleneck and continue providing meaningful results, testing shall transform and start solving these new challenges.
How can you professionally grow to the QAOps level?
Again, it’s not a level, but a way of organizing your work and paying attention to specific routines. To be effective when the time comes, you may want to spend some time with:
- scripting languages (such as Unix shell or Python)
- virtualization and containerization technologies (such as docker or k8s)
- CI/CD practices and real-world tools
In other words, think beyond classic test design. Assume you have a test suite. Maybe it’s not even your test suite. How can you make it run 100 times an hour, in 10 parallel threads, each in its own sandbox? What if you have 100 test suites written by somebody else, how can you run them effectively and get only meaningful results?
Do we offer this expertise to our customers?
Absolutely. All of our QAOps expertise is used in the field, daily!