30 Days of Automation in Testing Day 17: Advice For People Getting Started

Day 17 of 30 Days of Automation in Testing poses the challenge:

What advice would you give to someone looking to get started with automation in testing?

For me that advice would be:
You don’t need to know how to code to get started. A solid understanding of why or what you might automate is more useful than knowing how to code. Knowing how to code is the last step in my opinion.
I would then suggest they check out this course from @friendlytester and @mwinteringham

2 Likes

My piece of advice, in no particular order:

  1. Persevere. What seems to look like something impossible to master, keep trying. Once it “clicks” you will never unlearn (like riding a bike…) :biking_man:
  2. Ask. Don’t be afraid to ask help and advice from team members, colleagues, on-line communities. They all had to learn once and probably did the same :nerd_face:
  3. Search. There’s tons of information out there on the nets. Use it to your advantage :computer:
  4. Start small. Use an iterative (agile) approach to your learning. Set small task -> implement that -> demonstrate -> get feedback -> define next task -> etc. :chart_with_upwards_trend:
2 Likes

Best possible advice I can give as someone “self-taught” is:

  1. Always be curious - coding skills are great and all, but never accept that you know everything. Keep learning new things and asking the question, "how do I do ".
  2. Always be learning - never accept that you are good at just 1 test framework or language. Be open to try a new language or new way of doing things.
  3. Take notes - not just on how things work, but what you did in terms of solving the problem. Use confluence or a spreadsheet and keep a library of reusable code, or solutions to problems you had. This will have long-term benefits.
  4. Do As Devs Do - and by that I mean learn how to be a part of code reviews and the integration process. If you code in their language, you may be able to learn more and ask the kind of questions / test in a way that adds more value to your role on the team.
  5. Advocate for automation - if your QA team or company does not have an automation process, or your project could benefit from this, be a strong advocate for implementing this type of a solution. Work with your team and propose a viable solution that can benefit the project development lifecycle.

And once you get to a strong level of confidence in your skillset, pass on what you have learned! Be prepared to give a presentation on your findings, or be ready to mentor others who may be interested in learning.

SkĂĄl

2 Likes

It’s not a dichotomy of manual OR automation . . . it’s a gradient, and to be strong in automation, you have to have solid manual test skills.

I don’t think bootcamp/crash-courses/etc to become Selenium/UI automators are any good, and are rather short sighted. Many of the candidates that go that way end up living up to Maslow’s hammer (“if all you have is a hammer, everything looks like a nail”), rather than automation being a tool in their testing toolbox. I was just at a python meetup last night where someone wanted to read a CSV file and write one of the columns to another CSV file. Because of the bootcamp this person had gone to, they were trying to all of this using pandas dataframes, rather than what should have been two simple for loops, reading one file and using the values from that to read/write the second file. In this case, the person never really learned python, but just a very focused/limited amount of knowledge around pandas (e.g. they were confused about differences between strings and numeric values).

My advice whenever anyone asks this question is to learn to program/script, but do it with real world projects. Automate the little things you’re doing every day - install/uninstall of a build, database setup/teardown, generation of mock data files, modifying config files, etc. This will likely be batch scripts or shell scripts to start. Figure out how to string together several of these tasks.

Eventually you start pushing up against the limitations of command-line scripting, at which point you can start using a scripting language. Python seems to be the lingua franca these days for tying things together, and it’s got the advantage of having a REPL as well as Jupyter. Re-write all the stuff you wrote in batch or shell as python scripts.

While doing all these things, you should be learning to problem solve - figure out how to search the internet, Stack Overflow, etc, to answer questions (and more importantly, avoid the XY problem/identify the question you really want to ask).

Next steps will vary depending upon what kind of testing you do. If you’re mainly doing UI testing, then clearly Selenium. API testing means learning how to use requests or similar. Mobile testing means learning a mobile test framework.

Remember, none of this is going to happen overnight. Build solid foundational skills that ensure your know how to learn. Your goal shouldn’t be to become an expert at anything, but to build enough context that if you have to switch from one programming language to another or to a new test framework, it’s not the end of the world. Yes there’ll be a learning curve, but you’ll figure it out because you understand variables, data structures, control flow, conditionals, etc. And most importantly, you’ll have figured out how to research, ask questions, build the foundational understanding when switching languages/frameworks/paradigms/etc.

Original comment

3 Likes

Below are some steps for the guide who is looking to get started with automation in testing based on my experience:

  1. Study about Automation software testing techniques
  2. Familiarize and master at least one programming language
  3. Practice writing automation scripts using the Help files of automation tool as a supporter
  4. Find some automation tips shared via automation projects or experienced automation members to save time in troubleshooting and increase the quality of the code.
1 Like
  1. Don’t give up on Manual/Exploratory testing. This is key to writing good automation tests.
  2. Learn programming language - Javascript. Most of the tools are java based.
  3. Write tests which are easy to understand (anyone reading should understand what that test is exactly doing), concise - consisting of only 5-8 lines of code.
  4. Creating good framework to suit point no.3
2 Likes

Most of the advice given above makes sense and useful. I believe the best way to get started is to read up on the fundamentals of object-oriented programming and have a strong background in manual testing. The purpose of test automation is discover defects the fast way possible as an extra force to manual tests.

1 Like

My advice can give someone is “self-study” with some points below:

  1. You need have experience in testing process, testing skills
  2. Learn programming skills
  3. Don’t give up on learning new thing like: languages, coding, scripting…
  4. Research some automation tools and tips and share for the others in your team
  5. Learn from the expert automation members in your team.
  6. Problem solve
  7. Research skills should be improved day by day
1 Like

My recipe would be:

  1. Think about everyday mundane/repeatable tasks that are simple yet you have to do them.
  2. Start thinking about ways you can automate those
  3. Use a scripting language (python is a good start) and try to automate those
  4. After you’ve got a taste of how to do it and what you can do with it start thinking about those bigger tasks

For me automation is the ability to delegate simple/repeatable/everyday tasks to the machine and have more time to do the more human things. If you think the task could be done by anyone with proper instructions then probably it can be a task for the machine so you or your testing team can focus on more productive meaningful tasks : )

Edit: fixed my awful grammar ; P

2 Likes

I’m hardly in a position to give advice as I am getting started myself.

I would agree with @gingernatt above, and i would only preface that advice by saying you should definitely work on understanding what it means to be a tester first. Our job is to test, not to write automation code. You might not need automation for everything, and/or it might not be cost/time effective to write automation for certain things.

That’s kind of been my approach, and then onto @gingernatt’s steps above, pretty much precisely in that order. Right now my thinking is influenced a lot by Alan Page who I mentioned on day 2, so it’s not very original.

-Dave K

2 Likes

Some tweeted advice:

#Day 17 :Advice to someone looking to get started with automation in testing?

Good understanding of application and requirements
What need to be automated
Best Selection of Automation Tool
Know how to set up Framework
Expert to code in one of programming language
Integration with Test Management Tools
Continuous integration (CI) and continuous delivery (CD) should be applied

  • I think it all starts with inquisitiveness and the eagerness to learn.
  • Understanding what is automation and what problem it solves.
  • Good understanding about basic OOP concepts in any language.
  • Get started with a good online resource!

If you’re asking me where is a good resource. Well, you got to start exploring google. You can start here: https://www.youtube.com/watch?v=mluLgBywW0Y&list=PL6tu16kXT9PqKSouJUV6sRVgmcKs-VCqo