20+ years of advice to testers & QAs
Tags: testing, qa, automation, careerdevelopment
Published: 2023-08-07 00:20:04

_From my original contribution to [Starting Your Software Testing Career](https://leanpub.com/startinginsoftwaretesting) by_ @nicolalindgren

---

Don't fall into the trap of being in a perpetual cycle of wanting to do or wanting to be something, Instead be in a perpetual cycle of learning something new and applying it [to your career or life].

Throughout my 20+ year career as a QA Professional & hiring manager, I've heard countless times that a candidate wants to learn automation or be an automation engineer.

> I immediately ask, what are they doing to get there? And how long have they been on this journey? 

The majority of responses have been something like;
- I've been learning about [fill in a popular automation technology] cause that is what’s used at work.
- I’ve been learning it on & off for the past few years cause I don't get enough time at work.

As a result, hiring managers like myself, could hastily jump to one of the following conclusions:
1) This person really isn’t dedicated to what to their goal.
2) This person doesn't have the aptitude to do automation.
3) This person is not a fast learner.

Being in a perpetual cycle of wanting & not doing will leave any professional in a decelerated career path.

---

The approach I’ve used to aid those that want to learn automated testing and be successful, is that they need to learn the foundations of the language used in their automation framework of choice and beyond the basics of the technology they want to automate. 

For instance, you’re a QA professional wanting to write automated tests for a web application using a JavaScript framework and Selenium. 

I suggest the following:
1. Learn HTML & CSS to the point you can create a working stylized web site.
2. Learn the advanced foundations of the JavasScript language and apply them to your website.
3. Learn about the framework & the underlying technology that enabled the automation (i.e. Selenium Webdriver, WebdriverIO, PlayWrite, etc.).
4. Learn about the fundamentals of unit testing.
5. Put all the pieces together behind a solid goal of automating a single functional area of a feature before expanding beyond that scope.

---

When QA professionals hear this suggestion, they can be discouraged by the magnitude of knowledge and the time it could take to consume & apply the knowledge.

_But that is the point._

Advancing one's knowledge and career takes time & effort. None of it is just handed to a person. You need to make the time to up-skill.

There are those that will try to find a shortcut. That is ok as long as they are continuing to learn & applying the knowledge they’ve gained.

Now one might ask; How does the breakdown of these various areas of learning apply to both a QA professional’s current career and their goal of becoming an automation engineer?

Learning HTML & CSS gives the individual a foundation of how a website is put together. It will aid in the conversations with developers, UX designers and product managers around the customer experience. It will also help with the explanation of issues with a web experience to a developer and provide the foundational information that accelerates a potential fix.

Learning JavaScript for a web app helps a QA professional understand how interactions can happen on a web page. They will also learn how to troubleshoot and debug issues. This directly applies back to their current role by allowing them to give more detailed information to a developer when an issue is experienced.

Learning beyond the foundations of a programming language is key. Without this, one won’t know or understand how to structure their a clean code base. They won't fully understand why automation frameworks work or behave in a certain way. 

Beyond that, it will give a person an overall foundation behind programming in general. This aids in your conversations in your profession. Now your conversations with developers & technical leaders will shift. 

You’ll begin understanding how all the inner parts of the companies code bases works together and be able to ask technical questions that could drive deeper conversations & understanding for a better site reliability or user experience.

The key to learning about Unit Testing, is that not all automated tests from a QA organization should be End-to-End test scenarios. End-to-End tests do have their place within an automated test suite, but that’s not the end all be all.

Finally when you put all of the learnings together, the QA professional can leverage this knowledge in their daily job.

By doing this, it will lead to accelerated professional progression within your current company or the next company you take your learnings to.