What is Automation Testing? – Test Process and Its Types

Software becomes more valuable and important as we welcome new applications and devices into our homes and businesses to take command of an important task. On April 16th, 1994, an aircraft fatal plane was crashed, just before landing at the airport. Where 250 people were killed, which was the deadliest accident in china airlines. The main cause of the incident was because of software bugs. Software users were not tested before implementing it. Every system has software bugs.  It’s impossible to design a software system without any bugs. But the failure caused due to software bugs to the system can be protected by doing software testing. Software testing is a process used to find the error, completeness, and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to end-users. There are two types of testing procedures manual testing, and automation testing.


What is Automation Testing?

Automated testing uses the assistance of tools, scripts, and software to perform test cases by repeating pre-defined actions. It completely depends on the pre-scripted test, where we compare the expected result with actual when the pre-script is executed. Tests like load, stress, the spike can be tested using automation tools. Example: Facebook is testing a brain-computer interface, that may translate thoughts into digital texts.

Which Test Cases Should be Automated First?

The following are the test cases that are to be automated firstly,

  • Repeated Task – An example like an e-commerce site that tests for login credentials multiple times, to make sure the login page is working as per user requirement.
  • Capturing and Sharing Results – Rather than crunching the numbers and making graphs invest in tools or automation strategy can be useful, where time can be saved.
  • Data Entry Test – Automating information onto data source so that it can be easily accessible to read. Where one can have a better handle on data variability. That is when one wants to search particular data out of thousands of data, automation tool can be used to search the particular data.
  • Timing or Screening Response – No need to keep a track of screen manually, it can be improved by using automated code “wait until”.
  • Non-Functional Testing – An example of automating non-functional testing type is automating load testing. If we have a load of ten thousand instead of testing manually, it’s a better option to use automation testing.

Automation Test Process

The step by step procedure used for automation test is

automation - test - process
automation-test-process

 1). Test Tool Selection

Choosing the right tool based on the nature of the test involved it is very important for automation to be successful. For a code-driven testing, process or graphical user interface-based testing proper tools must be selected accordingly.

 2). Define the Scope of Automation

The scope of automation plays a basic role. An example like, the important features for any business is scenarios that have a large amount of data those which has common functionality across different platforms and applications, and the complexity of test cases. Etc.

 3). Planning Design and Development

After determining the goal and which type of testing to automate, one should decide what automated test would perform. Firstly develop test cases into smaller logical tests, then write test scripts and develop test suites, where they are run one after the other automatedly. This is generated by creating a test in a suit like a library that has multiple test cases.

 4). Test Execution

An automation tool or a test management tool is used for the execution of the test script. After the final execution, a report must be made on individual tests in detail. So that the report can be used as a reference for other tests.

 5). Maintenance

Automation scripts are to be added, reviewed and maintained for each cycle. Where maintenance becomes necessary. For example, after writing code, we check the code and if there is any bug a failure occurs. Hence, we identify which part of code has an error and fix it, and then run the code right from the beginning. So, maintenance plays a vital role which improves the necessity of automation scripts.

Approaches to Automation

There are three approaches to automation, they are

 1). Code Driven Approach

It tests frame-work, focus on test case execution to find out if various sections of codes are performing as per expectation under different conditions or not. It is a popular method used in agile software development.

 2). Graphical User Interface (GUI)

Applications having GUIs can be tested using this method to record user’s actions and responses any number of times. Example: Selenium tool used to test a website. Test cases can be written in any scripting language like java, phyton, C.. etc.

 3). Framework Approach

It is a set of guidelines. Where the framework brings together the function’s libraries, test data sources, object details, and other reusable modules. The maintenance cost is less and highly efficient. Example: If there is any change in the test case, then that part of the test case file needs to be updated without any change to the driver or start-up scripts.

Types of Frameworks

There are different types of framework approaches they are

  • Linear scripting frame-work
  • Data-driven frame-work
  • Keyword-driven frame-work
  • Modular testing frame-work
  • Hybrid testing frame-work.

Types of Automation Tests

The different types of automation tests are

  1. Unit testing
  2. Smoke testing
  3. Functional testing
  4. Integration testing
  5. Regression testing

 1). Unit Testing

In a web application, there may be several components/models, which are to be tested. The process of testing each and every model is unit testing. It is done during the development phase. Where the codes are written by developers and also testers.

 2). Smoke Testing

