DEV Community

Cover image for The universal healthy approach in life is to think before acting. Don’t automate till you define the problem clearly.
TestFort
TestFort

Posted on • Originally published at testfort.com

The universal healthy approach in life is to think before acting. Don’t automate till you define the problem clearly.

Today, we are talking with Taras Oleksyn, our head of AQA department, about the holistic approach to a career in automated QA, value of communication, AI testing, and leveraging all the side experience to become a top-tier IT expert.

Could you share your journey in the IT field so far, and what aspects of this work truly excite you?

Over the past ten years, I’ve had the opportunity to engage in every aspect of IT transformation. My work has ranged from simple tasks like creating scripts to more complex ones like building frameworks, assembling teams, streamlining processes, and providing consultancy. Most of my experience revolves around web UI, mobile API testing, utilizing mostly Java and Python programming languages.

I have sheer interest and fascination with this work — the fact that I can contribute towards problem-solving, make things more efficient, and ultimately help people. I find value in addressing issues and facilitating solutions.

Have you been wired towards working in the IT industry from the very beginning?

Before I transitioned into IT, I had a wide variety of experiences. My educational background is in economics, and I hold a PhD in it. I spent a year working as a university professor.

While the correlation isn’t direct, my PhD has certainly been instrumental in shaping my work ethic and approach. It taught me how to manage, process, and analyze information effectively, finding valuable patterns within it.

Engaging in research forced me to develop efficient work habits and a solid time management strategy, otherwise I would have been overwhelmed. So, in a sense, my academic journey has definitely contributed to my professional one.

Image description

So, in your experience, a diverse educational and field background makes a stronger IT professional?

Let’s look at it in a broader sense. When you start working in any industry and begin progressing, you have to learn specific skills. One crucial skill is time management. With a plethora of tasks, communications, and daily challenges, if you don’t have basic time management skills, you won’t be able to work effectively or efficiently.

The second aspect, which often goes unnoticed, is the importance of basic personal care. Getting proper sleep, maintaining physical activity, and ensuring good nutrition are foundational to productivity. I can attest to this from my own experience of managing two full-time jobs – one in regular employment and the other in freelance test automation – along with multiple hobbies like rock climbing, cycling, and tennis. If I didn’t take care of these basic personal requirements, I would neither have the energy nor the capacity to manage my time effectively.

Understanding human behavior is also essential. My teaching experience has undoubtedly been advantageous. Later in my career, I handled a project with a team of 25. I was involved from the start and built the team from just two engineers to 25. I handpicked each member, and my previous experience in communication and understanding human behavior was instrumental in managing this project effectively.

What are the key issues you face when managing a QA automation team?

Efficiency requires expertise in constructing a healthy and effective test automation team. Often, newcomers to test automation are excited to write code and construct overcomplicated automation tests without considering the bigger picture. They don’t realize that 100% or even 80% coverage is not necessary. The starting point should be analytics, which is often overlooked.

Many projects I’ve worked on have had this problem: too many automated tests, simply because the engineers enjoy creating them. They overlook the overall perspective and the business needs, focusing instead on the joy of building test suits and the financial reward. This approach ultimately leads to an unmanageable number of tests that add no value, simply because there are too many of them.

Another issue is the common assumption that test automation predominantly means web UI test automation. This type of automation should be used sparingly, with more emphasis on integration tests, API tests, and unit testing. However, as UI automation is often seen as more interesting, it tends to be overused, creating imbalance and inefficiency.

And which approach would you recommend instead?

The universal healthy approach in life is to think before acting. You need to clearly define the problem before initiating a project. If a project starts with a demand for a hundred tests, that’s not a proper formulation of the problem. Instead, start with an analysis to determine what makes sense to automate and what doesn’t.

It’s also important to be able to tell a client that not everything needs to be automated. But sometimes, clients insist on extensive automation because they’ve read about its efficiency. As a service provider, you face a choice: you can go along with their request and get paid, or you can refuse and risk them finding someone else who will do it.

Indeed, the issues with test automation are often not technical but irrational. Clients may insist on 100% automation, and service providers may comply to earn money. This can lead to over-engineering, bloated test suites, and ultimately inefficient automation that adds little value.

The current approach clearly needs improvement.

Can leveraging AI tools help with it?

AI tools offer a multitude of functionalities, from writing code and performing checks to integrating systems, which, when mastered, can greatly enhance an engineer’s skill set and value in the market.

What’s important to note, though, is that AI tools are just that — tools. They are there to augment our abilities, not to replace us. This is because the challenges we face in automation are often not merely technical but tied intrinsically to human processes. Be it improving workflows or optimizing approaches, the resolution of these issues requires human insight and ingenuity.

Senior engineers often receive tasks from people who may not have a crystal-clear idea of what they need. So, the human factor, our ability to navigate uncertainties and interpret ambiguous directives, is always crucial.

In essence, while AI tools, just like automation, can aid us, in the near future they won’t replace the human touch that’s essential in managing tasks and addressing challenges inherent to the field.

So, if you are just starting as a test automation engineer, rely on your critical thinking, improve your tech skills and deepen business processes understanding more than any tools.

What other insights would you offer to someone embarking on a career in this field?

For those beginning their journey in test automation, I’d advise focusing not only on the technical aspects, but also understanding the broader context of the projects they work on. It’s essential to recognize the value that your work brings to the project, not just in terms of technical contributions but in the broader scope.

If you’ve got a knack for coding, it can be a real game-changer in test automation. If you find yourself coding every chance you get and loving it, maybe it’s time to think about fully embracing the role of a developer. After all, there’s nothing like doing what you love, full-time!

We often overlook the broader business and process contexts in which we operate. To truly excel, it’s vital to understand the value of the tests we conduct, the reasons behind them, and their impact on the larger project. Coding, while a crucial part of our work, is simply a means to an end, a tool to deliver value.

At the same time, more companies seem to outsource automation testing. Is it a good choice when you think about the “diving into the process context” aspect?

https://j6v5t8r7.stackpathcdn.com/wp-content/uploads/2023/07/2-Taras-interview.png

Even though it takes QA experts time to dive into the side client’s product and process, outsourcing brings substantial benefits for clients. Chief among these is access to a vast talent pool of skilled, cost-effective engineers. This model also allows clients to circumvent the time-consuming and often complex hiring process. They can approach an outsourcing company with specific requirements, and the company will connect them with suitable resources. Simple as that.

However, joining an ongoing project as part of an outsourced team does present some challenges. The specifics vary greatly. If the quality and test automation processes were previously maintained by another outsourcing firm, we sometimes find that the quality is low, necessitating a complete overhaul.

Conversely, if local engineers previously handled the solution, the transition tends to be smoother. The task becomes about understanding the existing system and adapting our processes to it.

Is it important to involve the QA team early in the development process, or it doesn’t make much difference?

In some cases, the timing of QA involvement can greatly influence the overall project’s efficiency. If the QA team is of high quality, it makes sense to bring them onboard as soon as possible.

However, it is not a 100% rule. For instance, if a project is in its initial stages and the functionality is constantly changing, it wouldn’t make sense to start automation. The project has to reach a certain level of stability before it’s appropriate to begin.

I’ve observed that clients often lack trust in the QA team, which I believe is an area that needs improvement. I’d encourage clients to trust the expertise of their QA teams more and avoid enforcing their decisions on the team. After all, they hire these professionals to leverage their expertise in QA.

While there will always be situations where the client’s idea conflicts with the team’s recommendations, it’s crucial to have an open mind and consider the experts’ advice.

Top comments (0)