A Tester’s Career Path: From Student To Middle Manager

My name is Alexander Buyko, and in this article, I want to tell you about my journey from student – tester to Head of Quality Assurance Department in Cinimex. I will also share some useful links to the information, which really helped me to become who I am today.

How it all started…

I took an interest in computers and everything IT when I was a kid. I was 5 years old, when my parents bought their first Win98 PC. Needless to say, my first computer experience was through games. My parents used to bring me games from work recorded on good old floppy disks, and later I became a regular at CD stores.

But it wasn’t just about games. I was curious to see what else a PC could do, because the desktop screen was packed with compelling icons. At some point, whatever question I’d ask my parents about the computer, the answer would be: “You’ll have to figure it out on your own”. That pushed me towards studying IT systems. I just had too many “What if…?” questions.

The second thing that pushed me to becoming a tester were the movies about programmers, including some really great ones such as Johnny Mnemonic, Hackers, Takedown, Who am I and other movies for hackers.

Finally, the third thing was online games. When playing against other people, I was pretty mediocre. At school, losing made me feel quite miserable, so at some point I discovered cheat-forums, where you could find info on vulnerabilities. That was when I started looking for loopholes in games. When I actually found one, I’d share my discovery with their support team, and from time to time I even got bonuses for that.

University…

            On my last year in high school, I realized that the career of a hacker was too risky, but I still wanted to do something related to IT. And so I chose the “Fundamental Computer Science and IT” program at the People’s Friendship University of Russia.

           Some people say that university is a waste of time, and the knowledge you get there is hardly applicable in practice. But, from my experience, this is not true for IT. On the first few years, students are taught maths disciplines, which are instrumental to their future knowledge. For example, Combination theory becomes the foundation for building test cases and test data (more on this here). Graph theory can help you put together test cases for multi-transition systems and track coverage of different cases (example). Logic enables you to set correct conditions. Tproger has a great article about that.

Obviously, Programming Basics teach you how to write a code and understand if it works as wanted, and the Basics of Administration taught me how to work with the command console and not be scared of it.

The university taught me a few important lessons:

·         Understanding the nature of algorithms is more important than knowing any programming language.

·         You need to put your knowledge into practice, even when it isn’t required.

·         Sometimes, curiosity can be unexpectedly helpful. While procrastinating on hacker blogs you can come across a piece of knowledge, which you may eventually put into practice (or maybe it will help you pass an exam).

·         Foreign languages can open great opportunities for you. Most of the best professional courses you can find these days are in English.

My first job…

On my third year in the Uni, I decided it was time to find a job. It can be tricky for a student, especially if your idea of a job is little work and good pay. In my case, I turned to freelance platforms, where you could make rather humble money doing some undemanding work such as typing (through which I mastered blind typing) or UI website testing.

            There is a popular belief that testing is the easiest thing in IT, and there really is nothing difficult about it. Partially, it is true, because this is an inter-disciplinary job, which includes analytics (writing test cases), development (automated testing) and system administration (testing of delivery rollout). However, for the same reason a good tester, let alone QA specialist (about the difference between tester, QC and QA), needs to be really knowledgeable.

First real job and career ladder…

            For a while, I was fine with being a freelancer, but I realized that this format lacked stability, and at times, it was donkey work. So as soon as I received my bachelor’s degree and signed up for a Master’s, I started to think about getting a full-time job. And one day, I hadn’t even prepared my CV yet, my phone rang, and the person on the other end of the line asked me if I knew anything about testing. This phone call came as a shock to me, I even started to think I was being watched (otherwise, how would they know?!). But then it turned out that a fellow student had done a job interview at Cinimex, where he had recommended me as a potential candidate.

            I was invited for a job interview, which I passed, but it wasn’t easy. My biggest problem was formal terms and the theory of testing, as the things I’d read a few days before the interview ended up all mixed up in my head. My advice for the beginners is to look into the theory of testing. But despite it all, I got my first official job, where my title was Junior Quality Assurance specialist, and that was how I got into big IT. Our company offers custom integration solution development and works on dozens of projects at a time. Before I got that job, I actually knew very little about “integration solutions” and how you integrate software.

           The first two weeks, all I did was try and learn from all the sources I could find, luckily, they were plenty. And all that time I was basically on my own. On one hand, it was great in terms of learning. There was so much new information, my head felt like it was going to explode. But, on the other hand, I had so many questions, and there was no one I could ask them. Fortunately, that situation didn’t last long, and soon enough I got assigned to my first project. I was real lucky, our job was to develop an integration platform for a TOP-5 Russian bank. The project team was over 20 people. There were 8 testers alone, headed by a team lead, and I learnt a lot from him. We had to test front-end web applications and dozens of complex back-end services. Also, the project featured auto tests, and even us, new guys, were involved in their development, under strict control from the test lead.

