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?