Reading:
A Tester’s Journey - Learning Automation

A Tester’s Journey - Learning Automation

Uncover the inspiring journey of transitioning from a curious novice to a seasoned software tester, mastering automation and teamwork along the way.

Becoming a software tester

My passion for software testing started back in the early '90s when I was a child, with my first computer, the legendary Amstrad 6128 CPC. I remember I wanted to rip open the computer monitor and see what’s inside. This was my first-time exploratory testing. When I was out of university, I had no idea what testing really was. 

I still remember my first interview in one of the most famous companies in the world (with a 3-letter logo). I rejected a position because I thought, “Software Testing? What is it? No, thanks.” The next month I got my first job as a software tester in a different company.

Since then, I have worked as a software tester. To be more precise, I have been working as a professional software tester for 15 years. I have tried during these years to learn something new every day. However, I have to mention that the journey from being a junior tester, primarily focused on exploratory testing, to someone who can set up a test automation framework from scratch was long.

Teamwork and collaboration are essential

In Greece, back in the late 2000s, software testing was not so popular. It was hard to find information sources if you wanted to learn a new testing technique or an automation tool. This was an issue because, as testers, we all should improve our work continuously. A lesson that I learned is that teamwork and collaboration are essential. 

I recall the day when a software developer told me about cross-site scripting (XSS) attacks. 

I injected a script into the login form of a web-page, and magically, the page crashed! It was enlightening to see it. When I went back home, I stayed up all night trying to crash all the pages with XSS attacks. I found so many bugs that the next day I received recognition from my manager for doing good work. 

Becoming an automation tester

My first attempt to use automation tools was with the Selenium plug-in with Firefox. Many people ask why Firefox and not Chrome? The answer is that Chrome did not exist when the Selenium plugin was created. So my first tests were recorded tests using record and playback automation, without coding at all. I remember creating the scripts and then editing them to handle more scenarios. This was my first encounter with coding, primarily involving simple tasks such as tweaking keywords and names to align with my requirements. I started automating my daily testing tasks to make my work easier. Seeing how automation skills could help me sparked my interest, and I wanted to learn more about it. 

Subsequently, I had the opportunity to work with Watir (Web Application Testing in Ruby) at a small branch of a UK company in Greece. I was in a team with front-end developers who taught me a lot about JavaScript and the DOM of the websites.They gave me useful pieces of advice. It was there that I created my first scripts. This team was truly exceptional. Now, many of its members have risen to become managers, leaders, and principal engineers across different companies. I'm deeply grateful to each one of them for the invaluable lessons I've learned.

However, in my current company, I am enhancing my automation skills. I started by using QTP (Quick Test Professional) with VBScript and then moved on to Selenium with Java. I've been tasked with setting up automation frameworks for various projects. I've traveled to places like Luxembourg for Eurostat, Brussels for the Commission, and Finland for the European Chemical Agency, setting up Selenium frameworks with Java each time. With each project, the framework became more robust and efficient. Now that I am a Cypress Ambassador, I have developed a versatile skill set that allows me to transition between Typescript / Javascript frameworks and Java-based frameworks easily. In addition to mastering automation skills, I've also learned about performance testing. 

At first, it was tough to understand how to test and optimize system performance under different loads. But with practice and help from colleagues, I got better. I remember a project where we faced performance issues. We worked hard to fix them by balancing loads and optimizing databases. It was tough, but it taught me a lot.

Now, I feel confident in my ability to handle performance testing for important projects. This experience showed me the importance of teamwork and determination in overcoming challenges. So my first piece of advice is as a software tester, you have to dare to ask questions, try to find a mentor that can inspire you, ask for feedback and help.

If at first you don’t succeed, be a continuous learner! 

My second piece of advice is that you should not worry about failures, and believe me in the beginning you probably would have a lot. The first time that I set up an automation framework, my code was just ugly, what you would call spaghetti code. One memorable failure from my early career involves an attempt to practice with JMeter, a tool I hadn't used before. Naively, I added Google's site and set it to receive 100,000 hits. Little did I realize, being a junior software tester, that this would actually send 100,000 requests to Google. The consequence? Google promptly banned my company's site. The CEO's email asking, 'Who is this Petros?' swiftly followed. While it might sound amusing in hindsight, it was a serious lesson at the time

During an interview 13 years ago with a major UK broadcasting company, I faced a setback. The interviewer, by chance, a Greek Testing Leader, asked me two questions about Selenium, which I didn't know much about back then. She ended the interview immediately. But that rejection fueled my determination. I said to myself, "Prove them wrong", and I did it. Try to learn from your failures and mistakes, and gain experience so you can be better in the future.

Collaboration and continuous learning are key

I've refined my automation skills through diverse missions and projects for European organizations. With each project, my framework has evolved and grown more robust. A key aspect of my approach is actively engaging in discussions with developers, carefully scrutinizing their code and delving into the nuances of Object-Oriented Programming. This process demands countless hours of dedicated effort to ensure the quality of the code. Additionally, I actively seek opportunities to expand my knowledge by studying projects on GitHub and participating in online webinars to enhance my automation skills further. 

Also, I've had discussions about technical issues with renowned developers who created many of the frameworks we commonly use, such as Jenkins and Selenium. The experience gained from asking questions to these experts is invaluable. I vividly remember occasions like having dinner in Ohio, US with Angie Jones, or meeting Simon Stewart and Kohsuke Kawaguchi in Athens, Greece. It's an experience beyond words. Therefore, my advice is simple: dive in, write code, seek guidance, and explore the best solutions available. 

Find your community 

In the first years of my career as a junior tester, I always had in my mind how I can improve my skills. I kept asking why there is not a community or a support network of people in Greece that can help you and encourage you regarding software testing?

The years have passed, and one day I said to myself that I couldn’t sit back. I had to do something about it. I found out about the Ministry of Testing at the Selenium Conference in London in 2016. When I arrived at the venue, I saw the banner of the Ministry of

Testing. After some short talks with Heather Reid, I found myself longing to make more and more people in Greece aware of this community. 

The decision to run the local meetup was taken. Now there is a Greek community where we all share knowledge and experience to teach and learn about software testing. If I have a question, I go to the Slack channel and ask.

My third piece of advice is the following. Try to find your testing community. Go to meetups. Community is all about people. Meetups are about members of the community rooting for each other, learning together, searching for opportunities, and helping each other find them. This is the biggest advice that anybody can give you. 85 to 90% of life is just showing up. Show up. If you show up, there's a chance something could happen.

Greek testing communities 

Here are some links of Greek testing communities:

Learn automation

Petros Plakogiannis's profile
Petros Plakogiannis

Test Team Lead

Petros Plakogiannis lives in Greece. He has graduated from the University of Piraeus and the Technological Educational Institute of Crete. He has been working professionally as a software tester since 2009, with a strong focus on automated testing using various tools like QTP, Selenium, Protractor, Cypress, etc. He also has significant experience in white box testing, application testing (desktop, web, and mobile), and security testing. He travels a lot and supports customers onsite by providing information regarding automation testing. He is also a Cypress Ambassador and the main organizer of the Ministry of Testing Athens meetups, and he is very active in the testing community

Comments
Explore MoT
Managing Distributed QA Teams: Strategies for Success
In an era where remote teams have become the norm, mastering the art of managing hybrid and distributed QA teams is more crucial than ever
MoT Intermediate Certificate in Test Automation
Elevate to senior test automation roles with mastery in automated checks, insightful reporting, and framework maintenance
This Week in Testing
Debrief the week in Testing via a community radio show hosted by Simon Tomes and members of the community