Test Automation

dilusha sandaruwani
4 min readJan 21, 2021

What is Automation?

Automation is the Formation of technology and its application to control and monitor the production and delivery of various goods and services. Performs tasks that were previously performed by humans. Automation is being used in many areas, such as manufacturing, transportation, public services, defense, facilities, operations and, lately, information technology.

Why do we automate?

Reduce manual effort on Repetitive tests

When there are Frequent releases/code changes

To Reduce Execution Cycle time Saves time and money

Large number of Boundary Value test cases

Enable continuous delivery

Catches problem quickly

Improves accuracy Increase Test Coverage

What is Test Automation?

In software testing, test automation is the use of software separate from the software being tested to control the execution of tests and the comparison of actual outcomes with predicted outcomes.

Benefits of Test Automation

Speedup test execution

Avoids human errors

Unattended execution

Test what manually impossible

Improve efficiency of

— Testing

— Cost

Improve Team Morale

More time for exploratory testing

Types of Automated Testing

Code-driven

— Unit Tests/TDD

GUI(End to End Test Automation)

— UI Object property based

— Image recognition based

API/Service Test Automation

— Restful APIs, SOAP

Mobile Test Automation

— Android, IOS, Hybrid

Tools & Technologies

Most Extensively Used Test Automation Tools

Test automation cannot be realized without good tools; as they determine how automation is performed and whether the benefits of automation can be delivered. Test automation tools is a crucial component in the DevOps toolchain. The current test automation trends have increased in applying artificial intelligence and machine learning (AI/ML) to offer advanced capabilities for test optimization, intelligent test generation, execution, and reporting. It will be worthwhile to understand which tools are best poised to take advantage of these trends.

Available Tools for Automation

1.Selenium (open source)

The top of almost every rank is Selenium. It is an open-source cross-platform framework for testing web applications. Auto scripts can be written in Java, C#, Python, PHP, Ruby, Perl and JavaScript. The framework includes Selenium Grid, Selenium Remote Control and Selenium IDE. Having rather high capacities, Selenium can be used for performance testing of web-based products.

2.Watir Robotium (Android testing tool)

Watir (pronounced as water) is an abbreviation for Web Application Testing in Ruby. It is a very light-weight open-source tool for automating web application testing. The best part of the tool is that it supports your web application regardless of considering which technology your app is designed.

3.Test Complete (SmartBear)

TestComplete is the top automation testing tool for desktop, mobile and web applications. With TestComplete, you can build and run functional UI tests via robust record & replay capabilities or by scripting in your favorite languages, including Python, JavaScript, VBScript and more.

4.Perfect Mobile

Perfecto test automation solution supports automated application testing over cross browsers and mobile devices. It can be integrated with various test automation frameworks. It is a licensed tool. Like other tools, it also offers a free trial.

5.Appium

Appium test automation framework is mainly intended for mobile applications. The good news is that it is an open-source tool. It supports automation of native, hybrid and mobile web applications built for iOS and Android. Appium uses vendor-provided automation frameworks and is based on client/server architecture.

Test Automation Frameworks

Need For Automation Frameworks

Test Automation Framework has a lot of benefits including an increase in efficiency, speed, and test accuracy.

1. It reduces the cost as well and lowers risks also.

2. It improves test efficiency.

3. It lowers the cost of maintenance.

4. It maximizes the test coverage and functionality of the application.

5. It also defines the reusability of code.

6. It helps in avoiding the duplication of test cases as well that is used to automate across the platforms.

--

--

dilusha sandaruwani

Software Engineering undergraduate at University of Kelaniya