Automation Testing

Automation Testing

What is Automation Testing?

Automation testing uses automation tools to write and execute test cases, no manual involvement is required while executing an automated test suite. Usually, testers write test scripts and test cases using the automation tool and then group into test suites.

Why Automated Testing?

You can re-run your test scenarios in a very short fraction of time.
Also manually you may find it very boring to perform the same tests again and again, automating them makes it easy to run the tests repeatedly.
They can even be run on multiple computers with different configurations.
Automation tests for web enable us to perform the same tests in various different browsers simultaneously.
It even helps developers by testing the code before they make commit.
Automation testing makes it easy to perform:

  • load testing
  • stress testing
  • performance testing
  • regression testing

Is it a replacement for manual testing?

Well, this question sounds very similar to me as ‘Are Robots made to replace Humans?’.
No, not at all. Automation is meant to make the work of manual testers easy, just like robots.
With automation, you can complete the days of work in hours. Automation gives you room to deal with the complex test scenarios which you might not have touched while performing everything manually.

Isn’t it makes the testing process slow?

One can think of writing tests makes the whole testing process slow because we need to spend time on writing the test for each test scenario.
But that’s not the case, as you may feel slow in writing the tests but overall when you run the same tests repeatedly
it makes your work really fast otherwise you need to go through each test case manually again and again for each development cycle.

Do I really need it?

That’s a very important question because not every project is meant for automation or even if it is meant to be automated it is not necessary to automate is right from the beginning.
Let’s say you are working on a very short project of a year or so then adding the automated tests consumes at least 3-4 months of your project deadline.
And hence there it is of no use as it will impact your short project deadline.

Secondly, if you have a team who likes to write tests but do not have a practice of maintaining them when code changes, then it will result in broken test and which finally ends up commenting out all your tests.
So there it totally makes no sense of moving towards automation tests.

Thirdly, if your project requirements keep on changing frequently then you will get fed of changing your tests again and again, so it’s again a NO in this case.

What all thing should be automated?

This is a very interesting question, basically, it is all up to you whatever test scenario you wanna automate you can.
But I can suggest some must have automation in the project such as:

  • DB connections
  • Logical Functions
  • Validations
  • Forms such as login, registration, etc
  • GUI component or page loading
  • APIs

How Should I do it?

The various steps involved in automation are:

  • Write manual test cases.
  • Perform above-written test cases to check their validity.
  • Use any of the testing tools which best suits your project.
  • Write your first positive automated test and try to run it.
  • Now try to automated test for each manual positive test case and keep checking them by running when you finish each test case.
  • Now write your 1st negative test this time and run it.
  • Same as positive tests convert all your manual negative tests to automated tests.

Let me know your thoughts