Vitalii Koretskyi and Quality Assurance Best Practices
How did you decide to pursue a QA Automation Engineering career, and what aspect of your work are you most passionate about?
I have always been passionate about computer programming, so the end goal of getting into QA Automation was there from the start. I love developing software that tests other software, and it is also an awesome way to make the final project as efficient as possible.
Name the five most important lessons you’ve learnt throughout the years as a QA Automation Engineer.
- Bring value from day 1. In this field, it’s important that test automation works as a part of the process (preferably, in continuous integration). If you build test coverage first, adding it into the process some time later becomes a complex task. As a result, you have to support constantly changing products and fix reliability issues. Another disadvantage would be that other team members will not understand the benefits of your work. So, it’s your job to make test automation an essential part of the development process.
- Infrastructure is a key. Test automation truly brings value when project infrastructure is ready for it. Benefits of test automation that run manually as a part of regression testing are very limited.
- Everyone should use the same language. It would be very beneficial for all team members if test automation uses the same programming language and tools as the product development team.
- Number of test engineers must correlate with the number of software developers. Keeping tests up-to-date with only a single automation engineer when there’s a whole team of developers is impossible. So, you either need to set up an automation team, or you have to delegate part of test automation to developers.
- Always remember that you’re a part of the team. Building strong relationships with team members, explaining what you’re working on right now, and how your work helps everyone on the team are among the best practices in test automation.
What are the most common mistakes of new QAs?
It’s a common mistake for the beginner to focus on writing the code instead of bringing value to the team. Having an awesome test framework that is rarely used and is always in maintenance doesn’t help much. Instead, try to understand the team’s needs and how you can help.
Recently you co-wrote the article Technical Approaches and Frameworks for End-to-End Testing of Web Apps. Which testing framework is your personal favourite and why?
At the moment, I’m using Puppeteer and WebdriverIO in the projects I’m working on.
A few years ago, our team decided to start using Puppeteer which is a great tool when you are doing everything from scratch. If I had to choose now, I would prefer Playwright instead. However, at the moment of the project’s start, Playwright hasn’t been released yet.
I’m also using WebDriverIO, which gives great flexibility in supporting multiple browsers as well as in mobile testing. Another advantage of WebDriverIO is that it’s easy to use with Cucumber.
How do you improve your technical skills?
One of the best ways to improve technical skills is having some small product features completed by automation engineers, and then thoroughly reviewed by the development team. It also helps you to better understand the code style and apply it in test automation.
It’s always great when your pull requests are reviewed by developers. You could also have a look at the codebase of your product to see how various things are implemented there.
But, most importantly, everything mentioned above works only when you use the same programming language as the development team.
What were the most challenging projects you’ve worked on throughout your career?
In my experience, the most challenging ones are the situations where you either lack communication with colleagues or help from other teams, or where the environment is so unstable that you just cannot test it reliably.
How do you see the future of QA and what are the top trends at the moment?
In my opinion, the general trend for the software development industry is automation, and this applies to QA as well. There are so many tasks out there, but the resources for implementing those tasks are limited. Everyone’s striving to achieve more with less effort. The tools for this are being created and evolve each day. So, your main task would be keeping up to speed with new tool development.
As for the more specific trend, I would recommend the following: try to learn at least basic DevOps, its best practices and tools. It will help you tremendously when building infrastructure for test automation. You will definitely need to set up test environments and write the script that runs all of that. DevOps are a scarce resource nowadays, so test automation will likely be less of a priority for them. As a result, you might get stuck for a while if you can’t perform those tasks by yourself.
Share some of your best working from home tips and tricks for task and time management?
One of the best pieces of advice I can give (and not only in the context of working from home) is trying to be realistic when committing to any tasks. Set deadlines that you will be able to meet (and add some gap for the unexpected). Trust me, no one will be happy if you struggle to keep up with unrealistic goals.
The biggest challenges of working from home are distractions and switching contexts. Try to have an area at home that is only used when working. Also, having a separate computer for any personal activity helps tremendously.
What do you like most about your job at Transcenda?
I like the people I work with, specifically their attitudes, skills, and personalities.
Which Transcenda value resonates the most with you? Why?
I think having an ownership attitude with everything you do is critical. It is not only responsible and professional, but very efficient in terms of all imaginable resources out there. To build the future world, we need to be efficient in all aspects of our lives.