0% found this document useful (0 votes)
20 views

Automation Testing note Intellepath2021

Automation Testing is a method that utilizes specialized tools to test software products, reducing human involvement while enhancing quality. It involves executing test scripts to compare actual outcomes with expected results, making it essential for continuous integration and delivery. The document outlines the Automation Testing life cycle, types of testing, tools, and benefits, emphasizing its importance in ensuring software reliability and efficiency.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views

Automation Testing note Intellepath2021

Automation Testing is a method that utilizes specialized tools to test software products, reducing human involvement while enhancing quality. It involves executing test scripts to compare actual outcomes with expected results, making it essential for continuous integration and delivery. The document outlines the Automation Testing life cycle, types of testing, tools, and benefits, emphasizing its importance in ensuring software reliability and efficiency.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 18

What is Automation Testing?

Automation Testing is the method of testing software products


with special testing tools and frameworks to minimize human
intervention and maximize quality.

Automation Testing is done with the help of automation


software, and it controls the flow of the execution of tests as
per the written test scripts. They are then compared with
predicted outcomes to ensure the quality and reliability of the
application. With Automation Testing, one can perform
necessary repetitive tasks and those tasks that are hard to
achieve with manual testing. Therefore, this type of testing is
critical for CI/CD pipelines.
Why Automation Testing?
When a company develops a product, it is bound to have
defects. So, before the release of the product, the company
needs to capture the flaws in it to provide a seamless user
experience. It is the responsibility of the testing team to
perform various kinds of testing, from functional to non-
functional, to ensure the effectiveness, efficiency, and better
user experience of the overall product.

1
Though testers do Manual and Automation testing both, doing
Automation Testing eases a lot of manual work, provides
accurate results, and saves up a lot of time, which results in the
quicker delivery of the product.

Automation Testing Life Cycle


To offer the best quality product, an organization should follow
up with the step-by-step Automation Testing life cycle to pull off
success in the market. Take a look at the below image that
shows the six stages of Automation Testing:

The Scope of Automation Testing


Before carrying out the testing process, one must check for the
feasibility of automation. Here are the things to consider while
identifying the scope of Testing Automation:
What are the modules that can be automated?
What are the total effective costs and the team size?
What are the tests to be automated, and which is the approach
to be taken?

The Right Automation Tool

Automation Testing is not possible without the right testing


tool. Selecting the right tool is a critical phase in the testing life
cycle where one has to consider the following points:
Familiarity with the tool among the resources on-board
2
Total budget and flexibility
Technologies and programming languages used to build the
project
Choosing a tool that has a support team to take care of any
queries and issues

Automation Test Plan, Design, and Strategy

As the name suggests, in this phase, you make a plan, design


the architecture, and create a strategy to achieve the goal of
test automation.
Test plan: Creation of test standards and procedures,
hardware, software, and test data requirements

Test design: Design the test architecture to determine the


flow of the test procedures that follow

Test strategy: Select a suitable test automation framework.

Setting up the Test Environment


You need to set up a remote machine or a machine where the
test cases can be run. It should cover an extensive test
coverage range for different test scenarios, different browsers,
support desktop, and mobile applications.

Automation Test Script Execution

In this step, you will execute the test scripts and check whether
the scripts run correctly or not. This step involves all the
functional aspects and compatibility across multiple platforms.
You also need to generate a bug report if the test case fails.

Analysis and the Generation of Test Results and Test


Reports

This is the last phase of the testing life cycle. Here, you will
analyze the test reports to determine whether they need
additional testing or not. Then, the generation of test results is
done to confirm if the test scripts can identify errors in the
application. Finally, the test reports are shared with the
members/clients who are involved in the project.

3
Types of Automation Testing

When you are presented with a product, the knowledge of


automation types will aid you to decide which kind of test
suites you can use for automating. Automation Testing can be
divided into three categories as given below:

Automation Testing Based on the Types of Testing


Now, you can check out the types of Automation Testing in the
following section.

Functional Testing

Functional testing is about what the product does and verifies


each function/feature of the application. It is based on
customers’ requirements. With functional testing, you validate
the actions that you perform in the software. It can be done
manually as well as automated. An example of functional
testing is testing the login functionality of a website.

Non-functional Testing

Non-functional testing is about how the product behaves and


