Test Automation

Niroshan Rajh
3 min readJan 20, 2021

Automation Testing is the process of using tools, scripts, and software to perform test cases by repeating pre-defined actions. Test Automation focuses on replacing manual human activity with systems or devices. Because automated testing is done through an automation tool, it consumes less time in exploratory tests and more time in maintaining test scripts while increasing overall test coverage.

The benefit of manual testing is that it allows a human mind to draw insights from a test that might otherwise be missed by an automated testing program. Automated testing is most preferable for large projects that require testing the same areas over and over. Also, projects that have already been through an initial manual testing process.

Advantages of Automation testing

  • Costs and efficiency
  • Time economy
  • Quality
  • Reusable

Disadvantages of Automation testing

  • Need better tools and training
  • A lot of testing areas left uncovered
  • Lack of experience
  • Lack of clear goals

Automation Frameworks

A “Test Automation Framework” is scaffolding that is laid to provide an execution environment for the automation test scripts. The framework provides the user with various benefits that help them to develop, execute and report the automation test scripts efficiently. It is more like a system that has created specifically to automate our tests.

  • Linear (Record and playback)
  • Keyword Driven
  • Data Driven
  • Page Object Model
  • Modular

Automation Tools

Based on the type of testing you are targeting and the type of framework that you may want to build around it, the following tools are available to use:

  • Selenium: Very powerful tool for testing of Web Applications. Provides multiple browser support.
  • Junit and Nunit: Tools majorly used for Unit testing by the developers.
  • QTP: Great tool for non-web applications and comes with a built-in object repository.
  • Sikuli: Open source tool for GUI testing.
  • Soap UI: Tool for API testing.
  • Rest Assured: Library to create an API test framework.
  • Appium: Tool that supports mobile testing, native app testing, hybrid, and mobile web application testing.
  • Jmeter: A tool that is used for performance tests.
  • TestNG: TestNG is not an automation tool in itself, however, it provides great support to automation frameworks built with selenium, appium, rest assured, etc.

Automated Testing Process:

Following steps are followed in an Automation Process

Step 1) Test Tool Selection

Step 2) Define scope of Automation

Step 3) Planning, Design and Development

Step 4) Test Execution

Step 5) Maintenance

Selenium

Selenium is a free (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.

List of tools

  • Selenium Integrated Development Environment (IDE)
  • Selenium Remote Control (RC)
  • WebDriver
  • Selenium Grid

Selenium IDE

If you want to create quick bug reproduction scripts, create scripts to aid in automation-aided exploratory testing, then you want to use Selenium IDE; a Chrome and Firefox add-on that will do simple record-and-playback of interactions with the browser.

Selenium WebDriver

If you want to create robust, browser-based regression automation suites and tests, scale and distribute scripts across many environments, then you want to use Selenium WebDriver, a collection of language specific bindings to drive a browser — the way it is meant to be driven.

Selenium Grid

If you want to scale by distributing and running tests on several machines and manage multiple environments from a central point, making it easy to run the tests against a vast combination of browsers/OS, then you want to use Selenium Grid.

--

--