"Knowledge is never superfluous", believes our colleague, Pavel Vysotski, Junior Software Test Automation Engineer. His inspiring story of the transition from Java to .NET automation is a perfect example of how the re-skill program opens new opportunities and widens the choice of projects.
How did you get into IT, and why did you opt for testing?
– Before transitioning to IT, I worked in wholesale trade for fifteen years, selling computer equipment and components. I was an individual entrepreneur for two years, and then I was the head of my own firm for three and a half years. Eventually, I got tired of making contracts, purchasing, selling, and delivering, as well as the constant stress of it all. I wanted a job where I could have peace of mind and challenging tasks and opportunities for further development at the same time. I thought IT might be just the right field. I liked programming in Pascal when I was at school, so when I took a Java development course, there was nothing incomprehensible or frightening. I finished the course and set out to conquer the IT industry. I sent out my CV and went to several interviews; the result, however, was all too familiar to novice specialists: I got a lot of assurances that they would consider my candidacy and contact me later. In the end, my friend recommended contacting an EPAM recruiter on LinkedIn; I took my chances and wrote to her. I knew she was looking for automation engineers, but I could not imagine our communication with her would be so effective.
She immediately sent me a test task and clarified my experience in automation. I admitted right away that I was a Java developer and never came across testing in practice, but I am ready to figure it out. I performed well and completed the task within the deadline. As a result, I got an invitation for the next round of interviews for the Junior Test Automation engineer position.
5 days after the interview, I received an offer to start working on an internal project. At that time, I didn’t understand what an internal project meant, and I was a little confused: did they hire me after all or not? In May 2021, my career at EPAM began. Onboarding took about two weeks then a mentor worked with me for some time to help me adapt. He gave tasks and checked how I coped with them without interfering: he let me find answers on my own and helped if I asked. After about a month and a half of working together, he wished me good luck. He believed that I was ready, and I lived up to his expectations.
How would you describe the profession of a Test Automation engineer?
– Test Automation engineers write code that imitates the actions of users and checks the product against the expected result.
Manual and automated testing are intersecting areas of work. When a project grows, and new features are added, the previous steps need to be repeated, and it often becomes a hell of a job for a manual tester. Automation engineers make this process easier by writing and incorporating autotests into the CI / CD. Autotests run testing automatically and allow you to see if the functionality passed the test, what errors occurred and what needs further analysis before making changes in the code.
What do your everyday tasks involve?
It starts with a brief daily meeting (daily for short), where we define the tasks we have done and plan to do and any blockers we have. I open Jira after the call and choose a test case based on its priority. I am free to take whichever case if there are no hot cases.
I open the test case at hand and scrutinize it. Sometimes the test case already has a bug; then, it’s better to test everything manually first, rather than spend time writing code and eventually run into inconsistencies. If everything is in order, I start writing code. Depending on the task's complexity, the time I spend on it can range from half an hour to a day or a week. After I finish, I submit a pull request or merge request (depending on the service), and then other automation team members check the code and leave comments. Usually, there is a discussion in the comments, and I make modifications based on that. Then I push the modified code, and if no conflicts occur, I merge it into the main branch. If there are conflicts, I fix them and merge the code again.
In addition to these tasks, I help write the framework and its structure and participate in the code review of other colleagues.
At what point did you transition from Java testing to .NET?
I joined the internal retraining program in October 2022. I planned to pass the assessment for a middle specialist but did not have time to do it before the end of the current project, and new projects were looking for A2+ candidates. I didn’t waste time on the bench either: I took several professional courses and improved my English.
The resource manager suggested I go to the Test Automation as a Service (TAaaS) portal. There I got acquainted with crowdtesting and began taking on tasks that required Java automation. My cooperation with TAaaS lasted about six months until the manager told me some good news: there were new projects underway, and they were looking for test automation engineers. But there was a catch: they required C# instead of Java. He also mentioned the option of retraining in C # automation to work with the .NET framework.
I had a week to decide. At first, I hesitated, weighed the pros and cons. Then I thought: "Come on! It is a new language, new experience, new technologies". Next time I will be interviewed for a project, the managers will look at my skills and say: "Who is this guy? We need him on our team immediately!"
"Anyway, you lose nothing", my manager said, and I couldn't argue. Knowledge is never superfluous. In just a week and a half, I completed the Re-skill .NET program and started working on the current project.
What did your training involve?
– During the first two days of training, I was utterly bewildered. I couldn’t do any of the tasks because I had never encountered the Visual Studio development environment and didn't even know how to run a project and output Hello World. A surprised mentor who thought I would need his assistance at more difficult stages wrote to me then. Together we figured everything out, and later when I was already going full steam with my learning and sent pull requests without ceasing, he would say jokingly: 'Whoa, take it easy, let me check the previous tasks.' The project urgently needed a .NET Test Automation engineer to build testing processes from scratch. I had to work harder, but with the mentor’s help, I finished the program ahead the schedule. Although Java and C# are different languages, my previous experience in automation made it easier to retrain. The flexibility of the C# language, which I consider to be its advantage over Java, also aided in learning. When I had a question, I googled it thinking: 'This is how I, say, structured the sorting procedure in Java. How would I go about it in C#?'
What challenges do you face at work? How do you deal with them?
My biggest challenge is a new development environment. Even though I figured out how to use it, I am still not accustomed to how some functions are implemented. We also have the important task of systematizing the framework, which requires a lot of time and effort. And yet another challenge we face, perhaps, not as significant, but curious: we have been coming up with a name for one method for a month but have not come to the final version.
Whatever the situation, I always sense the team's support; they are ready to cheer you up with a joke, join in finding a solution to a complicated task, and share their experience.
How do you keep a work-life balance?
I manage to keep my home life and work separated to a great extent because I come to the office almost every workday. In the evenings I walk around the city, go swimming at the pool or play sports, and meet with friends. My hobbies also help me calm down and relax; I enjoy playing the guitar, reading, and watching movies. And, of course, our team’s excellent time management and discipline are major contributing factors: we evenly distribute all tasks and complete them on time.
What would you like to tell those who are just starting out in testing?
First, don't be afraid to try new things. Once, colleagues from Manual QA asked me whether it was worthwhile for them to learn automation if they had never written code before. I said, 'You could always enroll in a testing automation course. Then you’ll have options to compare and consider.' Discipline is also vital. If you've made a decision, stick to it. You can't reach your goal if you don't know where you're going.