Roadmap to Test Automation – Part 1: Getting Started
"I am not saying that all QA engineers must know how to code. But if you're a manual tester attempting to break into test automation, your time may be better spent learning a programming language than learning the ins and outs of an automation tool."
The Manual Tester vs. The Automated Tester
I mentioned in my previous post Roadmap to Test Automation - Introduction that it's been a rocky road transitioning from a Manual Tester to a Test Automation Engineer.
I have spoken with dozens of technical recruiters looking for experienced Test Automation experts. Unfortunately for me, in many cases, the positions require a minimum of 8+ years of experience.
It's still puzzling to me, since, many of the software tools employers list in their job descriptions haven't even existed for so long.
When recruiters ask me what I prefer, "Manual or Automated Testing?" it makes me wonder why one would be more relevant than the other.
There seems to be this assumption that Automated Testing makes Manual Testing irrelevant.
In reality... manual testing is still relevant and it isn't going anywhere anytime soon.
Automated tests must first be completed or scripted manually in the first place before they can be automated.
In recent years, more open-source software testing tools have been released making it more affordable for smaller businesses to implement.
This may be one reason why there has been an increased demand for Test Automation experts.
Regardless of my relevance as a Manual Software Tester/ Software QA Analyst/Software Test Engineer I still had to find ways to maintain my relevance, with the ongoing surge in software tools.
So approximately beginning 2 years ago, I began researching some of the latest test automation tools.
Even though I had over 10 years of experience as a manual tester, my only alternative was to expand my skill set by teaching myself how to use the most widely used test automation tools.
“Software testers do not make software; they only make them better.”
What's Your Plan?
After months of wavering between all of the many new Software Tools, Programming Languages, and Development Methodologies, I realized, I needed a plan.
The best way for me to get a handle on what to study, learn, or focus on was to map out some steps and prioritize them so my path to becoming an automated tester was clearly defined.
Well, at least partially defined.
I came to the conclusion after completing some tutorials in Selenium and Appium that it would be more beneficial for me to study a programming language.
However, even at this point, I had already used Java, Python, and Ruby programming languages for writing test scripts in Selenium Web Driver and Appium for Mobile Apps.
Code or Do Not Code...There is No Try
The truth is, practicing with Test Automation Tools alone would not be enough to help me transition into a Test Automation role.
As much as I practiced and learned it was inevitable that I would need to build a stronger foundation in programming to stand out as more than just a manual tester.
I had to choose at least one programming language.
I am recommending that you also begin by choosing a programming language first, and focus on learning the core part of the language.
Learning a new programming language was a difficult commitment to make.
I believe it is essential to learn the core of any relevant programming language if you are a manual tester and want to transition into Test Automation Development.
In my case, after several months I began to focus on learning a new programming language, while I kept practicing test automation with web apps, web services, and mobile apps.
Learning to code is still an ongoing process for me, and it still a priority. In future posts, I will share more about what language I chose to learn and why.
Learning to code is also in Phase 1 of my Action Plan.
If you want some guidance transitioning into Test Automation, you should read more about the plan I used, because, it will help you organize your own action plan for learning test automation.
The one thing I wish I knew sooner might actually save you some time.
Finally, if you are a non-coding tester and want to continue to grow in your career, my suggestion is:
You must learn to code!
You can be a great tester if you have programming skills. You can also be a great tester if you have no programming skills at all. And, you can be a lousy tester with or without programming skills. A great tester will learn what skills she needs to continue to be great, in her own style.
Roadmap to Test Automation – Introduction
My journey towards Test Automation didn't begin with a roadmap.
As a "Manual" Software QA Tester for nearly 10 years my transition into Automated Software Testing was initially a lot more disorganized.
Imagine a 6-year-old child left in a toy store with permission to choose one shiny new toy to take home with them.
However, they have a one-minute countdown timer to decide what toy they can take home.
They might choose a toy that will hold their interest for a few hours or days. It might even be a toy that's popular with all of their friends. Or worse, they might choose a dud that ends up lost in the closet.
Likewise, choosing what software tools to use for learning test automation can be very overwhelming with the immense variety of applications, programming languages, and frameworks available.
Ok, that wasn't the best metaphor, but the point is...
With so many tools and methods used for Test Automation, it isn't really all that clear what options to choose or even where to begin.
Fortunately, you don't have to choose only one. You will, however, need to invest a significant amount of time on one tool to master it, before lunging for the next shiny object!
On the downside, you might spend your time playing with so many different tools that you never fully master any of them.
I don't want this to happen to you, it almost happened to me.
(Full Disclosure: It did happen to me.)
Where to Begin?
There is a plethora of programming languages, applications, strategies, frameworks, methodologies, and more to learn!
This is the state of technology that we are in today and it is important to know what your options are.
You want to only invest your time in learning skills that will help you become more marketable to potential employers.
Overall, Automation Technology has grown by leaps and bounds in the last 5 years with the proliferation of countless software apps and software tools.
Ten years ago many smaller software businesses were not willing to invest in developing an automation strategy, but now there are many more open-source alternatives, which makes it much easier for companies to begin implementing Testing Frameworks that are compatible with Agile Software Development, Continuous Integration/Continuous Delivery(CI/CD) and DevOps.
There are software tools not only for test automation but a variety of popular tools used for DevOps and Agile Methodology like Jira, Jenkins, Gradle, Docker, Git, and so much more!
Some of these software tools include features for bug tracking, project tracking, test management, and version control.
Figuring out where to begin, what to use, or even what area to focus on is the most puzzling part, likewise, when building a puzzle, once you've found the corner pieces you can start to build from there.
What's Your Job Title?
The continuously evolving Job Title and Job Description for a Software Tester position is usually jam packed with a multitude of responsibilities and requirements that blurs the line between software tester and software developer.
Just a few years ago, Job Boards for Software Testing roles most often listed Test Automation skills as a rarity but a plus to have for the most prominent "Manual" Software Testers.
Seemingly, the job posts for a skilled Software QA Tester/Analyst have practically disappeared and been replaced with demands for Software Test Engineers with 10 years of Test Automation experience.
Many of the current tools for Automation Testing havn't even been around that long and if so, it wasn't in general use by many Software Testers.
So Wait . . . Why Should You Learn Test Automation?
Undoubtedly, It was inevitable that Test Automation would rise to become the standard for businesses requiring Software Quality Assurance.
Because, with Test Automation the quality of software delivered, is improved and faster delivery results in customer satisfaction as well as reducing costs.
I could go on about the advantages of Test Automation, how it can minimize boring and repetitive tasks, increase test coverage, and optimize regression testing.
Despite the obvious advantages, I worked for many software companies that never implemented test automation and there are still many others who cannot implement test automation.
Certainly, a career as a "Manual" Software Tester shouldn't become obsolete as some might expect.
On the other hand, I feel that it is crucial for any Software Tester who wants to further his career must possess some level of test automation skills. However, it will require some programming skills.
Although there are many new test automation applications that promote Codeless Test Automation like Katalon, TestComplete, Perfecto, and others. There are still features that codeless test automation tools need to add or improve upon.
"Product teams began to look at testers to drive automation efforts. Testers had the testing mindset. They were the ones who felt the pain of regression tests the most. But many lacked the programming skills required, even if they possessed the desire."
But... Should You Learn To Code?
Absolutely!
I do have some programming experience from as far back as learning Basic in High School to Visual Basic and JavaScript in my Graduate Courses in Information Technology.
However, despite my motivation for learning I never intended to be a developer/programmer.
It wasn't until in recent years that I began to see the rise in job postings for automated testers and rarely manual testers.
So, I began taking courses in test automation. It took me a long time to realize that trying to transition into test automation would require more than just learning how to use the automation tools.
I had to learn how to code.
If you want to become an automated tester I recommend you learn how to code too!
What's Next?
In the following posts, beginning with Part One of my Roadmap to Test Automation, I will document some of the difficulties I've faced and how manual testers in the current market can begin to assemble their own action plan for becoming a test automation developer.