I want to learn test automation and I don't know where to start

@scarlxrd shared the following and @katepaulk , @fullsnacktester and @baysha shared incredible advice.

Originally sent in 🐥 New to Testing
scarlxrd

ok im pretty confused now, i want to learn automation testing, but everything is sort of all over the place...
i hear some places saying learn Javascript well alone, and then learn automation, but on the other side seeing courses and others which just recommend learning automation with java straight away so im kinda lost, where do i learn and whats the method... and what do i learn.. i know its general but if i can get some help...

is theres any recommendations for courses for it or generally for testing ?

katepaulk

Using automation in testing is a bit like any other kind of testing: there is no "one true path". This would be why you see a lot of apparently conflicting advice.

Mostly the general advice leans towards avoiding tests that depend on each other (because if test 1 fails, all the tests that follow fail too), avoiding tests that depend on external resources, keeping tests as close to the metal as possible (that is, if you can test an API and the UI it feeds, do more testing with the API).

That said, if you've never done any programming before, pick a language with a lot of users and free tooling (which is most of them), go through some of the online courses - many of them also free - to learn the basics of the language and the basics of breaking a problem down into small steps that can be handled by code, and see where that takes you. If you don't enjoy building code, there's a high chance you'll find test automation frustrating (because you're writing code to make other code do things).

fullsnacktester

I agree with what @katepaulk said above.

And I'll add:

  1. It depends why you want to learn automation, curiousity? Need in your current job? Future career opportunities?
  2. It depends on your current level of skill in writing code. If you know nothing, definitely learn coding fundamentals first.
  3. The resources on Test Automation University are free, and the courses I've taken are excellent.
  4. Once you know some basics, practice, a lot. And if you have the option, try it out at work, and pair with someone with experience.
  5. If you have MoT pro, the series 99m workshops on Automation in Testing are well worth it.
baysha

Agree with all of the above and I'll add one thing: If you're intending to start using automation in your current job, pick a language your devs speak. And ask them for help. A LOT. Pair with them on a regular basis, several times a week.
In fact, ask them for help even if you're not immediately intending to use your learning at your job. Most people like to help.

Word of caution: not everybody is good at explaining things. Don't get discouraged when you don't understand something right away - it's just because they're not explaining it right. Ask other people to explain it to you, do some googling, ask ChatGPT.

What other advice could you add to this thread? If you had to start over again, where would you start on your test automation journey? And if you’ve just started, what are you working on and how are you getting on?

5 Likes

thanks, im generally new to tesing but know the "manual fundamentals " just dont master it yet, so im trying to go over this stuff as a collective, ive got a big headache from it and so much confusion that ive decided to take a break for a couple of days to realize what my path actually is instead of going all over the place and creating a mess in my head, ill read everything thanks

4 Likes

I’ve been learning to “do automation” in a practical sense for the past couple of years but my experience has been very hap hazard & I don’t feel I’ve had a proper run at it until now. Looking back at what I have learned & my struggles with it after the event, I feel that half of this battle of “learning automation” (for want of a better phrase) is about learning to learn & learning to fail.

Once you start understanding how you learn best, have a clear idea of what your needs are & then become very comfortable with failure! You can then progress to establishing where your support lies (websites, courses, books, colleagues, non-colleagues) & start to build on your existing knowledge.

Hope that makes sense!

6 Likes

Many automation tool vendors provide free training on their platforms (and trial access to their tools). Some of these are “no code” and are a great way for you to learn automation without first needing to learn programming.

2 Likes

It’s a weighty task, but I recommend looking through the outcomes of our Automation Curriculum and ask yourself which outcomes can’t I achieve in the Curriculum. That will at least give you direction on learning materials:

5 Likes

I totally agree with this. I found that while learning I have retained more information where my test has failed, rather than where it passed. :slight_smile:

1 Like

I would add some general lessons:

  • Automation is basically development. You need to learn how to code, how to program.
  • An automation program for testing is often a very specific type of program:
    • The automation you create is a program which interacts with another program.
    • Especial at UI automation with fiddly interfache (Yes, the UI you automate is an interface for your automation program … made for humans)

Both are demanding topics and skills.
Knowing to differentiate that helps me to better look for what to learn and better assessing and solving problems.

2 Likes

ive decided to go on just learning javascript well in general, and afterwards only learn how to do automation, does it make sense?

p.s

should i learn both java and javascript?

2 Likes

I start with the last:
Start with one, when you do not need other one now. That is enough for beginning. You will learn many basics at that one which you can transfer to other languages.
Aside similar names Java und JavaScript have no overlap. They are two different programming languages.
JavaScript (and its “children” like TypeScript) is for the browser/web.
Java is a classic programming language for server and desktop application (also mobile).

You maybe want to inform yourself about the “dialects” of JavaScript like TypeScript and maybe start with one of those. Pure JavaScript is the hardest start imo.
You will JavaScipt too when you start with one of them as they are based on it.

Just a brief explanation:
JavaScript is what is running in the browser but hard to develop as it lacks many feature and is just slowly adding new ones (because those have to be implemented in every browser on its own).
e.g. TypeScript is what many people develop in which then gets transpiled (not compiled) into JavaScript. It is converting one programming language into another.

Absolutely. :+1:
At least for the first weeks / months I would stay with learning development as skill, an IDE as tool and the programming language itself.

My advice is to have a concrete idea of program / script you want to develop and start with that. You do not have to finish, the learning is the important part. I found it easier to have a concrete vision which I target my skills/learning to than to “in the wild” trying to learn programming.
e.g. try a calculator or text parser instead of “just” learning if-else, switch-case, etc.

2 Likes

Aside from jumping straight into a full-blown programming course (which is great but to some people it might be overwhelming), other good ways to get you started with Javascript might be:

  • Automating things with Postman. It uses Javascript code - at first you can just use code snippets provided within the Postman app and then gradually expand into doing more complicated stuff. Postman has several online challenges that can guide you through this

  • Play in the browser console. Evil Tester has a free e-book on this (it’s called Hacking Javascript) and I heard it’s good.

You can do fun stuff with Javascript even when you don’t know much of it yet :slight_smile: plus, this little “automation in testing” scripting knowledge is actually very useful for a tester even when you’re not doing actual “test automation” (yet).

That is not to say that learning development skills, programming concepts, Git, IDE etc. isn’t important for test automation. It totally is. But you can pick up on that gradually while already having a lot of fun with the language, which might make your learning seem like less of a chore.

4 Likes

got the pdf, sounds really interesting thanks

1 Like