verifies the non-functional aspects, such as performance,
reliability, usability, etc., of the product. It is based on
customers’ expectations. With non-functional testing, you
validate the performance of the software. It is hard to do
manually. An example of non-functional testing is testing how
long it takes for the dashboard in a website to load.

Automation Testing Based on the Phases of Testing

4
Unit Testing

A unit refers to the smallest component of the software. For the


entire product/software to work well, it is necessary that all the
individual parts of the code work as required. Unit testing gives
a granular view of how the code is performing. It has a faster
execution time since you are testing only chunks of code at a
time. Usually, developers prefer to perform unit testing.

API Testing

API stands for Application Programming Interface. It


acts as a middle interface between the UI and the
database.

database.

API testing checks the end-to-end functionality of the


application. Here, testers will not have access to the source
code, and the process does not involve inputs and outputs from
the keyboard. Instead, the software is made to send API calls to
get the output, and the testers note the system/application
response to check the functionality.

UI Testing

In UI testing, the testers look for the correctness of the visual


elements such as fields, buttons, labels, links, text fields, and
images on the system’s screen. These elements need to be
displayed correctly and work as intended for a better user
experience. UI testing also checks for the functionality of the
application in handling user actions, which are done via their
5
keyboard, mouse, and other input devices. Its main intent is to
provide a friendly user interface (UI) and experience.

Automation Testing Based on the Types of Tests

Below is a list of the tests that are common in the field of


automation:

Smoke Testing

Smoke testing is also known as build verification testing (BVT).


It is done in the initial stages of application testing. Whenever
you add a new feature or functionality to the existing build,
smoke testing is done that acts as a checkpoint to move on to
the next level of testing.
g.

Integration Testing

Integration testing is also known as I&T testing or string testing,


or rarely as thread testing. It is to validate the proper
communication between all the modules of the application. In
other words, since the software is made up of a lot of smaller
modules, in integration testing, testers logically group them
and test them as groups to expose the flaws while maintaining
the interaction between these software modules.

Regression Testing

If you want to be certain whether the developed and tested


software works the same way after changes have been made,
6
then you perform regression testing. The changes can be bug
fixes, configuration changes, or the enhancement of the
software. You achieve this by re-running functional and non-
functional tests on the application.

Security Testing

As a tester, you do not want to incur data breaches, loss of


revenue, and a blow on reputation due to unauthorized access.
To avoid such incidents and prevent malicious intrusion,
security testing is done, which unravels the underlying risky
threads, vulnerabilities, threats, malware, and other risks in the
software application. Security testing helps you spot all the
shortcomings and fragilities in the system’s security, which you
can prevent timely by coming up with effective.

Performance Testing

Even if your product gets a heavy workload, it needs to work


without lag. So, you need to test your product before launching
it for the customers to check its responsiveness, speed,
stability, reliability, and robustness under a certain workload.
An example of performance testing is checking the browser
response time and the server request processing time.

Acceptance Testing

Acceptance testing is the last phase of testing before launching


the product into the market. It is done to make sure all the user
needs, business requirements, and the client’s demands are
met and to determine if the product is fit for delivery or not.
et’s look at an example to learn about testing frameworks and
their types.
In a classroom, you will have a few instructions to follow such
as keeping the decorum of the class and avoiding unnecessary
interactions with peers while the class is going on. Though it is
possible to continue the class without following the instructions,
it will not provide the desired results.
A testing framework does just this during the testing process. It
has a set of guidelines for the professionals that include coding
standards, repository management, and handling of test data

7
to get beneficiary outcomes such as easy code reuse, reduced
time to manage scripts, and high portability.

Here are the commonly used testing frameworks:

Linear Framework

This is the simplest framework of all. Under this framework, you


need to write a simple code to run the test cases without any
modularity or sequential steps. It works as a record-and-
playback model.

Keyword-driven Framework

It is a scripting technique where you associate keywords with


certain actions, such as opening or closing of a browser,
mouse-click events, and others. Later on, in your test scripts,
you can call these keywords to perform a specific step. Also,
you will have a file where you will maintain all the keywords,
along with the actions they perform.

Data-driven Framework
In a data-driven framework, all the test case data inputs are
stored in the table or in extension files,
including .xls, .xml, .csv, etc. While executing the test scripts, it
will read the values from the table. With the help of this
framework, you can perform both positive and negative test
cases.
Page Object Model Framework