Smoke testing is alternatively known as “Build Verification Testing “. It is used to check if the code is written is as per the expectation of end results or no. In smoke testing, once the test is done its end result will decide whether the future test should be continued or no. Problems during testing can be identified at an early stage.

 3). Functional Testing

It checks the functionality of the web, working accordingly or no. For example, if we consider the login page, where we have to enter the user id and password. Unless we enter correct data our expected page does not open. If the code is written for the login page and tested correctly the expected page opens, it means functional test is correctly working.

 4). Integration Testing

In this, the individual components are integrated and tested at once. Where we can check if the individual modules are compatible with communicating with each other. For example, if we consider the manufacturing of a ballpoint pen, where the pen consists of a refill, cap, body., which are manufactured separately and assembled together. While assembling we check them if they are fitted properly or no.

 5). Regression Testing

When there is any update in code, we make sure that it does not affect already written codes. Therefore, we do regression testing. The use of regression testing is updating the code based on the requirement, detect the error and fix it. An example of regression testing is the banking website, where the website is updated periodically when required, like updating the current account balance. Hence while updating the website one must make sure that the newly updated features don’t affect already existing features.

How to Choose Automation Tools?

To select an appropriate automation tool check for the following properties listed below,

  • Environment support
  • Database testing
  • Object identification
  • Image testing
  • Error recovery testing
  • Multiple frame-work support
  • Minimize cost
  • Extensive test reports and cost.

Types of Automation Testing Tools

There are many automation testing tools, few of them are listed below

 1). Selenium

It is open-source which is a popular testing method to perform web applications, multiple browsers and platforms. The latest version of selenium is Selenium4. Advance programming language skills are required by the programmer. There are four components of Selenium, selenium IDE, selenium remote control, web driver, selenium grid.

 2). Watir

It is an open-source testing tool made up of a ruby library that automates web application testing. The latest version of watir is watir 6.16. Codes can be written in any language. Firefox, chrome, safari are certain browsers which watir supports. Some of the features of watir are, it takes screen shorts, page performance, and it can download any file easily.

 3).  Ranorex

It is a flexible all in one GUI testing tool. It is suitable for all environment browsers and devices. It supports C# and V.NET. It is inbuilt on Microsoft windows and windows server. The main components of ranorex are ranorex recorder, ranorex repository, ranorex spy, ranorex code editor, and ranorex debugger.

 4).  API (Application Programming Interface Testing)

It is a mobile testing tool, which is open-source application software. API finds if an API test that is executed gives accurate results or no. There are various types of API testing they are, unit testing, functional testing, load testing, runtime error detection, security testing, web UI testing, penetration testing, fuzz testing. It is implemented on the POSIX API.

Automation Testing Tools for Mobile Application

The various types of automation testing tools for mobile application are Appium, Robotium, MonkeyRunner, UI Automator, Selendroid, MonkeyTalk, Testdroid, Calabash, Frank, SeeTest

 1).  Appium

  • It is an open-source
  • Supports Java, Ruby, and others
  • The source code can be reused
  • Compatible for Android and Ios.

 2). Robotium

  • It is an open-source
  • Compatible for all Android versions and subversions.
  • Codes are written in Java.

 3). Monkeyrunner

  • Framework or Functional level testing is done using monkeyrunner
  • Codes are written in python
  • Features: it controls many devices at a time, automation can be extensible, android apps and hardware can be tested, automation can be extensible.

 4). UI Automator

  • It is used to test user interfaces, using UI test cases.
  • Supports various versions of androids
  • It can lock and unlock smartphones

 5). Selendroid

  • It is used to test the user interface of android based hybrid.
  • Test cases are written using selendroid
  • A protocol like JSON wire is very compatible.

Risk Involved in Automation Testing

The risk involved in automation testing is

  • The initial cost will be high
  • Automation is never 100%
  • Does not automate unfixed UI
  • Incorrect evaluation of time and effort
  • Incompatibility of automation tools.

Advantages of Automation Testing

The advantages of automation testing are

  • Execution of test cases are simplified
  • Improves reliability of the test
  • Reduces maintenance cost
  • Test results are made in public
  • No human errors
  • Saves time and memory.

Here we have describes software automation testing, its test process, types of automation testing and automation testing tool. Here is a question, “how is automation testing better than manual testing?”.