It's been a while since I began my test automation journey. However, I vividly remember discovering this world and seeing all the possibilities ahead of me. As a junior developer, my testing consisted of running the program once, giving it a cursory glance, and praying that nothing broke along the way. It felt tedious to go through everything. Discovering that I could write test scripts and have the system verify my work was mind-blowing to me, and since then, it's been an adventure of never-ending learning.
Although many years have passed, I can still remember how the light bulb clicked in my head to improve the quality of my applications with test automation. I can also feel how overwhelming everything felt. It wasn't easy to figure out where I could start and where I wanted to go. Based on online discussions and recent conversations with developers or testers interested in diving into the world of automated testing, I know it's a familiar feeling to many who are new to this world.
If you're just starting on the road toward test automation, you'll likely have questions like these:
- Which programming language should I learn for test automation?
- Which test framework should I use for my projects?
- How do I know which test cases I should automate?
These aren't the only questions that keep popping up repeatedly. The answers to these questions are limitless and depend on multiple factors, from your existing abilities to your current needs and wants. It's tough for anyone to answer these questions for you, and it may feel impossible to know where to begin on your own.
Thankfully, it is possible to forge a path forward even if you're starting from scratch. This article can help guide you to knowing which steps you need to take next. First, we'll begin by talking about why starting with Google and social media isn't a good idea to know where to focus. Later, we'll go through some tips to obtain a solid start to your test automation journey.
Beware of information overload
The first thing most developers and testers do when looking to get into test automation is to go online and begin searching everywhere. They do tons of searches on Google, check out what other testers are discussing on Twitter, and ask around on Reddit and other test-related forums. We do this because we have all the information we could ask for at our fingertips.
Seeking information is a good thing for the most part. You're probably reading this article because you found it in one of the places I mentioned above. However, this constant exploration is both a blessing and a curse. Having what you need available with few barriers to access is fantastic. However, there's too much information out there, and it's impossible to sort out the useful from the not-so-useful.
One of the problems with looking up information online is that it's easy to get overwhelmed. Our brains overflow from all the articles, videos, and tweet-sized thoughts you can find. This deluge of material leads to our brains not having the total capacity to parse and process this data, and making decisions about what's suitable for us at the moment and what's not is almost impossible to accomplish.
Another common issue is that, more often than not, you'll only find bits and pieces of the topics you're looking for spread across dozens of websites. That means it's all up to you to assemble what you learn into a coherent plan for moving forward on your test automation path. If you're lucky, you can piece the information in good-enough order. Still, it's a time-consuming process that leaves you second-guessing whether you have enough usable info to do something.
The proliferation of complexity
Scattered information isn't the only problem for beginners. For example, let's say you're a beginner with test automation and want to check out where to begin your journey. You'll probably load your preferred search engine in a browser and type in "test automation for beginners." One of the first things that show up in your search results is an article containing this image near the very beginning:
It's terrific that someone made an exhaustive guide meant to help people interested in test automation. But showing this to a beginner when they're not even sure where the starting line is will likely deter them from moving forward. It's enough to make anyone's head spin when they're attempting to find their first steps.
The issue is made worse by the article only superficially covering most of the topics in this image, which is understandable since there's so much to explain that it could easily cover the contents of a full-fledged book. But that's also part of the problem. How can you expect a true beginner to grasp dozens of concepts from the start?
I'm not picking on this article by itself since it's far from the only content like this online. Every day, I see images and messages published on LinkedIn, Reddit, and other places online with a similar frame of thinking. It gives the impression that you need to learn a ton of things to become an effective automation tester, and if you don't, you won't ever become one. If I had stumbled upon these articles or social media posts at the start of my career, I would have thought I couldn't be an automation tester and not even attempted to get started.
I learned over time that most people wouldn't need half the knowledge that others say they need in development or testing. That's not to say you don't need some learning to get started. You still have to get some of the basics down to grow your career. Like most new skills in life, there will be a learning curve when you pick up something new. However, it isn't as steep as the Internet seems to make it.
Tips for the beginning of your test automation journey
So how can you wade through all the online data and decide what's best for you and your desire to get going with test automation? Every situation is different, but here are a few tips that will give you the best chance at success and get you moving forward.
Find an exciting target to aim for
Everyone has their personal reasons for choosing to get into test automation. Whether for professional reasons or personal desire, there's no right or wrong reason if it's something you want to do. But if you're looking to get into test automation because it's something you feel you have to do, as opposed to something you want to do, you'll likely struggle with staying motivated.
For example, plenty of testers want to get into automation solely because they think that manual testing is dying (spoiler alert: it's not). The problem with this approach is that it lacks a solid reason for sticking with the learning process when things get rough. These testers will give up and turn back at the first sign of struggle. That's not to say that they're making a mistake—other forms of QA, including manual testing, are still viable career paths. However, it can be incredibly frustrating and potentially deter them from trying other new things for their professional growth.
Another reason to find a target to aim towards is to narrow down your choices at the start. The topic of test automation is broad, spanning everything from websites to desktop and mobile apps to hardware devices and beyond. Beginning with a tighter focus to get a solid grasp of the basics with minimal distractions will give you a better chance at success. After that, you'll have a smoother transition to another area of focus if you need or want.
One thing at a time, then stack more on top
One of the places I see developers and testers new to the process of test automation struggle is trying to do too many things at once. As mentioned and seen in the image shared earlier in this article, there's a lot one can discover in this field. At best, trying multiple things at once will be a slow slog. At worst, it'll lead to wasted time without learning anything because it's too much to handle. The ideal way to tackle a broad topic like automated testing is by taking things one step at a time. Once you have your targets in mind on what you want to learn, find the first thing you can do and focus on that.
For instance, let's say you want to learn how to write test scripts for API testing. Here's a high-level overview of the steps you can take if you need to start at the top: You'll need to understand what an API is and how it works. Next, you'll need to learn the basics of programming if you don't know much about coding. From there, you can focus on a specific programming language. With a chosen programming language, you can check out some API testing tools or libraries that use the programming language you learned and get some practice with it. Finally, you can write your first automated test cases against a real API with all the knowledge you stacked up.
This example is a simplified view, but it can serve as an overview of how to tackle a vast topic like test automation. You can't expect to go from wanting to "I want to learn API testing" to implementing tests on a real API in a single step. Almost every skill you'll need builds on top of another, and it'll be easier to get unstuck if you need help by focusing on one skill at a time as needed.
Use commonly-used tools to start
These days, we have plenty of libraries, frameworks, and software to help us with test automation. There's never been a better time for our work for developers and testers, thanks to all the valuable tools we can use. The number of choices can lead to analysis paralysis, however. It doesn't help that each of these tools will likely have its fair share of advocates and detractors, making it impossible to know which ones are good to start with.
One way to overcome the inertia of figuring out what to use is to find out what are the standard tools and industry trends for your desired outcomes. An excellent place to start is by visiting job boards and reading the descriptions for testing and QA positions to see which tools employers use in their organizations. You'll eventually begin seeing which tools most organizations actively use, which gives you a clearer idea of what most testers are expected to use nowadays. You can use this information to guide your decisions about which area of automation you'd like to focus on.
You can also check out blogs, online forums, and social media to see what other testers discuss. You can also find newsletters that curate the best articles around the topic of software testing. These options will also help you spot popular trends that can help you choose your path. However, remember that what's perfect for someone doesn't mean it'll also be perfect for you. Before jumping into anything, weigh other people's opinions with your knowledge and gut feeling, and make informed decisions instead of choosing something based on popularity or other purposes.
If you're working as a tester, involve your team in the process
If you're already working as a tester, you have a huge advantage since you'll have plenty of resources at your disposal. Your area of work might already have stable testing processes in place that can provide a direct view of how to move towards your goals. It can also offer invaluable hands-on experience in most organizations. Your teammates can especially be a vital source of knowledge and guidance in your journey.
Ask your development or QA teams about which tools and processes they're currently using for their work or what they plan to use if they're in the process of establishing an automation approach. Also, you shouldn't limit these questions to coding or tools. Other areas involved in the development process can provide help on the way. For example, product managers have a deep knowledge of the projects you work on and can point out places where testing is a high priority. DevOps teams can show you testing environments or how they're leveraging existing tools in your projects. In short, don't limit your interactions with testers because there's plenty of gold across your team.
A surprising thing I've observed with newer testers and developers is that they don't take advantage of these resources because they feel like they're bothering others. This can't be further from the truth. In most workplaces, your teammates are more than willing to help you. As long as you demonstrate interest and show that you've at least done some studying and research on your own, most people will take the time to provide a bit of guidance. But if you don't ask, you'll never receive.
You're not going to get it right for a while, and that's okay
Learning any new skill in life takes plenty of time and patience. No one will expect you to grasp everything you need for test automation instantly, and you shouldn't expect that from yourself. You'll struggle a bit and mess things up from time to time. It'll sometimes feel frustrating, and you'll spend what seems like an eternity trying to move forward. But this process should be expected when you're starting.
Show me a tester who says they haven't made a colossal mess at some point, and I'll show you someone who isn't telling the truth. No one is immune to making a few mistakes in test automation. I've had tons of them throughout my career. Unfortunately, perfectionism can rear its ugly head and misguide someone beginning to learn automation to feel like they're not up to the task.
The best way around these limiting beliefs is to know you'll mess up, embrace these failures and learn as much as possible from them. Some of my most valuable lessons in test automation happened after I screwed up—I saw what I did wrong and was able to make things better next time. Of course, you shouldn't intentionally make mistakes or plow ahead without proper precautions. If you don't take setbacks too seriously and extract whatever good you can from these situations, you'll become a test automation tester in no time.
Test automation has tons of places you can discover, each branching out into multiple directions. For someone wanting to walk this path, it can seem like an impossible journey to choose which way to go. The Internet often makes the whole approach feel much more complex than it is due to the massive amount of information one can find online.
You can take a few steps to make the early part of the process much smoother. Make your goals attractive to yourself and simplify them as much as possible. Focus on one thing at a time and avoid putting too much on your plate. Find what most testers use nowadays, including your team if you're working somewhere with others ahead of you. Finally, accept that something will inevitably go wrong in your path, and learn the lessons those mistakes bring.
Becoming an automation tester isn't always straightforward, especially at the very start. But with some time, curiosity, patience, and resiliency, I can guarantee you'll reach your goals much faster than you ever expected.
What tactics and techniques have you used to help your test automation studies? Share your tips with other developers and testers in the comments section!