In the POM framework, you will create an object repository for


the web UI elements. It allows you to call these methods later

8
on without having to write the code again. Thus, it results in
less verbosity, code reusability, and reduced time-consumption
to write test scripts.

Modular Framework
The modular framework allows you to divide the test scripts
into small, independent modules. These modules will interact
with each other in a hierarchical manner to run large test
scripts. This will also help you create the required test
scenarios and test the scripts individually.

Automation Testing Tools


An automation tool should be chosen based on the type of
testing and the type of framework you are going to implement.
There are a lot of tools available in the market for you to
choose from as per your requirements. Some of the most
widely used automation tools are listed below.

Selenium
It is a tool to test web applications and web browsers. It has
multiple powerful tools for testing web applications. Also, it
supports multiple platforms and browsers with the help
of Selenium IDE.

Sikuli
Sikuli is an open-source automation testing tool used to
perform GUI testing.

9
JMeter
It is a tool that is used for performance tests.

QuickTest Professional (QTP)


Testers use QTP to perform automated regression testing to
identify gaps between the actual and desired results and detect
the errors/defects that the outcome has.

JUnit and NUnit

These tools are used by professionals to perform unit testing.

Master the core concepts of NUnit and Moq


through this Unit Testing
TestNG
TestNG is more like a framework than a tool, which
supports Selenium, REST Assured, Appium, etc. Testers can
generate HTML reports for the tests with their status—passed,
failed, or skilled. Later on, they can re-execute the failed test
cases.

SoapUI

It is a testing tool used for API testing.

Appium
It is a tool to perform mobile application testing and native app
testing.

Benefits of Automation Testing

10
If you are learning Automation Testing, it is vital for you to
know the benefits of learning it. Like every other type of
testing, Automation Testing has its pros and cons. Here, you
will learn about the 10 advantages of Automation Testing.

Benefits of Automation Testing:


It proves to be reliable since it is carried out by efficient testing tools.
70% faster than manual testing, which saves a lot of time for testers and the
organization as a whole.
Automation Testing avoids human intervention while executing test scripts.
It allows re-usability and re-running of test cases.
It increases the speed and efficiency of the software testing process.
Automation Testing covers all the application features.
It also allows for the faster delivery of the product into the market.
Faster feedback systems, which come with Automation Testing, results in an easy
communication flow between developers and testers and helps detect and fix bugs
earlier.
It offers improved accuracy as it holds no possibility of human errors.
It has the capability to run massive amounts of test cases at a time.
This blog has enriched your knowledge on what Automation Testing is, types of
Automation Testing, how it works, its benefits, and so on. With enterprises ready to
take advantage of Automation Testing for faster releases of the product, the demand
for Automation Testing professionals is on the rise.
So,
When we talk about automation applied to the testing field, there are two
expressions you’ll often hear thrown around: “automated testing” and “test
automation.” But wait a minute. Aren’t automated testing and test automation the
same thing? As it turns out, no. They are related concepts, but each one has a very
specific meaning and purpose. And make no mistake: in order for your software
organization to thrive, you’ll need both.
If up until now you thought that these two concepts are the same, don’t feel bad. For
starters, you’re definitely not alone. People often mistake the two terms for one
another. And secondly, your confusion ends today. That’s what this post is all about,
after all.
We’ll begin by defining the two terms. Then we’ll dive a little deeper into each one of
them, explaining their importance in an organization, also showing how they
differently affect each role inside the team. Finally, we part ways by giving some
additional tips. Let’s get started!
11
Defining “Test Automation”
Now it’s time to define “test automation.” What is it and how it differs from the
definition you’ve just read in the previous section? While automated testing is
basically the running of automated tests, “test automation” is a way broader concept.
It refers to completely automating the whole process of managing the different
testing needs inside an organization.
Out of context, the line above most likely doesn’t explain much. Things will get a lot
easier in the following sections, in which we’ll contextualize the two approaches,
explaining how they fit into the overall quality strategy of a software organization and
who each one benefits the most.

Automated Testing: Who Does It


Help?
To really draw the distinction between automated testing and test automation, it’s
important to show how they affect the different roles inside a software organization.
Let’s start with automated testing. Which role in an organization benefits the most
from this approach? The way I see it, the answer is clear: developers. And why is
that?

