Automation Testing — Scaling up for large applications

Sanjay Sharma
5 min readJan 6, 2023

--

Introduction to Automation Testing

Automation Testing is a technique used to automate the testing tasks by comparing and testing the actual and expected outcomes. If you are in software testing, you would either be using an automating testing tool or writing test scripts to perform the desired actions. The automation testing saves you from testing repetitive tasks manually, effectively, and efficiently.

Automation Testing refers to “Activities and efforts that intend to automate engineering tasks and operations in software test processes using well-defined strategies & systematic solutions.”

Since software development and delivery cycles are getting ever shorter in order to be able to answer to markets demanding high speed of delivery and continuous innovation, most organizations that produce software are relying on automated checks to perform a substantial part (or even all) of the testing process. Test automation has become the default answer to the question on how to perform tests for most people involved in software testing.

It is necessary to invest significant time and effort when introducing automated tests in an organization. However, there isn’t much of a financial commitment, at least not while starting out on a small scale. There are numerous open source test automation tools that could be made use of, especially in the early stages. To start with automation is not a big task, But scaling the automation up to a mark where developers depend on automation to send their releases is really a challenging task. e.g In Housing, we have implemented automation where 40+ developers are contributing in an agile environment. When we started, it was not a difficult task to handle, as it grew and test case numbers reached in thousands, then common challenges like how to Priortise the test cases? How to handle the infrastructure? Communications & Collaborations with different stakeholders, maintainence etc we have faced in the later stages.

In the rest of the article, let’s have a look at how to start the automation and the benefits it can bring. In next series I’ll exlain how we implemented it in our organization (Housing).

When should automation be started?

When there is a requirement to run the same set of test cases simultaneously, repetitively, or need to test single functionality with multiple data sets, then automation is your answer.

Before automation, manual testing used to rule the software testing domain. The technicality of software and websites used to be tested using manual methods by a team of manual testers. As the testing method was manual, the need of performing testing operations on the same tasks repetitively demanded more time and resources. Automation helps meet the dynamic demands of the Agile development approach. A few characteristics of test automation include Fast Efficient Accurate Repeatable (FEAR) results.

  • Fast — executes tests quickly and speeds up the delivery of new software
  • Efficient — takes less time to execute more test scenarios
  • Accurate — carries out the same steps every time
  • Repeatable — executes a test multiple times before each software release

What is the first step in developing an automation strategy?

One of the first steps in establishing an automation strategy is to identifying which processes and areas of your business would benefit most from automation. This may include tasks that are repetitive or manual, require significant manpower or resources to complete, or are critical to the success of our business.

How to get started with Automation Testing

Selecting a test automation framework is the first and foremost thing to do in the Test Strategy phase of Automation Testing Life Cycle. Selecting a tool depends on the technologies used in the application. Understand your product completely before starting the automation test.

1. Finding a tool

There are many automation tools available in the market and some of them are given below:

  • Selenium
  • HPE Unified Functional Testing (HP — UFT formerly QTP)
  • Protractor
  • Apache Jmeter
  • Tosca Testsuite
  • Telerik TestStudio
  • Katalon Studio
  • Test Project

Out of the above tools, Selenium is the most popular because of the power-packed features it possesses. Selenium is a collection of open-source APIs used to automate the testing of web applications. It is a functional automation tool supporting multiple languages, browsers, and operating systems.

Selenium uses the “Selenium WebDriver” tool, a W3C Recommendation, to automate web application testing to ensure it works as expected.

Selenium Integration

Selenium is not a complete tool in itself. When you install Selenium, you only get a few jar files. Hence, to complete the automation structure, one needs to integrate Selenium with third-party tools as mentioned below:

For Coding & Execution

  • Any Editor (like Eclipse, IntelliJ, etc.)
  • Any Scripting Language (like Java, PHP, C#, javascript, etc.)
  • Central Code repository (like GitHub, GitLab, Bitbucket, etc.)

For Framework Development

  • TestNG — TestNG is a testing framework inspired from JUnit and NUnit but introducing some new functionalities that make it more powerful and easier to use
  • Mocha — Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun.

For Logging & Reporting

  • Log4J
  • TestNG Report
  • Extent Report
  • Allure report

For CI/CD operations

  • Jenkins — Jenkins is an open-source automation tool written in Java with plugins built for continuous integration. It is a powerful application that allows continuous integration and continuous delivery of projects, regardless of the platform you are working on.

Limitations of Selenium:

  • Automation of Windows applications is not supported
  • Can’t automate a captcha and OTP
  • Non-availability of reliable technical support
  • Only web-based applications are supported
  • Selenium does not offer any certification
  • Difficult to Setup Test Environment as compared to Vendor Tools like UFT, RFT, SilkTest, etc.

Advantages of using Selenium:

  • It is an Open source tool
  • It supports multiple languages like HTML, Java, PHP, Perl, Python, etc.
  • It supports mostly-used browsers like IE, Mozilla, Firefox, Safari, Chrome, Opera, etc
  • Operating systems Windows, Linux, and Mac are supported
  • It offers seamless integration with other libraries to automate Mobile apps, generate reports, etc.

What challenges one may face during automation?

The major challenge in automation is test scalability, Test priorities, communication & collaboration etc. As, running tests on different browsers or browser versions, OS and resolutions is something significant to perform. Also, Automation tests not simply require a right tool to create scripts but also need a correct testing approach.

What is the main goal of automation?

The main objective of process automation is to improve a company’s workflows. With automation, we can reduce costs, time, and waste as well as increase productivity, reduce mistakes, and control all the processes of the business in real time. the goal is to release quality software in a timely manner.

--

--