In a very short time, I had to remember and learn a lot:

·         how to work in Jira,

·         how to manage paperwork and cooperate in Confluence

·         how to validate XML by XSD and WSDL, and find data by XPath

·         how to send HTTP requests in JSON format using SoapUI and Postman

·         how to find data in PostgreSQL using SQL

·         how to work with in-house Cinimex Test Tool

·         what is queue manager

·         what is CI/CD and how do you configure a pipeline in Jenkins

·         what is Git and why do we need git-flow

·        how regular expressions can save you entire days of your life (for example, when you need to replace something in a large body of data)

·         and a lot more…

Basically, it was a mixed bag of different things that a good specialist needs to know and to be able to do. But I didn’t just devour all that information, I would start putting all that into practice. It was taking me 5 to 10 days to test one module (service). After testing two services, I realized that I was doing a lot of boring and monotonous tasks (create files with similar names, check mappings, write test cases with alternating words). Using Python, something I had learnt in the university, in two days I wrote a script, which allowed to reduce time of test completion to 2-3 days. A tester just needed to draft a list of scenarios in Excel, prepare test data and launch a script, which generated auto tests. Then you’d launch the generated tests and get busy with bug tracking.

At some point, my work came to the attention of the head of our department, who proposed to do an internal workshop on my “invention”. It was an amazing feeling when my senior colleagues (from other projects) started to reach out to me seeking my advice on such solutions.

My first six months on the first project went in a flash, even though I did a lot of extra hours, gaining a priceless experience (and compensation for overtime). Miraculously, the new job didn’t affect my academic performance in the university. After the project reached the product environment stage, our team was downsized, and I was kept as a test lead to support the solution implemented.

Further growth…

Our company does performance review twice a year. After a routine performance review, I was promoted to a Quality Assurance Specialist (middle level). With the promotion came a bunch of new projects, and there was a time, when I was engaged in 4 completely different projects, where I had to do different kinds of testing: UI tests, API tests, database query tests and load tests.

At the same time, I was preparing for foundation level ISTQB certification (my advice for all beginner testers – study certification materials).

Sometime later, they started asking me to estimate test times on new projects, and soon enough, I was entrusted with testing projects from scratch. I was ready to be part of any activity within the department and beyond, because I could clearly see that a pro-active approach always pays off. For instance, there was an internal contest, where we had to write auto tests, which could be implemented with one click on any machine, without additional configuration. The solution just offered itself, but of course, I needed to use docker (which I’d heard a lot about). After long nights of hard work, I won. The prize was a bottle of Scottish whisky from our boss (speaking of motivation!) and a promotion to QA Automation Engineer.

Another year went by, in which I took part in 6 more projects, where I was able to polish some new skills crucial for Senior level specialist, such as:

·        testing methodologies and processes

·        auto-testing architecture design

·        quality metrics design

·        time management

·        team leadership

·         new employee training

After I finished writing my master’s thesis paper, I suddenly had a lot more free time on my hands, which I dedicated to work. My pro-active attitude didn’t go unnoticed, and our head of department promoted me to Senior QA specialist and started to get me involved in the department’s tasks, including headhunting and technical interviews with applicants. As time went by, I had more and more responsibilities, essentially, I became deputy head of department. After another six months, I was put in charge of employee performance review, and I was going to go on my first business trip… it happened right before lockdown was announced. While I was away, I got the news that the head of the department had been headhunted by a very big company, so he would soon be leaving Cinimex (his career ladder in IT looked like “tester → analyst → project manager → head of department”, but that is quite a different story).

I was recommended for the now vacant head of the department job, and the handover of tasks happened while we were all working from home. That was a difficult month for me, but I was able to get a grasp of the job, make all important contacts and even take part in the approval of several promotions within the department. After a 3-month probation period, I was officially appointed as head of Quality Assurance department, which has been my job to this day.

As a conclusion…

If you are interested in testing as a career, I recommend you to have a look at the following articles:

https://tproger.ru/blogs/how-to-become-a-qa-engineer/

https://tproger.ru/articles/how-to-become-tester/

   

Origin: Tproger
Next publication
Challenges As Business Growth Points
14 January 2021 | Publication