Testers regularly ask, “Do I need to learn automation skills?”.
Let’s step back for a minute and put this another way, “Do I need to learn how to drive a car?”.
Well you could walk, or take the bus, or pay a taxi\Uber driver to drive you around. These are all valid choices. But there’s a big advantage in being able to drive, for times when driving is the best option.
So my answer is no, you don’t need to learn automation skills, but having those skills will let you make informed decisions about the most efficient way to approach each testing task, with a wider range of options available to you.
Consider for a moment, what has stopped you from learning hands-on automation skills before now?
Ignore the Fear
When testers ask me whether they’ll need to learn automation skills, there’s an implied reluctance or fear behind the question. Sometimes it’s a fear of being left behind in the job market, or of being replaced by testers with stronger technical skills. In a few cases the testers asking seemed reluctant to invest time in learning new skills unnecessarily. I have a lot more time for the first group of people, compared to the second group.
For the testers who ask this question, are you nervous, intimidated or overwhelmed when it comes to learning automation skills to help with software testing? For now, let’s pretend that you’re not. Imagine instead that you’re completely capable of writing an automation script (because you are). How can you get started?
Avoid Analysis Paralysis
There is so much information online that we’re presented with an overwhelming number of options and learning resources. I got stuck while deciding which programming language to learn (COBOL has gone out of fashion since my development days).
I had finally decided on Python – I can’t remember why now – and had completed the first few tutorials, when others convinced me I should be learning Java. Or C#, or Ruby… So I stopped doing the Python tutorials, and unfortunately it was a while before I decided to try again.
I’ve since learned that it simply doesn’t matter. My learning experience has driven my approach for this post. The key thing to remember is that once you learn the basics of an object-oriented programming language, and an automation tool, it gets much easier to learn the next one. They all have a lot in common.
To help you stop procrastinating, and to make sense of all the options out there, the rest of this post is very straightforward. My goal is to get testers to learn some automation, to complement their existing skill sets.
Take the First Step
Learn Java, using this website to get you started: http://www.tutorialspoint.com/java/index.htm
(The time you may be tempted to spend on researching the best website\tutorial to use could be spent learning Java instead. )
You know your own preferred learning style better than I do, I just have a few words of general advice.
- Start from the beginning.
- Follow the instructions to set up your computer, and try to overcome any perceived obstacles while you’re getting started.
i.e. if you get stuck, ask for help.
- You won’t need to memorise anything. Yes, the maximum “int” value is 2,147,483,647. And no, you won’t need to remember that number. Once you’ve read the course information, you’ll know where to find it later if you need it again.
- It’s okay if some things don’t make sense right away. “Float data type is a single-precision 32-bit IEEE 754 floating point”. I don’t understand most of that sentence, yet I can write automation scripts.
You don’t need to complete all of the lessons unless you want to. You’re not trying to become a developer, you need to know ‘just enough’ to be getting on with for now. The course material will still be there when you need to deepen your knowledge of Java, down the track.
There are no stupid questions. Anything you want to ask has probably already been asked and answered on http://stackoverflow.com/. If you can’t find an answer there please feel free to post your question. You’ll be doing a huge favour to plenty of other beginners like yourself, who will benefit from reading the responses in the future.
Take the Next Step
So, what’s next?
Pick a tool, any tool.. If your test team aren’t currently using any automation tools and you’re stuck for ideas, check out Ghost Inspector https://ghostinspector.com/. There’s a free trial and you can quickly automate some website checks. Ghost Inspector is like Selenium, but it’s hosted on the cloud with a pretty good GUI, and a record and playback feature, making it easy to get started with.
Start by using a non-production version of the website you’re currently testing, or use a sample website created specifically for learning to use automation tools. For example, http://phptravels.com/demo/.
The first test scripts you create will fall into all the traps inherent with using record and playback tools, and that’s okay! Because you’ll be automating, and you’ll be learning, and that’s an excellent start.
From here you’ll gain confidence to start\join a conversation about automation, you’ll have specific questions to ask, you’ll be able to research online independently, and continue to learn new automation skills.
It’s Okay to Fail
They say in Silicon Valley, “Fail fast, fail often”. The same applies here.
Learn the hard way by diving in, getting started, making mistakes, and improving as you go. The worst thing you could do is read every “Lesson learned in test automation” article on the internet before learning to use a single automation tool.
Start Right Now
Get started with an online Java course right now – http://www.tutorialspoint.com/java/index.htm.
If you prefer hands-on classroom-style learning, at Engel Consulting we have Introductory Java and Selenium courses available in Auckland, with more courses coming soon. There may be also local training providers in your area, or experienced testers willing to provide training on request.
Also worth a mention is Mike Talks’ blog post series on automation: http://testsheepnz.blogspot.co.nz/2016/06/automation-1-guide.html
July 27, 2016 at 1:13 AM
Agree with this, Automation has really helped our project catch issues way more efficiently than manual testing would have.
July 27, 2016 at 6:29 PM
Thanks for your feedback.
Here I didn’t really go into which is more efficient as there’s a lot of factors involved. You might find this white paper interesting: http://www.satisfice.com/articles/cdt-automation.pdf
July 27, 2016 at 4:28 PM
Good read. You also make a good point about the fear behind the question “Do I need to learn automation”.
I also realize that the motive behind of learning automation is to have a better salary job. While the reason is understandable, I think that motivation is not good one. Those guys do not understand why they need to learn automation or what problem the automation solves.
You give a sound advice here.
July 27, 2016 at 6:33 PM
I’d forgotten about testers chasing higher salaries through automation, thanks for bringing that up. I hope that once they start learning they can enjoy the journey as much as the destination.
July 27, 2016 at 7:41 PM
Hi Kim – That’s really a great article of your’s – In my opinion Every testing executive must have to learn automation testing as it is the most advanced and beneficial approach. it provides testing results more efficiently as well as reduce development time during the implementation new updates.
August 14, 2016 at 7:04 AM
Appreciate your thoughts behind the article, they are spot on.
I partially agree to your statement, Agreed that Automation brings efficiency but it is more important to understand under which circumstances it will be more efficient to use.
Also the first step to automation is always manual. With that said, i am not implying that manual is better, all I am saying is we need to have a proper rational before we take the steps ahead for automation to provide us the results (efficiency).Otherwise the cost of maintaining the automation scripts will override the benefits.
August 16, 2016 at 3:19 AM
As you said, do Tester’s need to learn “about” automation then the answer is yes. Yes from the standpoint of knowing what it is about, but not having to know in-depth how to code/program for it. You don’t have to get into a tool and/or scripting/programming language to understand the practices, methods and mechanics of Test Automation (or more precisely the automation of test execution). Too many people just jump in with a tool and don’t understand what all it takes to get to the point where you do start working with a tool. There is a lot of front-end work to be done even before one line of script code is written. There is a lot of social engineering and expectation management to be done before one line of script code is written.
If Tester’s get that knowledge first and understand it to the level so they can explain it to other people outside of the testing realm then they will be in good shape.
Now if they want to go to the next level and actually build the automation then they have a lot of technical learning to do, of which programming is a key part. And that is another discussion for another time.