A Unit Testing Example


For the sake of the argument, let’s focus on unit testing for a
while. “Unit tests” is not a really great name if you think about
it. No one seems to agree on what “unit” really means, for
starters. But the main problem is that they aren’t really “tests.”
The best way to think about unit tests is to consider them
executable specifications. The term “programmer tests” has
also been proposed a few times, and it makes sense. Unit tests
are written by programmers, for programmers, in order to
“prove”, at least to some degree of confidence, that a given
piece of code really does what it’s supposed to do.

Automated Testing Is a Developer


Confidence Booster
It isn’t that much of a stretch to expand our definition of
“executable specifications” to also include integration tests. A
common definition of integration tests would be “unit tests,
kind of, but they use the real database/filesystem/etc instead of
mocking/stubbing it.” Let’s do just that, then: let’s stretch our
definition of “executable specifications” in order to also include
integration tests. And let’s go further and pull all of that under

12
the “automated testing” umbrella. What do we get from all of
that defining and stretching?
The answer seems clear to me: the main beneficiary of
“automated testing” in a software organization is the
developer. Or, in other words: automated testing is a tool to
achieve developer sanity. It allows developers to fearlessly
refactor, knowing that they have a reliable safety net in the
form of a comprehensive test suite that will warn them if they
break something.

Test Automation: Who Does It Help?


We’ll now turn our focus to test automation and repeat the
same analysis we just did with automated testing. Who benefits
the most from test automation? The answer, again, is clear: the
organization as a whole, with a special focus on the DevOps
professionals. To understand why, we have to go back in time,
to the (not so) good old days of the waterfall methodology.
Once Upon A Time, During The Dark
Ages
In organizations that employ this methodology (and similar
ones), testing is nothing but another phase in the whole cycle.
And the testing phase tends to happen at the end of the cycle.
More often than not, this is too little, too late. The feedback
cycles slow down, reducing the usefulness and efficiency of the
whole testing strategy. Nowadays, companies are moving
toward a world of continuous development, deployment. They
can’t afford to wait forever for the feedback from testing. The
testing itself has to be continuous so that quality can be
ensured at all phases of development. Automation can come in
handy in this situation.

Here Comes The Enlightenment (i.e.


Continuous Testing)
Automation is the missing link. It can provide the speed and
consistency that you need in order to have continuous testing
up-and-running. Manually managing the testing needs in such
an environment would not only be incredibly hard and error-
prone but also time-consuming, which in fact defeats the whole
point of doing it in the first place.

13
By automating the managing of said testing needs, test
automation helps organizations keep quality at the highest
standards during the whole development cycle. Furthermore, it
frees QA professionals from managing the minutia of testing
needs, which means they can focus on creating more efficient
case tests to ensure the application’s quality.

Automated Testing And Test Automation.


You Need Both. ASAP
In today’s post, we’ve clarified the confusion between
“Automated Testing” and “Test Automation”. Yep, the naming
could use a little less ambiguity. But the concepts themselves
are really different. However, they’re equally important if you
want your organization to continue delivering software to the
highest standards of quality. Automated testing is important,
especially for giving your developers the confidence to
fearlessly refactor their code, which contributes to higher
quality code, without a doubt.
But test automation becomes critical when your company starts
moving towards a continuous development/continuous
deployment scenario. Do you want your company to continue
thriving in this brave new DevOps world? Put test automation to
work for you and your organization.
Automation Testing Life Cycle
Introduction to Automation Testing Life
Cycle:

Test Automation is applied with the structural sequence of testing

14
process, that can have all the stages of testing life cycle with additional phases for
including the test preparation and automation implementation processes. This entire
process is known as Automation Testing Life Cycle. The various phases of ATLC are
‘define the scope of the test automation’, ‘automation testing tool selection process
depending on the type of functionality’, ‘designing test plan’, ‘defining test strategy’,
‘setting up the test environments’, ‘designing and scripting the test cases, ‘execution
of the test scripts’, ‘validating the test results’, and finally ‘generating test reports’.

Stages of Automation Testing Life Cycle


(ATLM)

Below are the Stages of the


