Manual tester looking to move into automation - help required!

Agreed! You can do a lot with Robot Framework. We use it with Gitlab to run our regression suite with every code check-in. Finding a regression immediately (rather than next week) is good–the developer is still “fresh” on what the new code is supposed to do.

Of course, it’s even better if you can ALSO use the underlying language (Python, in our case) to write custom keywords or just tweak something.

Hi! I’m a manual tester in the same sort of situation. I’ve been a QA for 2 and abit years now. I have attended a brief days training on Automation and dabbled with some tests using VS.
I’ve been looking at APIS recently and before I start learning to Automate I mostly need to understand where to try and automate. I think API automation would be the best bet for our systems as the GUI changes alot recently (revamps and stuff moving alot) that the VS tests which are vaguely Selenium screen recorders have become impossible to maintain.
Do you guys think creating a suite of automated tests that use the API would be feasible?

I’m going through the same process. I found what Alex has outlined below to be the most true. You need to learn a language (I’m choosing JS) and have a good understanding of CSS and HTML. Then move into Selenium. I’m starting to work with Protractor which I like so far as our application is built in Angular. I found this thread as part of the 30 Days of Testing - Automation challenge. I really look forward to connecting with everyone.

1 Like

For the sake of adding more value to this thread, my 2 cents:

  1. Learn the basics of a programming language (java/c#/javascript/python/ruby are some suggestions).
  2. Find out about tools that work with that programming language and try them out.
  3. Write real basic code and scripts to perform certain tasks and keep thinking of small ways to expand on that.

The key being: just code. Don’t just follow along with tutorials but actually try to figure out how to solve programming problems yourself. (That does include lots of googling for solutions from others).

Find a type of resource that works for you. For example:

  1. Mooc’s, for example: mooc.fi, edx, coursera
  2. Udemy (I like it because of the fairly low pricing and the 10/15 minute average video length)
  3. Books. If that is your thing, pick one up. Plenty of suggestions to be found now with the 30 days of automation testing.
  4. Apps - f.e. sololearn or grasshopper
  5. Webbased sites like codecademy or freecodecamp
1 Like

The best advice you can give…go figure it out. Love this, it’s something that is far easier today with a good IDE and intellisense. Just experiment, explore the language and tools. But it is worthwhile at a later stage to be thinking clean code and code smells though (I know some of my early work was stinky as hell) :slight_smile:

1 Like

First thing, if you are doing manual testing for 3 years, this time to take a step ahead and move to automation. However there is no specific time to move to automation.

For your first question:
What can automation do for me to make me more efficient and cover more areas with regards to testing websites?
Answer: Well, for every release if you are doing manual testing, it is taking huge man hours to perform it. With automation you will be able to test your test cases in hours only overnight. Continuous Integration tool like Jenkins allows you to schedule the automated test cases every day. This is suggested to use the Jenkins on nightly basis so you can check the results in your day time. Most of the Software testing companies follow the same approach.

Second question:
What are the best tools to help me achieve this?
Answer: There are many tools to achieve this and Selenium is the easiest to learn for beginners. First, you must learn the Core Java concepts and then you should move ahead with Selenium. Once you select the tool, the second challenge to create an effective framework. You must go through the framework type for example Page Object Model framework, Hybrid framework, Data driven or Keyword driven. The major point to keep in mind while selecting framework type is re-usability and scalability. Also, tools like Katalon provides the easy interface to record and create the test scripts in very less time and also creates the framework.

Hope this information is helpful for you.

There are so many resources online currently where you can learn automation with hands on exercises.

Some things you want to consider when doing this is-

  • Step 1 - Learn basic coding skills which includes HTML, CSS and JavaScript. Like most of the people in this thread recommended
  • Step 2 - Choose a tool/framework which is relevant to your project or work and try to start by writing simple tests
  • Step 3 - Have a trusted partner who has prior experience in automation to give you feedback periodically on your progress and also help you out during this venture

Once you do the above 3 steps then you should be able to do any kind of automation.

Resources which I have found useful to get started are-

HTML Tutorial

CSS Tutorial

JavaScript Tutorial

The above courses are FREE and I would recommend starting with that, then try taking the JavaScript course in Codecademy as I found it really helpful and one of the best interactive courses I ever took.

Introduction To JavaScript

It is the best $20 you will ever spend.

Also check out some testing resources I have on my website as well -

Testing Resources and Articles - Raj Subramanian

Mobile Testing Resources and Articles - Raj Subramanian.

In terms of you questions, here are my thoughts-

  • I think automated and manual testing both are needed as part of of the overall software testing process. Each one has its own advantages.

A common misconception related to automation is that, it is a replacement for manual testing. On the contrary, it is actually a part of the overall testing process and manual testing is part of it. They complement each other NOT replace.

The above being said, it is important to understand the scenarios automated testing could be a good option. Here are some use cases for it-

  • To automate mundane/repeatable tasks that are really time consuming to do manually
  • To operate in a DevOps environment where we need automation right from the start of the SDLC; till the release and production monitoring phase
  • To get quick feedback about the system when new code is checked in (new feature is implemented). We will have automated tests that get automatically triggered for every code check in
  • To run several tests on a daily basis to ensure the older functionalities of the system are still working as expected
  • To create Test Data that will be used for doing manual exploratory testing which is otherwise time consuming to do manually
  • To test different fields with hundreds of data sets using data driven testing
  • To do load/stress testing where we simulate thousands of users using the application simultaneously which would otherwise be hard to do manually

Automation is not a one size fits all solution. It is not a silver bullet that can solve all the testing problems. It is just an aid in the overall testing process. This being said, it is important to remember that, not everything can be automated and in trying to do so, we will move the focus away from actual testing and finding bugs.

There are many scenarios that cannot be automated or if automated may be unstable and provide less value. Some of them are-

  • Using automation for catching rendering issues in the application (look and feel) is a bad idea. There are few tools out there which does visual validation but it is really difficult to replace humans in this aspect. For example - I had a scenario where my mobile web page looked white on one Mobile phone, whereas it looked dark grey in another mobile phone. Yes, we can try to automate this but I think humans would be better at finding these subtle differences in look and feel of the application
  • Using automation to figure out an element location on a page is a bad idea. The automated tests will become unstable if we start writing tests based on x,y coordinates of elements, as the web page could be viewed in different browsers, devices and OS’s and the coordinates are going to change based on the screen size.This means the automated tests are going to be really flaky.
  • Using automation to test integrated systems which involve software, hardware, web services, API’s and cloud services all communicating in real time with each other would be a bad idea. For example - How would we write an automated test which tests all the end to end scenarios of fitness trackers like Fitbit? We can try as hard as possible to simulate real human movements and mock services, but it is going to be a really difficult task to automate the entire process of a fitness tracker. We could rather have real humans do exploratory testing in parallel to some automated tests

As you can see we need manual testing in different scenarios which are hard to automate. Also, manual testing helps to explore the creativity of the tester and helps to think about different failure scenarios of the system, while automated tests are good in doing what it is told to do and repeating stuff, fast.

I recently hosted a webinar and had a discussion around automated testing with Jonathan Lipps and Phil Lew. You can check out the video here, we had some great conversations regarding common pitfalls of test automation, test strategy etc - Common Pitfalls of Test Automation

  • I think there are so many open source and vendor tools to help you do automation. It all boils down to the time, effort and cost you are willing to invest. Also, whether you have enough resources with some technical skillset to write automation code. If yes, then you could start with looking into open source solutions, if not, maybe vendor tools is a better option.

Hope this helps.

-Raj