Transcript for:
Introduction to Manual and Automation Testing

all right so hi everyone welcome you all so  in the today's session mainly we will start   with the introduction part like what is manual  testing and what is an automation testing and   we'll see some basic things and then uh we'll  discuss something about uh selenium and after   the session uh if you have any queries or you  can unmute and you can ask and meanwhile if   you have any questions you can put everything in  the chat box immediately I'll try to answer them   and uh at the end of the session uh I will show  you what are the things we are going to learn   as part of this course and what are the things  you are going to get and how this training will   help you or all those uh General things we will  talk and before that let us start so the inaction   part and uh people came from different type of  background so some of have already experienced   in manual testing and Automation and some of  them are completely new to this training and   new to software testing so you guys don't need to  worry so I'll start from very basic basic and uh   even though if you don't know manual testing  still you can understand the concepts and if   you want to learn manual testing I can share  some of the videos and you can just go through   them and can watch them you can understand manual  testing Concepts later okay parall you can learn   them no problem so let us start today's session  and if you have any queries uh you can post in   your chat box and at the end of the session I  can unmute and you guys can ask your questions   and all all audios and uh videos everything is  muted so just to avoid the disturbances at the   end of the session I will everything is unmuted  okay guys now let us start with introduction part   so before going to automation testing so what  is software testing so people we already know   something about software testing we already have  some experience you guys can tell what is software   testing means so software testing is what is a  process of finding the bugs or finding the diff   effects in a software so what is the main goal of  software testing main goal of software testing is   to find or identify the bugs and also we need  to release the quality product to the customer   so that's the main intention of Performing the  software testing right so software testing is a   process of finding defects in a software and  the main goal of software testing is we have   to release a quality product to the customer or  client that's the main objective or goal of the   software testing right but why in which way we can  test the software different ways are there so we   can do manual testing or we can do automation  testing right so what is difference so what is   manual testing and what is an automation testing  so manual testing means we don't use any tools we   can simply test the software manually so we don't  use any tools right so simply we can call it as a   manual testing and uh if I use any automation  tools so so through automation tools by using   automation tools if we perform any testing we can  call it as a automation testing right these are   the only two approaches which which we have either  we can do manual testing or we can do automation   testing right so if you want to do manual testing  we will perform the testing without using any   tools so here the tester will perform the tools so  performing the testing without using any tools is   known as a manual testing and here the tester or  person will do the testing we don't use any tools   right but while performing manual testing we have  certain challenges so to overcome those challenges   automation tools came into market so these are  only two approaches which we have either we can   do manual testing or we can do automation testing  but why we need to go to automation testing so we   have certain challenges okay so let us understand  what are those challenges while performing manual   testing and then we will try to understand about  automation testing okay so while performing   manual testing as I said manual testing is we can  simply test that application or test the software   manually without using in tools but what are the  challenges in the manual testing so there are   majorly two challenges I think people already  heard about this the first thing is retesting   retesting is one challenge second is regression  testing have you heard about these STS retesting   and regression testing so these are the most two  important type of testings we normally conduct   during manual testing retesting and regression  testing retesting and regression testing so what   is retesting retesting means again and again we  will conduct testing or we will do testing in   reputation mode right everything we will do again  and again same test we will execute multiple times   same kind of a test we will repeat multiple times  which is basically called as retesting retesting   examples for example uh let us take a login test  let's say you have an application in that we   have a login screen so you want to test the login  screen so to test the login screen only with the   valid username and valid password is enough so we  need to also perform negative testing means what   when you provide valid username and valid password  the login should be successful and if you provide   invalid user invalid password login should not be  successful so that is not enough for testing right   we need to test the same uh login screen with the  different type of inputs like valid username and   valid password valid username and invalid password  invalid username and valid password blank username   and blank password so different combinations  of data we have to use while performing the   testing so what exactly we're doing there we are  executing the same test case or same step steps   multiple times with the different sets of data  which is basically called as retesting executing   the same test case again and again multiple times  in multiple Cycles so which is basically called   as a retesting but what is the challenge while  performing retesting what is the challenge while   performing retesting so we need to spend lot  of time and effort right so if you want to do   the same task multiple times again and again it  takes some time and also we need to put lot of   effort right in every cycle of execution we have  to put lot of effort so this is time consuming   process and also we need to put lot of effort so  that is a major challenge while we perform the   retesting he cannot skip this okay retesting we  have to do sometimes while performing the manual   testing that's a major challenge second thing is  regression testing which is also most important   so what is regression testing anybody know  about it what is regression testing regression testing am I audible everyone yes am I audible to everyone  okay so what is regression testing   so retesting we have understood  so executing the same test case   multiple times again and again we call it  as a retesting so what is the regression testing okay so regression testing I'll give you  simple example we can understand very very easily   so in the real time so whenever you want to test  the software right what is the prerequisite for   that we have to get it from the developer right  so what is the developer task what is a what is   a developer task so what developer will do  developer is responsible for developing a   software so for that what they will do is they  will write the code right they do some kind of   a code or they do programming and through which  you can develop they can develop the software and   once they develop some piece of software they  will provide that software we can call it as a   product or we can call it as a build a piece of  software which contains some functionality and   they will provide to QA or for tester so now what  is the responsibility of the test we have to test   the software whether it is working according to  customer requirement or not right that's the main   responsibility of the software tester as a tester  what is our role we have to test the software   according to the customer requirement whether  it is working according to client requirement   or not all functionalities are working fine or  not that's a major responsibility of the tester   so developer will not provide all the features it  once single build okay they develop the software   in bits and pieces let us say customer says  I have 10 features should be there in your   software or an application developer they don't  develop all 10 features in one single build okay   so they will develop one or two features in the  first build and they will provide to the testing   and after that again they will develop another  two to three features and again another build   provide to the testing so this will happen in  multiple Cycles and when you reach the last   cycle of the testing then you will find all the  features available in the software so nothing   will happen in one shot okay the developer will  develop the software they will add more number   of features in multiple cycles of the testing  and the same time tester also will test those   features in multiple cycles of the testing  okay this is basically called stlc software   testing life cycle process so during the process  what happens is let me take a simple example so   that you can understand let us say here I have  a development team and here another side I have   a testing scene so developer is provided bill  number one to the testing team okay in the bill   number one let us say I have executed let's say  10 test cases okay 10 test cases have executed   in build number one I have 10 test cases to  totally I have planned for build number one   so I have executed these 10 test cases in build  number one okay in cycle one and now in 10 test   cases let us say eight test cases are got passed  only two test cases are got failed okay eight test   cases are got passed in the first bill two test  cases are got failed now what we will do as a   tester what we need to do we have to report the  box to the developer so these two just just a second okay I think now it is fine okay okay so now in the first cycle of  testing eight test cases already passed   now let us say two test cases got failed  okay now as a tester what you will do you   will report the bugs right so these two test  cases are got failed you will report them now   the developer will provide you next build  let's say build number two so in the bill   number two developer will Implement some of  new features okay some new features plus bug   fixes some of new features and some bug fixes  so in the Bild number two you will get some   new features as well as some bu fixes okay just  a moment guys I think something is wrong hold on right so in the build number two the developer  will add some more new features along with some   bug bug fixes okay now as a tester what is our  responsibility what are the testings we do in   the second bill so first priority will be given  to the bu fixes right so whatever the test cases   are got failed in the previous build we reported  them now in the second build the developer fixed   them now in the second Bill we have to test  whether these two test cases are passing or   not and along with them we should also test  the dependent functionality what is dependent   functionality means sometimes what happens is  developer will modify the code right so to fix   these bugs they will modify the code so because  of that modification what will happen not only   modifications sometimes the developer will add  some new features so because of those changes   the existing functionality will be impacted  right if you developer changes something in   the application definitely some existing code  will be impacted right so not only these two bu   fixes along with them we should also verify some  dependent functionality or some impacted areas of   the application so that is basically called  as a regression testing regression testing   means what whatever bug fixes the developer is  provided we will verify those bugs are working   fine or not apart from this we should also  verify the existing functionality we have   to make sure the existing functionality should  not be broken Bren the existing functionality   should not be broken because of changes done by  the developer that is called regression testing   simple way we can understand like this okay  so the regression testing we have to do in   every cycle because in every cycle some new  functionality will be added or some bug fixes   will be added in every cycle in every build right  so definitely we have to perform the regression   testing in every Bild and retesting is also part  of regression testing so whatever test cases are   failed in the previous build again we have to  reverifying in the second build right this is   part of retesting but because of this change  impacted areas also we need to cover as part   of testing that is a part of regression testing so  now you understood what is the difference between   retesting and regression testing retesting means  what executing the same set of test cases in the   next cycle or in the next build that is called  retesting regression testing means what not only   those retest cases we should also make sure  the other existing functionality should not   be broken because of this change that means  impacted areas also we have to test that is   called regression testing so these two type  of testing will be continued in every cycle   of testing in every build which is provided by the  developer so these two testings are time consuming   other thing is we need to put lot of effort  so these are the two major challenges we face   while performing the manual testing especially  when you do retesting and when you do regression   testing we Face challenges so to overcome these  two challenges automation tools will be used so   automation tools will reduce a lot of time  and effort okay so this is all about manual   testing so what is manual testing the testing the  software without using any tools we call it as a   manual testing and uh while performing retesting  and regression testing we Face challenges means   what we have to spend a lot of time because  there is a reputation and the same test cases   we have to reexecute multiple times that needs  a lot of effort so retesting while performing   retesting while performing regression testing we  Face challenges while performing manual testing   so now let us understand why we need automation  testing so to overcome these two challenges we   go for automation tools now what is an automation  testing automation testing means that performing   testing by using tools right we use any tool it  can be any automation tool third party tool we   perform testing which is called as automation  testing performing the testing with the help   of tools known as automation testing tool is  nothing but what again it is a another type   of software a tool is nothing but a software so  performing the testing with the help of tool or   tools sometimes we can use one tool sometimes we  can use multiple tools so performing the testing   with the help of automation tools is known as  automation testing is known as automation testing   but how exactly automation tool Works how can we  overcome these two challenges by using automation   tools so before understanding how we can overcome  these two challenges we need to know how exactly   automation tools work so how exactly automation  tools work so let me just give you uh an example   with that we can understand how exactly automation  tool works and also why we need programming so   while using automation tool we have to know some  programming concept so why we need programming so   that also we'll try to understand understand  okay so now let's see how exactly automation   tool works if you do manual testing let's say  you have an application let's say this is your   application under test so whatever application you  are going to test which is called AS application   under test now you have a manual test case  so what is the test case what is a test case test case is nothing but a step by- step  action which we need to perform on the application   right for example let us take a login so what  is the test case for login we need to launch   our application then provide your valid username  password click on submit button then check the   hom page is displayed or not so these are simple  steps which is called as a test case so test case   is nothing but what step by step action which we  need to perform to test that application so while   performing manual testing you have a test case  this is your test case now as a manual testing   what is your job let's say you are manual tester  what is your job you have to read each and every   step in your manual test case and you have to  execute that step in the application and you   need to check expected and actual results are  same right suppose you are performing some step   you're executing some step on the application and  what is your expected suppose you are opening your   url of application on the browser so you need to  check the homepage is displaying or not so after   providing valid username and valid password  clicking on submit then you have to check the   home page is displayed now a login page after  successful login let's say the dashboard page   is displayed or not so that is our expected so  what is the test case means test case contains   a step by-step action which we have to perform  along with that we need to check expected and   actual results are same or not so if you find any  mismatch between expected and actual you can find   that as a bug and you can report to the developer  that is a process of testing manual testing part   now come to the automation so in automation what  you will do is you have application under test   whatever application you are going to test  which is called application under test you   have a manual test case okay you have a manual  test case this is your manual test case now as   an automation tester what you will do is you will  convert this manual test into test script this is   your test script test script is nothing but an  automation format so whatever manual test case   you have you have to convert the test case manual  steps English steps into automation format test   script we call it as automation test script  okay and where you will write this automation   test script who can understand this test script  automation tool can understand so whichever tool   we are using automation testing tool we have to as  an automation tester we have to provide or we have   to provide the instructions to the tool whatever  steps we have written in the manual test case same   steps we have to provide to the automation tool  now tool can understand those steps and perform   the actions on the application under test this  is the process how exactly automation tool works   so as an automation tester we have to provide the  steps we have to provide instructions to the tool   then tool can understand it and accordingly it  will perform the actions and find out expected   and actual results are same or not but how tool  can understand our steps because normally in in   the test case we will use English language and  while writing the test case but how the tool can   understand the language so we have to provide the  instructions in particular language that the tool   can understand so tool also can understand some  language if the tool understand Java language   then we have to provide the steps in the Java  language we have to provide all instructions in   Java if the tool can understand python then we  have to provide all instructions in Python if   the tool can understand any other language we  have to suppose tool can understand JavaScript   language then we have to provide all instructions  in JavaScript language so the tool can understand   a particular language in whichever language  the tool can understand in the same language   we have to provide all instructions to the tool  and then only the tool can understand and Tool   will able to perform the actions automatically on  the application so there exactly the language come   into picture so why programming language is most  important for automation because if you want to   work with the automation tool you have to learn  a programming language if you know programming   language effectively then you will able to  provide instructions to the tool so that you   can use the automation tool very effectively so  that is the reason we have to learn programming   first and then you have to learn how to use  a tool we cannot directly jump into the tool   first we have to know the programming and once  you know the programming Concepts then you can   you will know exactly how to use automation tool  okay so now how Auto aut testing or how automation   tools will overcome these two challenges  retesting and regression we all discussed   these two challenges retesting means what we can  execute the same test case multiple times which   is retesting regression testing is nothing  but what in every cycle of testing we will reverifying fine that's called regression  testing but how can we overcome these two while   using automation tool or automation testing so  automation tools mainly designed for to overcome   these two challenges guys initial days automation  came into Market because of these two challenges   only retesting and regression testing but later  on what happens is automation tools we are using   for everything not only retesting and regression  test cases whatever the functionality we want to   test everything we will test through automation  but initially the main purpose of automation tool   is to perform the retesting and regression testing  okay now let us understand how can we overcome the   challenges while performing retesting and request  testing using automation tool let us say you have   one test case let's say take retest case you  have a test case let's say I have multiple   steps in my test case I want to execute the same  steps multiple times with the different sets of   data let's say have different sets of data 1 2 3  4 let's say I have 100 inputs on there sometimes   if a test case is very complex you need to prepare  test data first okay now I want to repeat the same   steps with the different sets of data same steps  I want to repeat so how can we do this through   automation we will specify this test data in some  external file it can be notepad or in Excel file   it can be PDF file or any some other external  files so we will maintain the data or it can be   sometimes a database so we'll maintain the test  data in some Source third party applications and   and we will write your automation script all  steps and this automation script this is our   automation script will read each and every input  and perform actions it will read each and every   input automatically and then the same step will  be repeated by the tool the tool will perform   the actions so once you write your automation code  that is onetime job so the some next time onwards   automation tool will automatically perform the job  by taking different type of inputs so if I want to   do the same thing manually it takes a lot of time  right so I have 100 input if you have four to five   inputs we will finish within 5 to 10 minutes but  if you have 100 inputs thousand inputs we want to   repeat the same thing for multiple times it is  very very difficult task right so exactly here   we use automation tools so once you write your  automation code and that will automatically take   the input from the different sources and perform  the actions so lot of time and effort will be   reduced but what about regression testing how can  we overcome regression testing challenge so as we   discussed what is regression testing same set of  test cases we want to execute in multiple Cycles   let's say in the first cycle let's say in first  cycle of testing you have executed 10 test cases   and eight test cases are got passed let's say two  test cases are got failed okay 10 test cases eight   test cases part two test cases got failed so in  the first cycle what you will do is whatever test   cases are already passed you will automate them  okay they will automate those test cases in the   cycle two what you will do these two test cases  whatever is got failed you will test them manually   these two test cases you will execute manually  and because of do these two changes maybe the   rest of the functional is impacted right so these  eight test cases again we have to execute why we   need to execute these eight test cases they are  already passed in the cycle one right but why we   need to execute them again because the changes  are happened in the second build the changes are   happened so because of these changes what happens  the existing functionality may not work properly   so again what we have to do these eight test cases  again you have to execute in the second cycle and   because you already automated these eight test  cases in the first cycle itself in the second   cycle you will execute these eight test cases  through automation because you already automated   they are already passed in the earlier build so  they are already automated so in the next cycle   you will run those eight test cases automation  tool by using automation tool in that way we can   reduce the time and effort and in the second cycle  let's say these two test cases also passed then   what you will do as soon as the test cases are got  passed you will also automate those test cases so   like this in every cycle there are certain number  of test cases will be there for execution through   automation so that will reduce lot of time and  effort so that's how we can overcome retesting   and regression testing challenges while using  automation tools so now here we understood two   important parts one is how exactly automation tool  works so as a automation tester we have to provide   instructions to the tool how we can provide  instructions to the tool through the language   language is a medium like if the tool understand  Java then we have to provide all instructions   in Java language if the tool can understand  python then we have to provide all instructions   in Python language so where exactly the language  programming language come into picture right and   automation tool can understand those instructions  and accordingly it will perform the action on the   application automatically so almost every  automation tool will work in the similar   way the language may be different the internal  architecture may be different but the the way   of working how we can understand the instructions  how the how actions to be perform the application   is almost the same okay the language will be  different okay some tools will understand multiple   languages and some tools will understand only one  or two languages it depends how automation tool   is got designed if I look at s selum supports  multiple languages suppose if you know Java you   can use selenium if you know python you can use  selenium or if you use if you know JavaScript you   can still use selenium so like that so some tools  will understand multiple languages some tools will   understand just one or two languages so understand  this so what is an automation testing automation   testing is performing the testing with the help of  tools by taking help of automation tools we will   perform the testing which is basically called  as automation testing so now we understood two   important points how automation tool works and  why programming is required for automation I hope   everybody is clear so far can you please confirm  in the chat window are you guys clear so far so   we understood just basic stuff what is manual  testing what is an automation testing and what   are the challenges we have in the manual testing  and how can we overcome them by using automation   testing and why programming is most important to  learn automation testing tool without programming   you can't understand the tool you can't work  with the tools so programming is must should   not in-depth programming at least you have to know  how to write the test case okay so we will discuss   later so this is the basic introduction part  we understood now let us talk something about   selenium okay so we are going to learn selenium  so because we have to know some basic stuff about   selenium so what is selenium so there are multiple  tools in the market to perform automation testing   but why especially we have to learn selenium  what is selenium what are the advantages what   it will support what it will not support okay and  we will try to understand this so what is selenium   there are multiple definitions are there let me  just put all the definitions the first important   thing selenium is basically web automation tool we  should not say selenium is a tool tool is nothing   but what a single component which we can download  install and we can use it that is basically called   as a tool right but in reality selum is not a tool  actually it's a collection of multiple components   or it's a collection of multiple libraries but  generally we call it as a tool but reality as per   the definition it is not a tool but even though  if you call it as a tool nothing wrong in this   in the normal terminology so the first definition  of selum is it is a web based automation tool or   we can say library so library is a right word  instead of using tool using library is a right   terminology so selum is a webbased automation  tool or a library what does it mean why we are   specifically saying web based automation tool  web based automation tool or Library means selum   support only web based applications selenium  supports only web- based applications we can   test only web based applications so do you  know what type of applications are there in   the market guys can anyone tell me what are  the different types of applications types of   applications in the market I'm talking about  types of applications yes different types of   applications you have web based applications or  we can say web applications right web applications   and second is what desktop applications desktop  applications and third thing is what nowadays   it's more famous mobile applications or mobile  apps so mainly in the current market these are   the three different type of applications which we  have web- based applications desktop applications   and then mobile applications now let us understand  the difference what is web based application web   based applications means we can access those  applications through browser right so actually   those are resides in some servers remote  servers and we'll try to accessing those   applications using browser so nowadays whatever  applications we are accessing through browser   all are webbased applications e-commerce portals  banking applications right social applications   linked in Facebook these are all comes under  web applications so through browser we are able   to access those applications they are called Web  applications and what do the desktop applications   means desktop applications those applications  we can just download and install on your local   system and you can use it you don't need any  internet for them but if you want to use web   application you need internet con you need to  connect to the internet then only you can work   with the web applications through the web you  can access but desktop applications you can   still use without having internet examples  can you give me some examples for desktop applications yes so whatever applications we are  using internally like msxl word PowerPoint notepad   calculator right so these are all comes under  desktop applications so mostly will download   those applications and we can install it on your  local system and you can try to use it you don't   need internet for them right if you want to use  MSW document you don't need internet if you want   to use notepad you don't need internet they're  all called desktop applications now the third   type of applications are what mobile applications  so nowadays these applications are very famous you   know already what is mobile applications we are  using Whatsapp LinkedIn all Twitter right in your   mobile so through Play Store or through Apple  Store you're trying to install the application   apps mobile apps right they all comes under mobile  apps mobile applications so these are the three   types of applications currently which we have in  your Market web applications desktop applications   and mobile applications right now when you come  to the selenium selenium support only web based   applications it is designed only for web based  applications not for anything else so we cannot   test desktop applications we cannot test mobile  applications we have to use some different tools   for them but selim is only meant for what web  based web based applications so cim is a web   based automation tool or library now we will try  to understand some more definitions selenium was   originally developed by Jason Haggins in 2004 from  thoughtworks actually he is a this is the name   of the developer Jason Haggins he's a developer  who was working in thought Works company during   2004 so in this particular time in the market uh  desktop applications were there in the market but   web applications are newly coming into the market  so during that time internet is becoming popular   so web applications started coming into the market  during those days okay so that time qtp was there   qtp or UFT the tool was using people uh for both  web as well as desktop applications but now what   they want to uh do is they want to develop uh a  software or a tool through which they wanted to   test web application and that to open source mean  they don't want to buy anything external tools but   they want to develop themselves a tool through  which they want to automate the web application   so they have started implementation and that is  becomes a selenium later so selum is basically   started by Jason haggis he is a developer who  was working in 2004 in thoughtworks company okay   so he is a developer he started and after that  what happens there are so many other developers   contributed their time and effort and uh they  make they made the Sim as a community based   tool it is running by through community means what  community based tool means what there are multiple   Developers for multiple companies they're spending  their time and effort and they have contributed   and slowly they have added so many features into  selum then they make as a community based tool   because it is running through Community run by  Community itself anybody can contribute if you   have some basic knowledge if you you have if you  want to develop some new features in anybody can   contribute it so this is totally open source  open source means what anybody can customize   it and we can use it freely we don't need to buy  any license for that that's called open source   okay so selm is started by Jason Huggins in 2004  from towork company and initially they have used   that only in their companies and later on after  making that as a community based tool everybody   started using it and during 2010 2011 those days  and those years it becomes very popular and it is   open source as I told you what is open source  means anybody can customize the code anybody   can add new features and uh it is totally free  of cost we don't have any license or we don't   need to pay anything for [ __ ] just we need to  download the library do some configuration you   can start using it total it is free and it is  a collection of multiple component as I said in   the beginning Sim is not a single tool actually  it's a collection of multiple components which   is having ID web driver and git in the initial  days we have also RC component remote control so   collectively we call it as a selenium selenium  ID integrated development environment selenium   web driver selum grid selenium RC remote control  instead of RC they have replaced with web driver   so now RC is outdated now web driver is already  deprecated and uh web driver is replaced so ID   web driver and grip so these three components  collectively we call it as a selenium but majorly   we use web driver majorly we use web driver  for our automation okay so these are all basic   introduction what is celum celum is a web based  automation tool or Library which is developed by   Json hains in 2004 from thoughtworks and after  that they made it as a community based tool   becomes open source and totally free of cost and  which contains a multiple components ID web driver   G and majorly we use web driver selum if anybody  talking about selenium they are basically talking   about selenium web driver and every component is  having their own usage ID for recording playback   web driver is for automation grid is for execution  so every tool is having every component is having   their own usage later we will discuss in detail  here I'm just giving very high level over you   okay so this is all about what is selenium okay  so the question is why there was no development   around desktop applications means supporting  both web and desktop okay so [ __ ] initial   days their requirements totally different okay so  they wanted to just automate only web application   that is their requirement in initial days so  that is the reason they have just concentrated   only on the web based applications and the tool  which support only web- based applications and   if you want to test any desktop applications  or mobile application there are some other   tools are available in the market even there  are some tools which will support everything   so if you want to test web as well as apas or  as well as mobile apps desktop apps then there   are some tools are available in markets tools  are available in Market okay but why [ __ ] is   meant for because those days they want to test  only web applications they don't have any type   of supporter their goal is that actually  so accordingly they have concentrated so   they have focused only on web applications  so for that they develop the selenium part   so that's the reason SEL is only for web based  automation it doesn't support any other type of application okay fine so General things I  will talk at the end of the session first   uh concentrate on this okay once the topic is  done then I will discuss the general things so   now we understood what are the different type  of applications are there in the market and   what type of applications the celum support only  web based applications celum supported and rest   of the type of applications we use a different  tools for desktop applications we go for UFT or   CQ or Auto for mobile applications we use appm  or some other tools okay but web applications   we will prefer to use selenium okay so now let  us try to understand what it will support what   it it will not support because every tool is  having their own advantages and disadvantages   no tool is perfect in the market if you take  any tool definitely there are some advantages   definitely there are some disadvantages also  there okay now when you come to selenium so let   us first understand what are the advantages why we  need to uh learn selenium okay let us talk about advantages just a second open source tool and pre of cost so the  first advantage of selim is what open source tool   and it is a free of cost so why people are started  learning and started using companies because it's   a open source open source means what as I already  told you anybody can do modifications in the tool   itself if you want to add some more features you  can just download selenium library and you can   develop something and you can check in so that  particular change or that particular feature   is available in the market for the users it is  available open source means what it is easily   customizable and moreover it is free we don't  need to buy any license for that so that is the   reason selum becomes popular in the market in the  initial days but uh later on there are many tools   came into Market they are also open source and  freely available but initial days when you come to   automation part automation testing part the open  source market is started from selenium okay so   it is totally open source and free the second one  mainly it will support multiple operating systems   multiple browsers and multiple languages these are  the three main features from selenium so that is   the reason selenium become very popular in the  market it support multiple operating systems so   normally if you take any tool it will support just  one or two operating systems but selenium support   multiple operating systems what does it mean we  can install and we can use selenium or Windows or   Mac or Linux or Unix whichever operating system  you have you can configure selenium and you   can use use it so that is supporting multiple  operating support is there multiple operating   systems it will support multiple browsers also it  is supported which is another main main important   feature we should have especially web web based  automation tool okay so why it is support multiple   browsers especially when you do web testing or web  application testing as part of our requirement we   should execute our test cases on multiple browsers  so like Chrome browser we have Firefox browser we   have edge browser Opera browser Safari browser  there are different browsers are there in the   market so we have to execute our test in multiple  browsers why we need to test why we have to   execute all our test in multiple browsers that  is basically called as a cross browser testing   because we don't know exactly which browser the  client will use some of them like Chrome browser   some of them like edge browser some of them will  like Firefox browser right so our application   should work in multiple browsers in the similar  way right so sometimes what happens is when you   open your application in different browsers you  will face some UI issues the same kind of elements   will not be displayed on another browser so most  of the times graphical user interface issues you   will get so to solve them you have to first  execute our test in m multiple browsers which   is basically called as a cross browser testing  cross browser testing means what we can execute   our test cases and multiple type of browsers  so through automation how it is possible if   the tool supports multiple browser execution then  it is possible right so once you write your test   case we can execute it on different browsers how  it is possible because the tool will support it   if the tool supports multiple browsers then we  will able to execute our test cases on multiple   browsers that is possible so celum supports  multiple browsers multiple operating systems   and also multiple browsers now third important  point is support multiple languages it will   support multiple languages Java python Shar Ruby  JavaScript these are the main languages currently   it is supporting you don't need to learn every  language at least if you know one language you   can start using with that language if you know  Java you can use with Java combination if you   know python you can use with python combination at  least one language you should know to use selenium   so multiple languages support is there if you  take any other tools it will support just one   or two languages mostly only one language the  tool will support Max one or two languages but   San will support different type of languages and  moreover we can also integrate some third party   tools suppose sometimes selenium is not provided  certain uh features for example whenever you want   to work with Excel sheet or some databases celum  doesn't support that because celum is only for web   based applications it can automate web application  it doesn't support anything else but still if you   want to work with Excel sheet or if you want to  work with the database we can we can integrate   some third party tools so that is facility which  we have so integration of third party Tools in   slim is also possible okay so in the same project  we should not use multiple languages that is not   right requirement okay what if you deal one single  project you will take Only You will choose only   one specific language okay whenever you want to  use whenever you want to work with a particular   project you will choose only one language  don't use multiple languages for one single project okay just a second okay so these are the advantages guys it's  the open source tool it's completely free and just a guys can you hear me can you hear me okay so yeah let's continue so these are the  advantages of selum so now let us discuss some   of the disadvantages so every tool we have some  limitations okay now let us try to understand   limitations okay four and fifth point so fourth  point is multiple languages it will support   multiple language in the sense you can use one of  the language so you can write automation script   in Java or you can write automation script in  Python sh or whichever language you want that   is called multiple language support and the third  party tools of support in the sense what suppose   you want to work with the Excel sheet especially  when you perform the retesting and data driven   testing you have to specify all the test data in  Excel sheets and we have to read the data for our   automation but Excel sheets doesn't supported  by cenum then how can we do it but we have to   use Excel sheet in our Automation in that case  we have to integrate some third party tool which   is not selenium tool like Apache POI we have to  integrate with a selenium then we can overcome   that suppose for example if you want to generate  the reports so once you have executed multiple   test cases and you want to generate some reports  but celum doesn't support reporting mechanism it   doesn't have any reporting support so then what  you will do you have to integrate some third party   tool like test NG extend reports so you have to  integrate with selenium and then we can use them   in our automation so that is called integrating  third party Tools in selenium so wherever you find   some limitation in selenium we can overcome that  limitation by integrating some third party tools   so that is a flexibility which we have in selenium  we can integrate third party Tools in selenium   okay so now only one project we choose one  language we don't use multiple Lang languages for   single project okay if you start uh automating an  application if you start a new project choose only   one language whichever language you know you can  choose only one language throughout the project   now let us understand what are the disadvantages  what we cannot automate using selenium first point   we cannot support uh celum doesn't support window  based applications which we already discussed it   is only meant for what web application Sim is  only for web application so it doesn't support   window-based applications okay it cannot support  window-based applications but how can we overcome   this suppose if you still want to automate Windows  sometimes right especially when you're uploading   the files when you're downloading the files so  those scenarios if you want to automate definitely   we want to deal with the desktop applications  along with the web applications so we can overcome   them by integrating Auto it C robot API again  these are all third party tools as I discussed in   the fifth Point wherever you have some limitation  we can overcome that limitation by integrating   third party tools so these are the third party  tools like Auto ID SQ Robo API by using them we   can automate window based applications that's  the first point but by default selum doesn't   support window-based applications but there are  certain scenarios where we have to deal with   the window-based applications not completely in  those cases we will try to integrate some third   party groups now the second thing is reporting not  supported this is another limitation which we have   in selenium reporting is not supported means what  how can we overcome this problem reporting is not   supported so we have to again integrate with the  test NG external reports all those things so by   integrating those things we can by integrating  those things we can overcome reporting Sim is   only for web based application it doesn't support  reporting mechanism but at the end of the day we   need reports right while executing your test cases  you have to generate some reports for that we have   to take the help of test NG and external reports  which we can integrate in selenium okay just a moment I'm just reconnecting guys just hold on yeah now the third limitation cannot support  Excel files as I said before when you perform   data driven testing when I use Excel she sheets  [ __ ] doesn't support it but we have to use it   we have to use Excel sheet for specifying the  test data again we have to integrate Apachi   POI this is again third party Library which you  have to integrate with selenium and graphical   things and captas are not supported and we don't  recommend to automate them also because graphs   are more dynamic in nature based on the data  the graphs will keep changing and captures are   especially introduced for security reasons so  we cannot break them so those things we can't   support we don't automate those type of scenarios  these are the diff disadvantages and we can say   limitations in selenium so every tool is having  some limitations similarly selum is also having   some limitations but there are more number of  advantages are especially it will support multiple   operating systems multiple browsers and multiple  languages and moreover it is completely free of   cost so that that is a reason selenium becomes  very popular in the market there a that's the   reason most of the companies are trying to use CM  it is having more number of features and moreover   it is totally free they don't need to uh spend  any budget on that so that's the reason selum is   becomes very popular so the fourth disadvantage  is it cannot support Excel files especially when   you're working with the re data driven test cases  data driven test case is nothing but what we have   to prepare the test data in our Excel sheets or  database or some Notepads for example let's say   I have a login screen just try to understand okay  I want to provide the username and password then   I want to click on the submit button so I want  to test this login screen with the different   type of inputs like valid username valid password  invalid username invalid password valid username   invalid password so different combination valid  username and valid password valid username and   invalid password invalid username and valid  password blank username and valid password   valid username is the blank password so these  are the different combinations of data now if   you write your automation test script you have to  run this automation test with the different sets   of data with all combinations of data you have to  execute so automation script we can implement by   using selenium this we can do it but how to read  the data from this Excel sheet we will put all the   data in Excel sheet but how to read entire data  into your automation test script so celum doesn't   support any external applications but we can  integrate there is Apachi Foundation is provided a   package called POI in the upcoming class sessions  I will discuss in detail okay what exactly they   are so these things we can integrate with selenium  so that we can read this entire data from Excel   sheet means indirectly Excel sheet support is  provided through Apachi POI because celum doesn't   support directly okay so celum cannot support  Excel files directly but how can we achieve this   through Apachi POI we can achieve this this  is the limitation this is a disadvantage but   still we can overcome that disant by integrating  third party library or third party tool which is   called Apache POI same thing here also reporting  is not supported what is reporting means suppose   you have 100 test cases you have executed so  you have to get some report right how many test   cases are passed how many are failed how many are  having bugs so all this information you want to   generate some Consolidated report that's called  a report that report shows everything the execu   status but that report should be generated by your  automation test script you don't generate your own   report your automation should itself should able  to generate the report but celum don't have such   feature celum can automate web application can  execute your test cases but finally it cannot   generate any report for you so but the reporting  is very important in automation reporting is very   important at the end of the day how your team will  know how your leads will know how many test case   you have executed what are fail what pass how  much percentage of tests are executed how much   percentages got failed how they will know exactly  they don't sit in front of you and they don't see   your execution part right finally they need only  report your management your leads read report so   you have to share that report to your leads once  your automation is executed so that reporting   mechanism is not there in the selenium it doesn't  support any reporting mechanism but we have to   generate the reports that is is mandator required  for that we have to use test NG and extern reports   these are also third party tools we are going  to integrate with the selenium then we will able   to generate very attractive reports okay clear  everyone graphs and captures we can't automate   graph is nothing but what if you have some data  like this it will generate the graphs like this   so these type of scenarios we cannot automate  why because the graphs is more dynamic in nature   means what data is keeps changing obviously  the graph is also keeps changing so we cannot   automate this captures are there sometimes uh in  your application there will be some capture you   have to scan this right so this is provided  because of security if your automation code   is bro break this particular capture what does  it mean you are violating the security policy   so the captures cannot be breakable through your  automation so such type of scenarios also we don't   automate first of all celum doesn't support it  okay so guys everybody is clear about advantages   and disadvantages selenium advantages what are  the advantages and what are the disadvantages   but there are some disadvantages or we can say  limitations even though there are limitations   we can still overcome them by integrating some  third party tools because they are very important   sometimes we have to interact with the desktop  applications or window based applications celum   doesn't support but we have to take the help  of Auto ID SQ or robot API similarly if you   want to generate the report celum doesn't do that  we have to take the help of test or extern report   similarly celum doesn't support Excel files so we  have to take the help of AP POI because these are   all mandator required for your automation okay  but graphs and capture we don't automate at all   first of all they don't selum not recommended  to automate such type of scenarios so we can   simply ignore them so these are the advantages  or disadvantages we can also say limitations   in selenium okay now finally we will discuss  something like versions what are the different   versions are there in the selenium and when it  is got started so quickly I show you what are the   different versions are available in selenium so  celum 1.x X means it can be any version like 1.x   means what 1.1 1.2 1.3 1.4 all these series comes  under 1.x similarly 2.x means what 2.0 2.1 2.3 2.4   like that same thing 3.1 3.2 3. three and so on so  selum is started from 1.x and in 1.x it is having   only three components selum ID is only for Firefox  browser they have implemented ID is basically for   record and Playback means we can record all the  actions it will automatically generate some piece   of code when you execute that code it will replay  it just record and Playback actions for that ID   it is a plugin which is available for the browser  later I will in detail here I'm just giving very   high level overview and RC is remote control and  grid web driver is not there at the beginning   stage through RC you are able to automate web  applications now from celum 2. onwards uh ID   is still continued on Firefox and RC is replaced  with the web driver component now s 3.x onward ID   is also implemented for Chrome browser and web  driver G is still continued with the some new   features and [ __ ] 4.x is again ID is implemented  for fir Fox Chrome as well as edge browser and   web driver G is still continued with the latest  features now what is the latest version of selum   we can check in the website and this is their  official website if I just go to you can search   for selenium and you will find this web page this  is their official web page selenium official web page you can see on the homepage they provided  these three component selenium web driver IDE   grid these are the three components and if you  go to this downloads you will find multiple   languages these are the five different  languages currently selum is supporting   C Ruby Java Python and JavaScript so we are  going to use Java with selenium so the latest   version is is what 4.2.1 September 4 recently  released version so 4.2.1 is a September 4 is   recently released so we are going to use this  latest version in so still 4.x 12 is a latest   version and it's still continuing 4.x series is  still continuing and all components are already   there so these are the different selenium  verses currently available so we are going   to learn all three components we are going to  use Java as a language and if I come down to   this it is also uh showing other information  like what are the different browsers it will   support so these are the browsers selum will  support Firefox Internet Explorer is already   duplicated because after s Internet Explorer 11  Microsoft is introduced edge browser Microsoft   Edge so it is stopped providing more features  on inter this is all already outdated instead   of this we can use edge browser and Safari is  supported especially for Mac users they can use   celum for Safari and Opera is also supported  so these are the different browser support is   there and come to operating systems currently  these are the three operating systems supported   by selenium Windows Mac as well as Linux so all  this information is available in their official   website this is their official website and  Doc mentation download software everything   we can get it from this website itself and if  you go to the documentation they will provide   the documentation very clear cut documentation  we provided for every language in every language   the documentation is provided if you go to the  web driver so web driver documentation is got   provided all the topics all the concepts are they  provided with some examples in every language   they have provided so downloads documentation and  supported Rel information is they have provided so   this is their official website so everything  we can refer from this website in future if   you want to download or if you want to refer any  documentation everything we can get it from this website okay so these are all selenium versions so guys understood so far so we have  done with some in ction part so what is selum   we have understood what it will support what  it will not support that means advantages   disadvantages and what are the different  versions of selum currently which we have   so we are going to deal with the latest version  in the coming sessions but before start learning   selenium as I said before programming language  is most important so programming language will   play most important role in our automation so  next two to three weeks of time we are spending   good amount of time only on the programming  programming concept only programming so once   you learn programming Java then we will  start selenium web driver I will share   the content what we are going to learn so this  is all about introduction so after that I will   discuss the general things so before discussing  the general things about training curriculum all   those things do you have any questions so far  on whatever the top topics we have discussed so far so OTP Automation and all we can do there is no specific support required  for that so OTP is just to write automation code so far everything is clear please confirm   in the chat box everyone so we  have just discussed very basic stuff so for mobile app testing we have a  different tool called APM so for different   purposes we have a different tools are  available in the market and Sim is only   for web automation whenever you want to automate  web application we will try to choose selum as a option okay multiple tab can be automated  yes the they are all features actually okay   multiple tabs multiple windows okay they are  all we can handle through [Music] automation   okay so this is all about introduction  part in the coming sessions uh we will   discuss in detail so whatever I mentioned here  everything we will learn okay everything like   third party tools also we are going to  learn like test extend report and robot   API even one of them is fine robot API or  sq a of them we can learn and apach P also   we are going to learn so everything whatever  I mentioned here everything we are going to learn okay so this is all  about interaction part in   the next coming sessions we will discuss in detail