Software testing, particularly automation testing, is crucial for ensuring the quality and reliability of increasingly complex software systems, offering significant advantages over manual testing in terms of efficiency, accuracy, and cost-effectiveness for repetitive tasks.
Mind Map
Click to expand
Click to explore the full interactive mind map • Zoom, pan, and navigate
[Music]
software continues to influence effect
and automate more areas of our lives so
testing software becomes more valuable
and important as we welcome new
applications and devices into a homes
and businesses to take command of
important tasks hey guys am Archana from
ed Eureka and I welcome you all to this
session on automation testing but before
we proceed let's go ahead and take a
look at topics that we will be talking
about today we will start the session by
discussing what is software testing and
why is it important then we will cover
the basics of automated software testing
like what it is why it's necessary for
the IT industry and how to make sense of
the technology behind it we will also
check out the differences between manual
testing and automation testing finally
we will end this session by discussing
popular automation testing tools so I
hope agenda was clear to you guys let's
get started there
on April 26 1994 aircraft named Airbus
a300 was completing the routine flight
and approach when just before landing at
Airport it crashed the crash killed
about 264 people and to date the
accident remains the deadliest accident
in the history of China Airlines
similarly on August 14 2003 shortly
after 2 p.m.
a high voltage power line in northern
Ohio brushed against some overgrown
trees and shut down completely
50 billion people lost power for up to 2
days in the biggest blackout in North
American history that did normally the
problem would have tripped an alarm in
the control room but due to software
glitches the alarm system failed in
April of 1999 there was failure of a 12
billion dollar military satellite launch
it was due to some sort of technical
issue and satellites guidance system
similarly in 1985 Canada's therac-25
radiation therapy machine malfunctioned
due to some software bug and delivered
lethal radiation to patients leaving
three people there and
injuring three others so now you might
be wondering why am i discussing all
this here right well all the incidents
that I mentioned just now happen because
of the software box software used here
was not tested before implementing every
system has software box it's impossible
to design and bring out a perfect
software product fundamentally the world
itself is imprecise and unpredictable
and all the software systems connect to
the real world and one or the other way
so software testing is very important
software testing basically is the
process of executing the software or an
application to find out if there are any
kind of bugs or some sort of errors and
as the name already suggests the
software testing means checking the
developed software for any mistakes and
problems in the initial design of
software so the incidents that we
discussed earlier are just few there are
many other fatal incidents that occur
due to lack of software testing so
software testing gives confidence in the
quality of final product it confirms
that the application has no errors in
the code it verifies how the user can
work with application and ensures that
the introduct is very easy to use it
also tells for the Box in the software
in the initial stages of development and
until the software is ready it confirms
that the application is able to operate
in all the required conditions and on
all supported operating systems or web
browsers correctly and safely so before
actually software goes public
programmers spend hovers trying to iron
out every little bug there is and
software and that is what we call
software testing testing is broadly
classified as manual testing and
automated testing so manual testing it's
pretty self-explanatory light testing of
a web application is done manually by
human action that's what we call manual
testing this means that someone actually
goes on a device to evaluate numerous
components including design
functionality and performance of
software so they click through multiple
elements or units of web application
without any support from tool or scrip
thorough testing is crucial to the
success of a software product if you
software doesn't work properly chances
are strong that most people won't buy it
or even use it at least not for long
even if they bite but testing to find
defects or some sort of bugs is very
time consuming expensive often
repetitive and subjective to human error
if you are using manual testing
so this is where automation testing
comes into picture automation testing
well its automated the buzzword
automation focuses on replacing manual
human activity with systems or devices
that enhance efficiency of software test
automation or usually referred as
automation testing uses different kind
of tools scripts and software to perform
test cases by repeating predefined
actions so by automating your software
testing activities you will definitely
get a competitive edge in the market so
let me give you some examples Amazon is
testing delivery drones that pick up
warehouse orders sorted by robots Google
is testing self-driving cars Starbucks
is testing kasia free stores dedicated
to mobile ordering and payment Facebook
is testing a brain-computer interface
that may one day translate thoughts into
digital text fascinating right there are
mundane versions of automation
technology behind all this testing
software automation testing companies
use automation technology to create the
software responsible for the products
and services causing all this hype about
automation testing when you actually
begin testing one of the primary
decisions that you'll have to make is if
to choose manual testing or automated
testing well neither of these options
are technically better or worse when
compared to each other factors like size
budget time allowance of the project
will certainly be factors that affect
which method will work best in the
situation so you should be aware of
distinct differences between manual
testing and automated testing so here we
go the first difference obviously the
definition which we discussed earlier in
manual testing test cases are executed
by human tester and software whereas
automation testing uses different kind
of automation tools and scripts to
execute test cases so let's get started
with other factors the first is rely
for a testing phase where duration is
very long there are high chances of an
undetected error when testing is
performed manually every time a small
defect is fixed the entire application
needs to be tested to ensure that any
other breakage is not occurring well the
process is tiling and boring
so testers often miss out critical
defects while performing repeated
testing it's a common human behavior
light therefore the accuracy and
reliability of manual testing is very
low automated testing on other hand is
more reliable tools are the scripts that
you use from the automated tests if the
script is properly written there is no
chance of missing a defect when the test
is executed over and over again and
obviously it's not boring as well for
the machine right when it comes to
reliability automated testing is highly
reliable then comes the time required to
perform the testing manual testing is
obviously time-consuming it takes up
human resources but when it comes to
automated testing its executed by
software tools and different kind of
scripts so it is significantly faster
when compared to manual testing next we
have when to use which kind of testing
manual testing is suitable when the test
cases are run once or twice therefore
there is no frequent repetition of test
cases and manual testing so two named
manual testing is suitable for
exploratory or usability and ad hoc
testing automated testing is suitable
when the test cases need to be run
repeatedly for a long duration of time
automation testing is suited for
regression testing performance testing
load testing or highly repeatable
functional test cases and next we have
performance and batch testing which is
not possible in manual testing you can
batch multiple test scripts in automated
testing performance tests like load
testing stress testing spike texting etc
have to be tested by an automation tool
compulsorily and software testing
process then we have investment costs
the cost of manual testing is usually
dependent upon the human resource
deployed in the testing during the
initial stages of testing the initial
investment in manual testing is
comparatively lower but the
written of investment is very low when
compared to automation testing when I
say written of investment I mean the
money that you own as in a venue at the
end of the software testing or after
selling the product is actually low and
compared to automation testing in long
run thatís but the cost of automated
testing is dependant upon testing tools
deployed for performing the tests but
the initial investment in automation
testing is usually higher though the
rigor of investment is better in long
run so when it comes to investment cause
initial investment manual testing is
much preferable but if you want to
perform testing for long run
then automation testing is much
preferable as the last criteria we have
human element manual testing allows
human observation right so you are
getting exact kind of feedback a person
would give you and that can be
invaluable being able to predict what
your users will or won't like thinks
that a computer can't give feedback on
ahead of time can influence your design
and make it much better from the bottom
up it improves the customers experience
but when it comes to automated testing
as there is no human observation
involved there is no guarantee of
positive customer experience so when it
comes to human element manual testing is
much better because you get to have a
nice experience since the humans are the
ones who are checking the software so
guys these are some defenses that you
should be aware of between manual
testing and automation testing so to
summarize what you've learnt in now
automation testing is Lord of advantages
over manual testing first of all it
saves lot of time and money it improves
test accuracy it increases the test
coverage as then you can perform tests
repetitively on different kind of
devices complex tests and boring tasks
are made very easy and comfortable it
increases efficiency and team morale you
no longer have to do the boring and
repetitive tasks
there's been no human errors obviously
it reduces maintenance cost of testing
it increases speed of executing tests
and many more advantages so in short
while manual testing is effective in
projects with multiple operating
environments and hardware configurations
automation testing is absolutely
essential today - sucks
fully deliver large-scale products that
need execution of repetitive and complex
test cases but it's impossible to
automate all testing so it is important
to determine what test cases should be
automated first so guys let's go ahead
and take a look at use cases where
automation testing have to be applied
because like I said you can't apply
automation everywhere first of all as
you guys know repetitive tasks are
primary candidates for automation take
an e-commerce site for an example it may
be testing entering in user credentials
multiple times consider the task that
you hate doing not only are the store's
boring to you but they're often the ones
where mistakes are made very commonly so
automate them and do something more fun
next capturing and sharing results is
obviously a critical part of successful
test strategy rather than manually
exporting your data crunching the
numbers and making petty graphs invest
in a tool or automation strategy that
will do this for you thereby you can
save time and a lot of effort on your part
part
and obviously tests that require
multiple data sets rather than manually
typing in information into forms or
fields automate this process to read an
information from a data source and
automatically type into the respective
forms this way you will have better
handle on your data of variability and
it also decreases the chances of making
mistakes repetitively again and suppose
if you are waiting for an Hans Q in
response it can be automated so you do
not have to waste time staring at a
screen and watching for a response right
you have other better things to do put
that time to better use and use
automated controls like wait until in
your program code then you have
non-functional testing a good example of
automating non functional testing types
is automating load testing think about
having to see if your application can
handle a load of 10,000 users automate
this testing so you do not have to worry
about manually spinning up 10,000 users
hitting your application all at once
test the Tron on several different
hardware or software platforms and
configurations so as the number of
device users in track width increases
automating your setup or tearing down
your setup environment will continue to
be critical additionally these are
scripts that you will use over and over
again in my
testing frameworks right it's better to
automate than to do them manually so
basically the cases where you have to
automate is when you have repetitive and
boring tasks or if you have to capture
some results and share the results or if
you have to repetitively enter the data
tasks as in data entry tasks or some
sort of timing or screening
responsiveness and especially in load
testing and suppose if you want to set
up or tail down your environment set up
then you can use automation so guys it's
always better to know when to use event
to apply automation and software testing
so guys success and test automation
process requires careful planning and
design work start out by creating an
automated plan this allows you to
identify the initial set of tests which
to automate and serve as a guide for
future testers but there are a lot of
helpful tools to write automation
scripts before using those tools it's
better to identify the process which can
be used to automate the testing or the
procedure that you have to follow to
start automation so as next part of
session we'll discuss the steps that you
need to follow when you're performing
automation testing so like I said all
your success in test automation requires
careful planning and design work so
start out by creating an automation plan
first of all you should define your goal
for automated testing and determine
which type of test you automate once
you're sure of what kind of test are you
performing you need to select the tool
so the first step here is test tool
selection there are several kinds of
testing tools available however choosing
the light tool keeping in mind the
nature of test involved is very
important for your automation to be
successful so whether it's a code driven
testing process or graphical user
interface based testing you must sell
appropriate tool to automate the testing
so the first step is selecting the
proper tool required for automation of
your application or testing next comes
defining scope of automation as in you
need to select which test case is taught
to me here you can follow certain
pointers like the features that are
important for business scenarios which
have large amount of data or those which
has common functionalities across
different platforms and applications
technical feasibility the extent to
which business components are be used
the complexity of test cases etc so by
keeping these pointers in mind you can
define the scope of automation and the
third step is planning design and
development after determining your goal
and which type of test to automate you
should decide what actions you automated
tests will perform planning design and
development develop test cases don't
just create test steps that test various
aspects of applications behavior at one
time it becomes overwhelming large
complex automated tests are difficult to
edit and debug as well so it will be a
problem for you later on so it is best
to divide your tests into several
logical smaller tests so once you've
developed your test cases or you have
written your test scripts
next step is to develop test suits their
suits are developed to ensure that the
automated tests which you have written
run one after the other without any
manual intervention this is done by
creating a test suit that has multiple
test cases a library and command-line
tool that runs the passu so guys the
next step is test execution once you're
done with writing your scripts and
placing them in suitable test suits the
next step is to start executing them
automation scripts are executed during
this test execution phase so execution
can be performed using automation tool
directly or through the test management
tool which will invoke the automation
tool which you have chosen to get the
most out of your automated testing
testing should be started as early as
possible and as often as needed as well
the earlier testers get involved in the
life cycle of the project the better and
more you test the mode box you can find
right so yeah your scripts are executed
in this phase once executed the next
step obviously is to create report
format so that individual test locks
with details of action performed during
test are recorded properly for
references so you define the type of
test report format to be created
screenshots messages etc so all such
things you include in your report as new
functionalities are added to system
under test with successive cycles
automation scripts need to be added
reviewed and maintained for each release
cycle right so maintenance becomes
necessary to improve the effectiveness
of automation scripts so what I mean
here is that you do not entirely finish
a project and start testing suppose if
you have found some bug you add
additional features and again start your
testing from the beginning so a
maintenance plays a very important role
and it becomes necessary step to improve
the effectiveness of your automation
scripts so you need to follow these
steps when performing automation testing
to get the best results and efficient results
results
next comes the automation tools there
are several innovative automation
testing tools but before we discuss that
we need to understand there are
different kind of approaches to
automation the first one is we have Co
driven approach this approach uses
testing frameworks like xunit frameworks
etcetera the focus here is mainly on
test gate execution to find out if
various sections of code are performing
as per our expectations under different
conditions or not so Co driven testing
approach is a popular method used in
agile software development then we have
graphical user interface applications
that have gy s-- or graphical user
interface may be tested using this
approach it allows the testers to record
user actions and analyze them any number
of times so this is one way of going at
automation for example if you want to
test a website you can use automated
testing tools like selenium that
provides a record and playback tool for
authoring tests without any knowledge on
test scripting language so you do not
basically have to know the scripting
language here you do have record and
playback tool using which you can start
executing your test test cases can be
written in any number of programming
languages like C sharp you have Java a
Perl Python Ruby and many other options
so the next approach is using automation
framework so basically your test
automation framework is set of
guidelines which are used to produce
beneficial results of automation testing
activity this framework brings together
function rivalries
test data sources object details and
other reusable modules it lays down the
general rules of automation and it
simplifies the effort required to bring
the efficient results and lower your
maintenance cost as well so basically
you can say you're setting down a set of
rules that you need to follow while
performing your automation
thing let's consider an example suppose
if there is any change in a test case
then only that particular test case file
needs to be updated without having to
make any change to the driver or the
startup script so now if you have
multiple approaches when it comes to
frameworks frameworks could be linear
scripting framework recording and
replaying test scripts in sequential or
you can say a linear fashion you have
data driven framework a constant source
of test criteria specifies the test
scripts which you have to run here then
you have keyboard-driven framework here
are the tables on a spreadsheet actually
specify the action of her test tips that
need to be formed based on the library
of functions for an assign keyword then
you have modular testing framework
modules of an application under test are
divided and then tested with individual
test scripts and then they can be
combined for larger test scripts then
you have I Bri testing framework
obviously it's a combination of
frameworks to leverage the strengths of
each of the ones which we discussed
earlier when you've decided to perform
automation testing you can opt for any
of these approaches you can go for code
driven testing you can also go for
graphical user interface if you're
testing graphical user interface then
you can go for a framework approach and
you have multiple framework options here
as well like linear which performs
testing in a linear fashion then you
have data driven keyword-driven modular
testing and hybrid testing which is a
combination of all the other framework
types so yoga is basically there are
ways you can implement automation well
software testing so now moving on to
test automation tools
selecting an automated testing tool is
essential for test automation well there
are lot of automated testing tools in
market and it is important to choose the
automated testing tool that best suits
your requirement so basically when
you're trying to test or select an
automation tool please do follow the key
points which I'll mention of first of
all check if the tool is compatible with
platforms and the different kind of
technology that you're using ask
yourself do you need support for mobile
automation testing or different other
kinds of testing are you testing dotnet
c-sharp or other applications if yes and
then on what operating systems so next
flexibility of the testers also plays a
very important role that is why
kind of skills your tester have also
plays a very important role for example
can your QA Department write automated
test scripts or is there a need for
keyword testing thirdly does the
automated testing tool support record
and playback test creation as well as
manual creation of automated tests so
basically you need to consider these
sort of questions or situations before
you go ahead and select a tool you can
also look if the tool includes features
for implementing checkpoints to verify
values databases or key functionality of
your application you need to create
automated tests that are reusable
maintainable resistant to changes in the
application UI right so ask yourself
will my automated test break if my UI
changes so based on that choose a to
make sure that the application is stable
enough to automate the early development
cycle unless or otherwise it is agile
environment it not be a good idea and
finally the cost and therefore that you
need to put in is also a very valuable
concept that you should consider when
you're choosing an automation tool for
your testing well these are certain
categories or scenarios or key points
that you should take care of when you're
actually choosing an automation tool now
to name few popular automation testing
tools we have selenium selenium is a
popular testing framework to perform web
application testing across multiple
browsers and platforms like Windows Mac
Linux then we have water W ATI are
basically it's pronounced as water is an
open source testing tool made up of Ruby
libraries to automate web application
testing then you have something called
ranorex it is inflexible all-in-one GUI
testing tool
so using Analects you can execute
automated tests flawlessly throughout
all environments and browsers and
devices then you have a PM it's a mobile
testing tool it is an open source mobile
test automation software obviously it's
free and supported by a high active
community of developers and experts so
apart from this you also have zypher
Tasker for end-to-end testing then HPE
or unified functional testing which was
formerly known as HP quick test
professional or qtp and I can just keep
going there are plenty of automation
testing tools so tool selection is one
of the biggest challenges that need to
be tackled before you actually start
your automation so first identify the
requirements explore various tools get
to know them and their capabilities set
the expectations from the tooth and go
for a proof-of-concept so that's how you
choose a tool of your choice
so guys in some situations automation
testing is very important but as much it
is comfortable that much it is risky too
so if you decide to do automation
testing then think of following
scenarios first starting cause for an
automation is very high automation tool
purchasing costs training and
maintenance of test grip all this costs
are very high because of this reason
some companies are worried to take
decision to automate their work secondly
automation is not hundred-person
automation testing cannot be 100% and
don't think of that there are areas like
user interface documentation
installation compatibility and recovery
where testing should be done manually
you can't do all this using tools you
need to have a person involved in this
and another risk that you might
encounter is when you have unrealistic
expectations from the automation testing
tool so like I said earlier know the
requirement study different kind of
tools get to know their capabilities and
choose the tool and then comes the
incompatibility of automation testing
tools with the test environment and
other software testing tools and test
environment then you have vendor issues
like inability to provide technical
support inability to update the
automation testing tools with changes in
software testing platform and all that
and one more point do not automate
unfixed user interface be careful before
automating user interface if user
interface is changing always costs
associated with script maintenance will
be very high so basic user interface
automation is enough in such cases
by mentioning all this points what I
wanted to tell you as automation is not
possible every time and these are some
cases where you might have to start
looking twice before you actually
implement automation here so guys there
is no silver bullet for testing during
the development process despite the wide
variety of techniques and tools we
cannot rely on a single approach
automated and manual testing each have
this strengths and weaknesses what we
want to stress here is that no matter
how great automated tests are you cannot
automate everything manual tests play
important role in software development
as well and they come handy when you
cannot automate the process so guys we
have reached the end of the session and
by now I'm sure you know what automation
testing is and benefits of using
automation testing Vento uses and which
test cases need to be automated and how
different it is from manual testing so
make sure to consider all this points
when you go ahead with automation next
time so guys we have reached the end of
the session and I hope you have
understood what we have discussed here
and if you have any doubt or queries
regarding any part of the session please
to mention in the comment section below
and we'll get back to you as soon as
possible thank you guys and we'll meet
you in the next session I hope you have
enjoyed listening to this video please
be kind enough to like it and you can
comment any of your doubts and queries
and we will reply them at the earliest
do look out for more videos in our
playlist and subscribe to any rekha
Click on any text or timestamp to jump to that moment in the video
Share:
Most transcripts ready in under 5 seconds
One-Click Copy125+ LanguagesSearch ContentJump to Timestamps
Paste YouTube URL
Enter any YouTube video link to get the full transcript
Transcript Extraction Form
Most transcripts ready in under 5 seconds
Get Our Chrome Extension
Get transcripts instantly without leaving YouTube. Install our Chrome extension for one-click access to any video's transcript directly on the watch page.