2. How many of you are new to test automation?
How many of you use or have used selenium for testing automation?
3. Most common use cases
3
Regression
Testing
Cross Browser
Testing
Data-driven
Testing
4. Selenium is most commonly used for regression testing.
Selenium cross browser testing is at a different scale now with
browserstack and sauce labs providing it as an on demand service
Data driven testing is key to improve your test coverage
Now, these are some common use cases.
Agile and Devops have made these a norm.
Any other common use cases of Selenium you can think of?
Can you also think of some uncommon use cases of Selenium?
5. But, do you know?
Selenium can also be used
for
5
Visual
Regression
Testing
Load
Testing
Synthetic
Monitoring
Performance
Testing
Responsive
Testing
6. Visual Regression Testing: You can take screenshots with Selenium but screenshots in itself will not give you
enough information. Once you start comparing the images to know the differences between your test
executions it will provide lot of insights about changes to your application and test behavior. Applitools has
taken visual regression testing to next level.
What is synthetic monitoring? There are critical flows in every application which are most often used by end
users. These flows have to be functional and performant to make sure end user experience is smooth.
Synthetic monitoring ensures best end user experience by monitoring critical flows in your application
frequently and notify of any issues before your end users are impacted. New Relic, Appdynamics and
Dynatrace have started using Selenium for Synthetic Monitoring
Performance Testing: While you regression test your application you focus on the functionality but
performance of application is equally important. You will have to check your application is loading fast or
not.
Load testing is basically running your performance tests with 100s or 1000s of concurrent users. Blazemeter
uses Selenium for load testing.
Responsive testing: With so many devices in use, it is very important to make sure your web application
renders properly on different resolution and various devices. You have to test your web application to make
sure it is responsive.
7. Are they practical?
○ Selenium Advantage
○ But running tests in real browsers is costly
○ Advantages of load testing with Selenium
○ Advantages of Synthetic monitoring with Selenium
7
8. Selenium Advantage - In my mind biggest advantage of Selenium is that
it helps us in gauging real user experience because the tests are run in
real browsers and behave the way they are perceived by end users
Running load tests in real browsers is very costly but without this you
will not get to know the how your application is perceived by end users.
It is important to balance these out. Solution is to run 1000s of
concurrent users with a tool like JMeter along with 100s of concurrent
users in real browsers with Selenium.
Advantage of load testing and synthetic monitoring with Selenium is it
gives us very good insights of how the application is perceived by end
users.
9. Other uncommon use cases
9
Security
Testing
Accessibility
Testing
Robotic Process
Automation
10. We all understand how important security is for enterprises with news around AADHAAR
data leak, Facebook and Cambridge analytica saga
What is Accessibility Testing? - Accessibility Testing is a subset of Usability Testing,
and it is performed to ensure that the application being tested is usable by people
with disabilities like hearing, color blindness, old age and other disadvantaged
groups.
Proof of concepts are available where same selenium scripts can be reused to perform
security testing and accessibility testing with open source tools. ZAP proxy as an example
for security testing and AXE core for Accessibility testing.
Selenium works very well with all web technologies so given a very good use case I am sure
Selenium can also be extended to automate some of the business processes like a bot.
11. What made this possible now?
Advent of
11
Cloud Service
Virtualization
12. Imagine load testing with thousands of concurrent users on your own
servers and data center. Even with cloud, imagine running so many
parallel sessions in virtual machines. Cloud and service virtualization
gave us the massive scale at unbelievably low costs. Cloud providers like
Amazon AWS, Google cloud along with technologies like docker and
kubernetes have made this possible.
15. Challenges we faced
○ Finding reliable element selectors for dynamic single page applications
○ Reliability of running large number of tests at scale
○ Maintenance of automated tests?
○ Page object model for single page applications?
15
16. Single page applications are the norm now. Latest JavaScript technologies like
AngularJS, ReactJS, EmberJS, VueJS etc are used to build SPAs. Each of these
come up with its own unique challenges like dynamic page loads, elements with
dynamic ids, asynchronous calls etc.
How many of you have faced similar challenges?
We have answers for some of these but we would like to discuss with you offline on
your thoughts specifically around
● Test case maintenance. Can it be automated?
● Page object model or approach to object repository for single page applications
18. These are some of the technological trends. These technological
advancements in the industry will force the QA community to
improve their skills. It is a definite challenge not only for the
testers but also for the entire team to address them. But we can
witness that the testing industry and specifically selenium
community knock down these challenges with their innovations
and research.