Automation Testing Explained

Automation Testing Explained

Automation is a very widely used word these days. Humans has been known to put in efforts to simplify all tasks and automate various tasks – be it in manufacturing industry, medical industry, accounting, or wherever possible. We always like the idea of getting things done easily without much human intervention and avoid doing boring and repetitive tasks. Hence automation is ubiquitous in various fields nowadays. So is the case with software testing.

Every software product being released needs to be thoroughly tested for bugs or defects in the product to ensure quality of the released software. Manual testing of the software involves a human testing the application by navigating through its various screens, trying out different input combinations, different use cases and scenarios the application could encounter and compare the actual results with expected results and record the observations. In a project, during a development life cycle, the software needs to be tested multiple times and all the test cases might have to executed repeatedly at various points of time – like whenever there is a source code change, or in different environments, or with different hardware configurations, etc. Manual testing becomes time consuming and cumbersome in most of these cases and automated testing becomes a necessity in the projects.

Automated testing involves the use of any automation tool for executing the test cases. An automation testing tool is capable to playback the test cases which has been pre recorded or defined by programming, compare the results with expected behavior and generate reports. There are various tools available for test automation like HP QTP/UFT, Selenium, Appium, TestComplete, IBM RFT, SilkTest, watir, etc. Each of these tools has different features available to automate your test cases easily. Some of the tools are commercial while some are open source too. Choosing the right tool for your project is often tricky and depends on several factors like your project’s automation needs, budget, skills, etc.

Benefits of automation testing

The most important benefit of automation testing is pretty straight forward. Need of less human involvement in the testing process and saving a lot of time. There are in fact many more benefits. Here are a few:

Automation testing saves time and money - Like I said before very often, in projects tests need to be repeated several times like whenever there is a new build going live, or tests would have to be repeated in various environments or platforms, etc. Doing this manually might take many days, while automation can reduce the time from days to just few hours. And as you know, time savings directly translates to cost savings in projects.

Automation testing can increases test coverage - Automation testing can ensure more tests covered than in manual testing in lesser time. Manual testing often has a tendency to avoid lengthy test cases and use limited number of data types or users for testing different scenarios. It is quite natural that repeating tests with different types of data manually becomes boring and very time consuming and are hence often ignored during manual testing. Automation testing can be effective in these cases. Automation testing can be used to stimulate several users and test the application. Automation testing can be used for running lengthy tests cases that are avoided in manual testing and moreover it can be run unattended. Automated testing can run thousand of test cases in lesser time than manual testing and thus provide test coverage impossible with manual testing.

Reduces human prone errors – Executing mundane and lengthy test cases manually become tiring and boring for the tester and can lead to human prone errors like missing some errors or recording tests incorrectly, etc. This can be avoided with automation testing.

Automation increases re usability and sharing tests with developers - Automated test cases are reusable and testers can re use the test suites for different cases through different approaches, may be with slight modifications. Also, if shared with development team, the dev team can use automation suite of critical functionalities at development stage itself and major defects can be eliminated.

When should you use automation?

Now that we have seen the benefits of automation, you might be thinking it would be very easy if we can automate the testing of entire application. But that is not the case. Automation testing does not mean 100% automation of testing applications in projects. In fact 100% automation is not possible in most of the cases and if at all possible requires lot of efforts and careful analysis. There are many cases where manual testing is more suited than automation like in case of Graphical User Interface (GUI) testing as the manual validation of UI elements with human eye is much easier and accurate. The success of automating a project’s testing lies on selecting the right test cases for manual and automation testing.

This is one of the most important aspects while you start with automating a project- selecting the right candidates for automation. This should be based on the return of Investment (ROI) which is a calculation of benefits of automating a particular test suite in terms of cost or time savings, increase in efficiency and quality of testing, etc.

Given below are some test cases which are not suitable for automation:

  • User experience tests which tests for a real user’s experience can be best done by a human only. Automation will not be that effective in this case.
  • Requirements or functionalities that keep on changing frequently are not ideal candidates for automation.
  • Tests that need ad-hoc testing/exploratory testing which is more based on an individual’s domain knowledge and expertise.
  • Tests that need to be executed as soon as possible.
  • Tests that you would have to run only once.

Now, let’s see some cases for which automation is most suitable:

  • Test cases that have to be executed very frequently.
  • Test case which has to be executed with different data sets.
  • Tedious or time consuming test cases to be executed manually.
  • Tests cases that need to be executed in different system configurations, browsers, OS, etc.
  • Performance testing test cases like stress or load testing.

These are just some general guidelines. Based on each project you might identify more ideal candidates for automation. In general, the more repetitive and predictable, the test cases are, it is better suited to be automated.

Automation testing Process

Test automation success depends on various factors like selection of an efficient test strategy, selection of the right tools, etc. Essentially any automation testing process can be considered to have the following basic steps.

Automation Process

Automated testing has its benefits and at the same time some challenges. The benefits of automation testing can be attained and the optimized Return on Investment can be achieved using the right strategy and best practices. This article was just an overview on automation testing and its benefits and was meant to throw some light on the process as such. Ultimately, test automation is all about shortening test execution cycles.



How much is a great User Experience worth to you?


Browsee helps you understand your user's behaviour on your site. It's the next best thing to talking to them.

Browsee Product