UNit 2.1-Automation-Testing
UNit 2.1-Automation-Testing
Kavita Khobragade
Test automation is defined as developing a special software
to test the software.
Automation Testing is a software testing technique that
performs using special automated testing software tools to
execute a test case suite.
The automation testing software controls the execution of
the tests, compare expected and actual results and generate
detailed test reports.
Software Test Automation demands considerable investments
of money and resources.
Successive development cycles will require execution of same
test suite repeatedly. Using a test automation tool, it’s possible
to record this test suite and re-play it as required. Once the test
suite is automated, no human intervention is required.
The goal of Automation is to reduce the number of test cases
to be run manually and not to eliminate Manual
Testing altogether.
Improve software quality by reducing time to
market
Avoid chances of human error
Saves time
Test can run overnight, so product released
faster
Improve reliability & consistency of testing
process
Immediate test is possible, need not wait for
test engineer
Test Automation is the best way to increase the
effectiveness, test coverage, and execution speed in
software testing.
Automated software testing is important due to the
following reasons:
❑ Manual Testing of all workflows, all fields, all negative
scenarios is time and money consuming
❑ It is difficult to test for multilingual sites manually
❑ Test Automation in software testing does not require
Human intervention. You can run automated test
unattended (overnight)
❑ Test Automation increases the speed of test execution
❑ Automation helps increase Test Coverage
❑ Manual Testing can become boring and hence error-
prone.
Test cases to be automated can be selected using the
following criterion to increase the automation ROI
❑ High Risk – Business Critical test cases
❑ Test cases that are repeatedly executed
❑ Test Cases that are very tedious or difficult to perform
manually
❑ Test Cases which are time-consuming
The following category of test cases are not suitable
for automation:
❑ Test Cases that are newly designed and not executed
manually at least once
❑ Test Cases for which the requirements are frequently
changing
❑ Test cases which are executed on an ad-hoc basis.
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
Test Tool selection largely depends on the
technology the Application Under Test is built on.
For Example, 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.
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
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
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.
Example: Quality center is the Test Management tool
which in turn it will invoke QTP for execution of
automation scripts. Scripts can be executed in a single
machine or a group of machines. The execution can be
done during the night, to save time.
Test Automation Maintenance Approach 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.
A framework is set of automation guidelines which
help in
❑ Maintaining consistency of Testing
❑ Improves test structuring
❑ Minimum usage of code
❑ Less Maintenance of code
❑ Improve re-usability
❑ Non Technical testers can be involved in code
❑ The training period of using the tool can be reduced
❑ Involves Data wherever appropriate
1. Data Driven Automation Framework
2. Keyword Driven Automation Framework
3. Modular Automation Framework
4. Hybrid Automation Framework
DDT framework is an automation testing framework that allows
you to use a single test script to validate a test case against
different types of test data.
The test data corresponding to positive as well as negative
testing is stored in a file, and the test script uses all these values
as inputs to execute the tests. Therefore, the framework
provides re-usable logic that improves test coverage.
we can ideally focus on helping user to understand how to input
data and what to expect as the output data through a type of
automated framework explained above; most importantly, how
do we go about structuring this data.
https://testsigma.com/data-driven-
testing#:~:text=DDT%20framework%20is%20an%20automation,inputs%20to%20ex
ecute%20the%20tests.
Keyword Driven Framework is a functional automation testing
framework that divides test cases into four different parts in order to
separate coding from test cases and test steps for better automation.
Keyword driven testing framework divides the test cases as test steps,
objects of test steps, actions on test steps and data for test objects for
better understanding.
Keyword Driven Testing is a scripting technique that uses data files to
contain the keywords related to the application being tested. These
keywords describe the set of actions that is required to perform a specific
step.
A keyword-driven test consists of high and low-level keywords, including
the keyword arguments, which is composed to describe the action of a
test case. It is also called table-driven testing or action word based testing.
https://www.guru99.com/keyword-driven-testing.html
In a modular automation framework, test scripts are developed
on the basis of modules or clusters by dividing the entire
application into several small and self-sufficient blocks. Thus
individual test scripts belonging to a particular module or
cluster are created.
These scripts belonging to these isolated modules can be
integrated and can be driven by a master driver script to
perform integration testing among the modules. All these are
achieved with the help of common function libraries (containing
essential methods and procedures) which are used while
developing scripts for the modules.
Modular automation framework follows the concept of
Abstraction. Here in this framework, we plant the test data into
the test scripts. So in case we need to test with a different
combination of test data, directly test scripts need to be
updated.
Hybrid Driven Framework is a mix of both the
Data-Driven and Keyword Driven frameworks.
In this case, the keywords as well as the test data,
are externalized. Keywords are stored in a
separate Java class file and test data can be
maintained in a Properties file or an Excel file
• 70% faster than the manual testing
• Wider test coverage of application features
• Reliable in results
• Ensure Consistency
• Saves Time and Cost
• Improves accuracy
• Human Intervention is not required while execution
• Increases Efficiency
• Better speed in executing tests
• Re-usable test scripts
• Test Frequently and thoroughly
• More cycle of execution can be achieved through automation
• Early time to market
• Smoke Testing
• Unit Testing
• Integration Testing
• Functional Testing
• Keyword Testing
• Regression Testing
• Data Driven Testing
• Black Box Testing
Selecting the right tool can be a tricky task. Following criterion will help you
select the best tool for your requirement-
• Environment Support
• Ease of use
• Testing of Database
• Object identification
• Image Testing
• Error Recovery Testing
• Object Mapping
• Scripting Language Used
• Support for multiple testing frameworks
• Easy to debug the automation software scripts
• Ability to recognize objects in any environment
• Extensive test reports and results
• Minimize training cost of selected tools
1) Ranorex Studio
Over 14,000 users worldwide accelerate testing
with Ranorex Studio, an all-in-one tool for test
automation. Ranorex has easy click-and-go codeless
tools for beginners, plus a full IDE and open APIs for
automation experts.
Features:
• Functional UI and end-to-end testing on desktop, web, and
mobile
• Cross-browser testing
• SAP, ERP, Delphi and legacy applications.
• iOS and Android
• Run tests locally or remotely, in parallel, on physical or virtual
machines
• Video playback of test execution
• Built-in reporting
• Ranorex integrates with leading solutions like Jira, Git, Azure
DevOps, Jenkins, Bamboo, Bugzilla, SpecFlow, NeoLoad,
TestRail and more for a complete testing toolchain
2) Kobiton
Kobiton’s mobile device testing platform offers
script-based and scriptless test automation
capabilities.
Users can create manual tests that can be re-run
automatically across a variety of real devices.
Kobiton fully supports test automation frameworks
such as Appium, Espresso and XCTest, while offering
its own scriptless test automation through their
NOVA AI.
Features:
• Kobiton’s device lab management will let you connect
with devices in the cloud, your local on-premises devices
as well as on-desk devices.
• Users can automatically create test scripts by converting
manual test sessions into scripts that can be executed on
multiple devices.
• Easily integrate your defect management system to
automatically log tickets with debug sessions attached
when a test crashes.
• Kobiton’s Appium Anywhere technology ensures less
flaky test scripts by making sure your test runs the same
on every device
• Kobiton scriptless test automation generates 100% open
standard Appium code for flexible use.
3) LambdaTest
LambdaTest is one of the most preferred tool to
perform automated cross browser testing.
They offer an ultra-fast, scalable and secure selenium
grid, which users can utilize and run their tests on
2000+ browsers and OS.
It supports all latest and legacy browsers.
Features
• Built on latest tech stack, test execution is fast and
seamless
• Parallel test execution to shorten test cycles
• Easy integration with various CI/CD execution, project
management, team communication tools.
• Users can perform geo location testing and testing of
their locally hosted website.
• Users can utilize various APIs to extract all data they
need
• Support for all major languages and framework
4) Avo Assure
Avo Assure is a no-code, intelligent, and
heterogeneous automation testing solution.
With Avo Assure, you can execute test cases without
writing a single line of code and achieve more than
90% test automation coverage.
Features:
• 100% no-code
• Heterogeneous – Test across web, windows, non-UI (web
services, batch jobs), mobile platforms (Android and IOS),
ERPs, Mainframes, and associated emulators
• Accessibility testing
• Smart scheduling to execute test cases in a single VM
independently or in parallel. Schedule execution during
non-business hours
• Easy-to-understand and intuitive reporting
• 1500+ pre-built keywords and SAP accelerator pack
• Integration with Jira, Jenkins, ALM, QTest, Salesforce,
Sauce Labs, TFS, etc
5) testRigor
testRigor helps you to directly express tests as
executable specifications in plain English.
Users of all technical abilities are able to build end-to-
end tests of any complexity covering mobile, web,
and API steps in one test.
Test steps are expressed on the end-user level
instead of relying on details of implementation like
XPaths or CSS Selectors.
Features:
• Free forever public version
• Test cases are in English
• Unlimited users & Unlimited tests
• The easiest way to learn automation
• Recorder for web steps
• Integrations with CI/CD and Test case management
• Email & SMS testing
• Web + Mobile + API steps in one test
6) Subject7
Subject7 is a cloud-based, “true codeless” test
automation solution that unifies all testing in a single
platform and empowers anyone to become an
automation expert.
Our easy-to-use software accelerates test authoring,
reduces test maintenance, and scales effortlessly.
Key Features:
• Supports functional, regression, end to end, API, and
database testing, plus non-functional testing including
load, security, and accessibility.
• Integrates easily with DevOps/Agile tooling using native
plugins, in-app integrations, and open APIs.
• High-scale parallel execution in the cloud or on-prem with
enterprise-grade security.
• Flexible reporting and identification of persistent defects,
with video capture of results.
• Simple, non-metered pricing, delivering financial
predictability.
• SOC2 Type2 compliant
7) Selenium
It is a software testing tool used for Regression Testing. It is an open
source testing tool that provides playback and recording facility for
Regression Testing. The Selenium IDE only supports Mozilla Firefox
web browser.
• It provides the provision to export recorded script in other languages
like Java, Ruby, RSpec, Python, C#, etc
• It can be used with frameworks like JUnit and TestNG
• It can execute multiple tests at a time
• Autocomplete for Selenium commands that are common
• Walkthrough tests
• Identifies the element using id, name, X-path, etc.
• Store tests as Ruby Script, HTML, and any other format
• It provides an option to assert the title for every page
• It supports selenium user-extensions.js file
• It allows to insert comments in the middle of the script for better
understanding and debugging
Regression Testing is defined as a type of software
testing to confirm that a recent program or code
change has not adversely affected existing features.
Regression Testing is nothing but a full or partial
selection of already executed test cases which are re-
executed to ensure existing functionalities work fine.
This testing is done to make sure that new code
changes should not have side effects on the existing
functionalities. It ensures that the old code still works
once the latest code changes are done.
The Need of Regression Testing mainly arises
whenever there is requirement to change the code
and we need to test whether the modified code
affects the other part of software application or not.
Moreover, regression testing is needed, when a new
feature is added to the software application and for
defect fixing as well as performance issue fixing.
• A new requirement is added to an existing feature
• A new feature or functionality is added
• The codebase is fixed to solve defects
• The source code is optimized to improve performance
• Patch fixes are added
• Changes in configuration
https://www.guru99.com/automation-
testing.html
https://www.powershow.com/view0/6ae33d-
MzgyM/Automation_testing_powerpoint_ppt_
presentation