Automation Test Lifecycle:
1. Determining the Scope of Test
Automation
This stage Refers to the decisions which are taken for the feasibility study of the
automation testing process. A proposal should be made, which will contain the
following evaluations:
Application modules that can be automated need to be identified from the ones
which cannot. Important factors such as the cost of the automation tool, the size of
the testing team and expertise related to the automation process need to be
identified and considered. Feasibility checks should be performed before starting
automation testing, these include test case automation feasibility and
AUT automation feasibility checks.

15
2. Selection of the Appropriate Automation
Tool for Test Automation
It is the second phase of the ATLM process. Identifying the right automation testing
tool is critical for the automation testing life cycle since automation testing is highly
dependent on the tool used. The developers need to consider budgetary constraints,
the familiarity of the team with the automation tool used, along resources available
with the team. The choice of the automation tool also depends upon the flexibility
and intuitiveness of the team using the tool. The test engineer should define and
evaluate the criteria for a pilot test for the automation tool. Testing personnel should
then evaluate it based on the different criteria stipulated by the test engineer.

3. Developing the Test Plan, Test


Design, and Test Strategy
It is the next phase of the automation testing life cycle, it involves setting up a test
automation framework. The testing team determines the test standards and
guidelines as well as the software and hardware and network system to support the
testing environment. It also determines a preliminary testing schedule, the data
requirements for the test and error tracking system, an associated tracking tool, and
a method to control the configuration and staging environment for the test.

Test Management Strategy:


All manual test cases should be gathered from the test management tool and
identifying the test case which needs to be automated.
The pros and cons of the testing tool should be identified along with the framework
for the test.
The associated risks, background information, and dependencies between
replication and the tool should be mentioned in the test plan
A test suite for the automation test case should be built in the tool for test
management.
Approval must be sought for the testing strategy from stakeholders or clients.

4. The Test Environment should be


Set Up
The testing team needs to track and schedule the test environment, set
up and install test environment software as well as link network
resources and hardware.

Important Areas for the Test Environment


Setup
The production data needs to be the same as that of the test environment otherwise
it becomes a problem when code changes are made in the production environment.
16
A checklist of all models, systems, and applications needs to be made for the test.
A front end running environment needs to be in place to perform load testing for
analyzing the capacity of the product for handling web traffic.
Testing should be done across numerous client operating systems
Tests should be done across all browsers and their versions.
Set up a staging environment such as in isolated database server.
All configuration/ installation guidelines end-user manuals must be stored in a central
database.

The Following Tasks must be Performed for


a Test Environment Setup:
Licenses for the tool.
All AUT credentials and accesses.
Implementation of the automation framework.
Advanced text editors and comparison tools should be set up.
A staging environment for software testing.
The best method is to copy production data to the test environment so that the test
engineer can find problems without corrupting the product data.

5. Developing the Automation Test


Script and its Execution
To execute the script, the automation testing team must ensure that all the scripts
are properly running, they need to take notice of the following processes,
The test Scripts should be created based on actual requirements.
A common function method must be created, to be used throughout the test process.
A structured reusable script must be created so that other team members can easily
understand it.
The codes should be reviewed for test scripts for proper quality assurance.

After the Test Script is successfully


Developed the following Processes must be
followed:
It should contain all functional aspects of the test case
The test script should be done on multiple environments and multiple platforms.
Test Scripts must be executed in batches to save time and resources.
A bug-report should be written for failure cases.
The Test team must comply with a strict schedule, and all evaluations the outcomes
of the test should be evaluated and executed.
All documentation should also be prepared during this phase.
To test the system as a whole, plans are designed for the system, unit, user
acceptance and integration testing, are run. Code profiling, which discovers
instances of inappropriate scaling of algorithms and resource utilization, must be
done at the time of unit testing.

17
6. Test Analysis and Generation of
Test Results and Reports
After the completion of all the tests, the team analyses and identifies particular
functionalities and components that experience several problems in test reports.
Analysis indicates any requirements for additional tests or procedures. Analysis of
test results can confirm if the test scripts or procedures executed have errors or not.
This is the end phase of the automation testing life cycle and all test reports must be
shared with clients or stakeholders at this stage.

Conclusion
Automation testing is a useful way of testing applications to meet specific testing
goals within stipulated timelines. The automation testing cycle must be implemented
stepwise to achieve the best results. Without sufficient planning, scheduling and a
sequence of actions, large scripts are created, which often fail and require extensive
manual intervention, putting a strain on existing human resources and increase
production budgets and timelines.

18

You might also like