Software Test Automation
Tags: Selenium, Software, Software Testing, Test Automation, Testing

What is Software Testing

Software testing is a process, to evaluate the functionality of a software application with an intent to find whether the developed software met the specified requirements or not and to identify the defects to ensure that the product is defect-free in order to produce a quality product.

Why Software Testing is Important?

Software Testing is Important because if there are any bugs or errors in the software, it can be identified early and can be solved before delivery of the software product. Properly tested software product ensures reliability, security and high performance which further results in time saving, cost effectiveness and customer satisfaction.

What is Test Automation?

Test automation is the practice of running tests automatically, managing test data, and utilizing results to improve software quality. It’s primarily a quality assurance measure, but its activities involve the commitment of the entire software production team. From business analysts to developers and DevOps engineers, getting the most out of test automation takes the inclusion of everyone.

The automation testing software can also enter test data into the System Under Test, compare expected and actual results and generate detailed test reports. Test Automation demands considerable investments of money and resources.

Automated Testing Process

Test tool selection Define scope of Automation Planning, Design and development Test Execution Maintenance

Test tool selection

Test Tool selection largely depends on the technology the Application Under Test is built on. For instance, QTP does not support Informatica. So QTP cannot be used for testing Informatica applications. It’s a good idea to conduct a Proof of Concept of Tool on AUT.

Define the scope of Automation

The scope of automation is the area of your Application Under Test which will be automated. Following points help determine scope:

The features that are important for the business

Scenarios which have a large amount of data

Common functionalities across applications

Technical feasibility

The extent to which business components are reused

The complexity of test cases

Ability to use the same test cases for cross-browser testing

Planning, Design, and Development

During this phase, you create an Automation strategy & plan, which contains the following details-

Automation tools selected

Framework design and its features

In-Scope and Out-of-scope items of automation

Automation testbed preparation

Schedule and Timeline of scripting and execution

Deliverables of Automation Testing

Test Execution

Automation Scripts are executed during this phase. The scripts need input test data before there are set to run. Once executed they provide detailed test reports. Execution can be performed using the automation tool directly or through the Test Management tool which will invoke the automation tool.

Maintenance

Test Automation Maintenance is an automation testing phase carried out to test whether the new functionalities added to the software are working fine or not. Maintenance in automation testing is executed when new automation scripts are added and need to be reviewed and maintained in order to improve the effectiveness of automation scripts with each successive release cycle.

Types of testing

1) Functional Testing — on operations which perform as per the expectations.

2) Regression Testing — on the behavior of the system which has not been changed.

3) Exception or Negative Testing –thereby forcing error conditions in the system.

4) Stress Testing — to determine the absolute capacities of the application and operational infrastructure.

5) Performance Testing — to provide assurance that the performance of the system will be adequate for both batch runs and online transactions in relation to business projections and requirements.

6) Load Testing — to determine the points at which the capacity and performance of the system become degraded to the situation that hardware or software upgrades would be required.

Benefits Of Automated Testing

1) Reliable: Tests perform precisely the same operations each time they are run, thereby eliminating human error

2) Repeatable: You can test how the software reacts under repeated execution of the same operations.

3) Programmable: You can program sophisticated tests that bring out hidden information from the application.

4) Comprehensive: You can build a suite of tests that covers every feature in your application.

5) Reusable: You can reuse tests on different versions of an application, even if the user interface changes.

6) Better Quality Software: Because you can run more tests in less time with fewer resources

7) Fast: Automated Tools run tests significantly faster than human users.

8) Economical: As the number of resources for regression test are reduced.

Disadvantages Of Automated Testing

1) Proficiency is required to write the automation test scripts.

2) Debugging the test script is major issue. If any error is present in the test script, sometimes it may lead to deadly consequences.

3) Test maintenance is costly in case of playback methods. Even though a minor change occurs in the GUI, the test script has to be re-recorded or replaced by a new test script.

4) Maintenance of test data files is difficult, if the test script tests more screens.

Test Automation Tools

Mabl Selenium Squish TestingWhiz Watir Testim AppliTools Katalon Studio LambdaTest Telerik Studio Unified Functional Testing (UFT One) Sahi Pro

Working with Selenium

What is 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.

These are the tools integrated with Selenium,

Selenium Integrated Development Environment (IDE)

Selenium Remote Control (RC)

WebDriver

Selenium Grid

Advantages of Selenium

Selenium is an open-source tool.

Can be extended for various technologies that expose DOM.

Has capabilities to execute scripts across different browsers.

Can execute scripts on various operating systems.

Supports mobile devices.

Executes tests within the browser, so focus is NOT required while script execution is in progress.

Can execute tests in parallel with the use of Selenium Grids.

Disadvantages of Selenium

Supports only web based applications.

No feature such as Object Repository/Recovery Scenario

No IDE, so the script development won’t be as fast as QTP.

Cannot access controls within the browser.

No default test report generation.

For parameterization, users has to rely on the programming language.