What and Why is Test Automation?

Puvaneswaran Sajeesan
6 min readJan 21, 2021

Automation is the technology by which a process or procedure is performed with minimal human assistance by using tools. but in software testing, test automation is the use of separate external software to control the execution of tests and the comparison between real outcome and predicted outcome. It is one step ahead of the manual testing. It saves the human effort and time up to a great extent and it also leaves no or very less scope for errors in testing. Once ready, automated tests can be run any number of times to test the same application thus minimizing redundant manual work.

Advantages of Test Automation

  • Speed up test executions and saves time
  • Avoids human errors
  • Reduced Business Expenses
  • Reduced Business Expenses
  • Reusability of Test Suite
  • Faster Time to Market
  • Better Insights
  • Improved Accuracy
  • Provide more features

Disadvantages of Test Automation

  • Expensive tools and developers
  • You can never test a product like a real user
  • It is difficult to test the UI/UX product
  • We need to support a test program

these are some advantages and disadvantages of automated testing. there are some disadvantages but comparing to the benefits, test automation plays a major role in testing the products.

Types of automated testing

  1. Code driven
    - unit tests / TDD
  2. GUI (End to End Test Automation)
    - UI Object property based
    - Image Recognition Based
  3. API/Service Test Automation
    - Restful API, SOAP
  4. Mobile Test Automation
    - Android, IOS, Hybrid

Automated Testing Tools

  1. GUI-Web
    - Protractor
    - TestComplete
    - Watir
    - Selenium
    - SIKULI
    - Unified Functional Testing
  2. Mobile
    - Perfecto
    - appium
    - Calabash
    - Device Anywhere
    - Ranorex
    - Cucumber
  3. GUI-Desktop
    - Ranorex
    - SIKULI
    - Unified Functional Testing
    - TestComplete
    - WinappDriver
    - Winium
    - TestArchitect
  4. API
    - Katalon Studio
    - Selenium
    - Postman
    - Tricentis tosca
    - SoapUI
    - FitNesse

Teast automation Life Cycle

  • Determining The Scope Of Test Automation

In this particular stage, the following things should be taken care of without a failure.

  1. Which modules of the applications can be automated and which not?
  2. Which test can be automated and how to automate them?
  3. Factors like cost, team size and expertise should also be considered.
  • Selecting The Right Tool For Automation

Automation testing is highly tool dependent. That is why finding the right automation testing tool is a critical phase for an automation testing life cycle. When you are looking for an automation tool you need to keep in mind the budget, technologies being used in the project, familiarity of the tool with resources on-board, intuitiveness, flexibility and more. Choose a tool that provides you with a support team who can take care of queries or issues.]

  • Test Plan + Test Design + Test Strategy

It is the most critical phase of automation testing life cycle methodology that defines how to approach and accomplish the goal of test automation. Selecting a test automation framework is the first and foremost thing to do in the Test Strategy phase of Automation Testing Life Cycle.

Make sure to consider the following things when planning a test management strategy:

  1. Gather all manual test cases from the test management tool to identify which test case needs to be automated.
  2. Identify which framework to be used after understanding the pros and cons of the testing tool.
  3. Build a test suite for Automation test case in the tool for test management.
  4. Ensure to mention background, risk, background and dependency between the tool and application in the test plan.
  5. Seek approval on test strategy from clients or stakeholders.
  • Setting Up The Test Environment

As the name indicates, this stage of Automation Testing Life Cycle involves setting up a machine or remote machine where test cases will be executed. Why would we need remote machines? Because unless we live in an ideal world, your users would be using different machines to access your website or web-app on the internet. Test environment setup involves the following tasks:

  1. Tool licenses.
  2. Setup utilities like advanced text editors and comparison tools.
  3. Automation framework implementation
  4. AUT access and valid credentials
  5. Add-ins licenses
  • Automation Test Script Development + Execution

t is essential to ensure that all test scripts are running correctly. So, there is a need to take care of the following things before developing a test script:

  1. Creation of test scripts based on actual requirements.
  2. Create a common method of function that can be used throughout the testing process.
  3. Make sure to create a reusable, structured and easy script so that a third person can understand it clearly. Here are 8 actionable insights for writing better automation code.
  4. Perform code reviewing of test scripts for better quality assurance.
  5. Make use of better reporting.
  • Analysis + Generation Of Test Reports

It is the last phase of automation testing life cycle and the test reports are shared with all involved stakeholders at this stage. This is why, test reports are crucial for analyzing how well your web-app responds to adversity.

Selenium

Selenium is a open-source automated testing framework used to validate web applications across different browsers and platforms. You can use multiple programming languages like Java, C#, Python etc to create Selenium Test Scripts. Testing done using the Selenium testing tool is usually referred to as Selenium Testing.

Selenium Software is not just a single tool but a suite of software, each piece catering to different Selenium QA testing needs of an organization. Here is the list of tools

Pros and Cons of Selenium as an Automation Testing tool

the primary use of Selenium has been to automate Web Applications for Testing purposes. And it has been doing the same for a decade or longer. From Selenium RC, it has grown to a full-blown Web Automation framework that supports multiple Platforms.

Reasons for the adoption of Selenium

  • Open Source/ No Licensing costs
  • Language-Independent
  • Third-party Integrations
  • Parallel Testing
  • Cross Browser and Platform Independent
  • Community Support

Reasons to start looking for another Test Automation solution

  • High Initial Cost
  • Not an All-in-One solution — requires 3rd party tool bindings
  • The difficulty of managing Local Test Infrastructure
  • Slow Test Development due to the script-based Approach
  • Eventually becomes a parallel development solution
  • Inability to integrate Continuous Testing / In-sprint Automation
  • No participation from non-technical resources
  • Test Automation is always an isolated process
  • Lack of professional On-demand support for Enterprise Projects

Recomended Readings:

https://www.lambdatest.com/blog/all-you-need-to-know-about-automation-testing-life-cycle/#:~:text=The%20structured%20automation%20testing%20life,handle%20test%20data%20and%20environment.

--

--

Puvaneswaran Sajeesan

undergraduate Software Engineering student at University of kelaniya.