What is Selenium ?
Selenium
automates browsers.
Selenium is an open source functional automation tool.
We have testing
which is divided into two streams:
1. One is functional and
2. Another is Non-Functional.
‘Functional Testing’, is
the type of testing done against the business requirements of application. It
is a black box type of testing.
The ‘Non-Functional’,
Testing is the type of testing done against the non-functional requirements.
The testing of software
attributes which are not related to any specific function or user action like
performance, scalibility, security or behavior of application under certain
constraints.
In manual testing our main activity is to write test cases
and these test cases will be executed
manually by some resource like test engineer.
When comes to Automation , all the manual test cases will be
converted to test scripts with the help
of some tools like Selenium, QTP ,Sikuli etc.
The process of
converting manual test cases to test scripts with the help of some automation
tools is called as “Automation”.
So I can use any of the automation
tools to convert the test cases to the test scripts.
So you may have a doubt
, Sir in manual testing we are writing the test cases and executing the
test
Cases ,in test
scripts we are doing the same activity the same test cases converted to test
scripts
and executing it .So what is the use: The main advantage is
we can save time.
Now another questions arises : How much time??
Suppose i am having 500 test cases , per day how many test
cases we can execute??
50/60 test cases can be executed manually per day. So all
the test cases can be executed in 9-10 days. Time . Suppose your lead says that
I cannot allocate you 10 days time in every sprint to execute the test cases,
you have to complete in 4-5 days then what will you do?
If we are executing it in 4-5 days then there can be a
challenge to the quality.
So what’s the solution ,
There can be two
solutions :
1. Add few more resource which can help you to execute tests
in the time frame
2. Or else automation.
Remember that it’s not possible to automate 100% of the application,
majority can be automated but few cannot be
For instance, if the application’s user interface will
change considerably in the near future, then any automation might need to be
rewritten anyway. Also, sometimes there simply is not enough time to build test
automation. For the short term, manual testing may be more effective. If an
application has a very tight deadline, there is currently no test automation
available, and it’s imperative that the testing get done within that time
frame, then manual testing is the best solution.
So here we have 500 test cases out of which 400 can be
automated and rest cannot be , so in 2 days time with manual efforts we can
achieve it.
But how much time will be required to test the remaining 400
cases ? This question is still not being answered?
So my answer is “0” .It will not require any manual QA
intervention when the test scripts are running. We can assign a separate
machine and just via a click the rest can be achieved or the scheduler can
automatically do the rest of the job.
We will be getting the detailed report of the test run i.e.
number of test cases passed/failed/skipped etc. along with the snap shot of the failures.
Once the scripts are stable ,we don’t execute the scripts in
regular timings ,my plan is to go home .So before leaving i will run all the
test cases. Next morning when i come to office everything will be executed
along with screen shots and results.
So here i am not investing any of my time to execute the
test cases.
So the main
advantage is we can save time.
Time is directly proposal to cost and we can maintain
accuracy also. Same scripts can be executed again and again with quality with
accuracy.
Why Selenium why
not any other automation tool like QTP?
1. Open Source
2. Supports multiple languages(java,perl,php, pyton,ruby
etc)
3. Browsers: FF,Chrome ,IE,Safari and Opera
4. Supports the OS like windows,mac and linux.
5. It’s for web applications and mobile applications also.
(Does not support desktop applications)
Suppose i have a web application say gmail which i want to
automate ,in that web application we
have some desktop components say uploading a file .is it
possible : My answer is “Yes” we have a
tool called a sikuli.I will use this tool to use as an adone to selenium to
handle desktop components. “AutoIt” is also there .Some companies are using “Sikuli”
and some are using “autoIT”. to handle desktop components.
6. Its flexible and extendable-reusable.
QTP features when compared to Selenium:
1. Not an open source-Commercial as well as costly
2. Language-VP script (somewhat Java Script)
3. Browser: Main compatible with ie (use ff als0)
4. OS : Only windows
5. For Desktop, mobile and web
6. Flexible and extendable.
Selenium is more flexible and extendable.
How can Selenium be more flexible when compared to QTP ?
Compare java with Vb script : which one is more flexible and
extendable. Its java ,because it’s a proved language ,since 20 years we are
using and still its no-1.That’s the reason companies are using Selenium.