SlideShare une entreprise Scribd logo
1  sur  31
SELENIUM
THE CURE FOR MERCURY POISONING

MICHAEL PALOTAS – HEAD OF QUALITY ENGINEERING EUROPE
OCTOBER 24 2012
EBAY INC. FACTS

• Founded in 1995                                                   • Every 30 seconds, a woman’s handbag is purchased on eBay
                                                                      Mobile.
• Based in San Jose, California
                                                                    • Every 2 minutes, a tablet is bought through eBay Mobile
• 28000 employees worldwide

• >100 million active buyers and sellers worldwide                  • Every week, more than 8,000 cars and 340,000 car parts are
                                                                      sold through eBay’s mobile apps.
• 68 Billion USD transaction volume in 2011
                                                                    • 7,493 tablets sold weekly from April – June;
• 2000 USD transaction volume every second                            enough to cover the surface of 3 Olympic-sized pools.

• >100 million downloads of eBay Inc’s mobile apps

• Mobile transaction volume will double in 2012 to 10 billion USD

• 1.7 million items listed via mobile apps every week

• >10 Petabytes of data in Hadoop and Teradata clusters

• 2 billion page views every day

• 75 billion database calls every day




                                                                       SELENIUM – THE CURE FOR MERCURY POISONING                   2
WHO AM I?

MICHAEL PALOTAS
HEAD OF QUALITY ENGINEERING EUROPE

MPALOTAS@EBAY.COM
MICHAEL.PALOTAS@GRIDFUSION.NET
+41 79 6690708

http://ch.linkedin.com/in/michaelpalotas
http://www.xing.com/profile/Michael_Palotas




                                              SELENIUM – THE CURE FOR MERCURY POISONING   3
Selenium was so named because Huggins, dissatisfied
                       with testing tools on the market, was seeking a name
                       that would position the product as an alternative to
                       Mercury Interactive QuickTest Professional commercial
                       testing software. The name, Selenium, was selected
                       because selenium mineral supplements serve as a cure
                       for mercury poisoning, Huggins explained.




http://news.techworld.com/applications/3272444/open-source-selenium-web-app-test-suite-to-support-iphone-and-android/




                                                                                          SELENIUM – THE CURE FOR MERCURY POISONING   4
SELENIUM VS. QTP JOB TRENDS




                       SELENIUM – THE CURE FOR MERCURY POISONING   5
AUTOMATION IS GOOD…BUT
                                                               Manual
• Tools help, but tools don’t test
• Manual testing is equally important
• Manual (exploratory) and automated testing complement each other




                               Automation




                                         SELENIUM – THE CURE FOR MERCURY POISONING   6
TEST AUTOMATION – WHY?

• NOT to replace people

• To save time and to reinvest that time into manual testing

• To get early and instant feedback

• Regression testing only

• Safety net




                                             SELENIUM – THE CURE FOR MERCURY POISONING   7
SELENIUM
WHAT IS SELENIUM?




                 Selenium automates browsers…that’s it




  Selenium is becoming a W3C standard: http://www.w3.org/TR/webdriver




                                      SELENIUM – THE CURE FOR MERCURY POISONING   9
WHAT DO WE DO WITH SELENIUM?



               End to End functional test automation


                                  Manual
                                   Tests
      Selenium space              E2
                                   E
                                 Test
                                   s
                           Integration Tests


                              Unit Tests




                                     SELENIUM – THE CURE FOR MERCURY POISONING   10
A LITTLE SELENIUM HISTORY AT EBAY
                                            Selenium2 /
                                            Webdriver Selenium GRID
                                 Selenium RC
                  Selenium IDE
Home baked solution




                                        SELENIUM – THE CURE FOR MERCURY POISONING   11
HIGH LEVEL INFRASTRUCTURE

                          ESX

    vCenter
     Server
              Selenium    ESX                        Web
               GRID
                HUB                                Frontend
                          ESX




                          ESX
     TestNG


                          ESX                         API

      Test
      Type                ESX



                                                       DB


                         SELENIUM – THE CURE FOR MERCURY POISONING   12
SELENIUM GRID
Sequential Execution                                              Parallel Execution


                                                                                     Test   Test   Test      Test




                                                              Parallel Execution
 Parallel Execution




                                                                                     Test   Test   Test      Test


                      Test   Test   Test       Test    Test
                                                                                     Test   Test   Test      Test
                       1      2      3          …      4500

                                           Execution Time                                                 Execution Time

Execution time:                                                   Execution time:
7000 minutes (~116 hours = ~5 days)                               60 minutes
                                                                  by using 150 Virtual Machines /
- 4500 end-to-end regression test cases
- 2-3 minutes execution time for each test
                                                                  Browsers using the Selenium GRID




                                                                                   SELENIUM – THE CURE FOR MERCURY POISONING   13
TestNG

• Data Provider

• Dependency management

• Groups

• Listeners + Reports




                          SELENIUM – THE CURE FOR MERCURY POISONING   14
PAGES AND FLOWS

        eCommerce shopping site like eBay
                                    Select
       View                                               Order
                   Review          Payment
     Category                                            Summary
                                   Provider



      Search                         View                 View
                   Update
       Item                        Category              Orderlist



      View          Delete
     Product

    View Item   Shopping Cart
      Page         Page         Checkout Page         Success Page




                                SELENIUM – THE CURE FOR MERCURY POISONING   15
HIGH LEVEL TEST ARCHITECTURE


                   Tests


                Flow Objects

                Page Objects

                 WebDriver


                  Browser




                             SELENIUM – THE CURE FOR MERCURY POISONING   16
PAGE OBJECTS

• http://code.google.com/p/selenium/wiki/PageObjects

• Page objects model the pages and page interactions

• Reduce code duplication

• Reduce maintenance

• Easy international support

• Public methods represent the service of a page

• Can be a subsection of a page

• Don’t make assertions in page objects


                                            SELENIUM – THE CURE FOR MERCURY POISONING   17
PAGE OBJECT EXAMPLE




                      SELENIUM – THE CURE FOR MERCURY POISONING   18
MOBILE TESTING
EBAY’S MOBILE PRODUCTS

 Mobile Web    Android Native App                 iOS Native App




                             SELENIUM – THE CURE FOR MERCURY POISONING   20
MOBILE TEST AUTOMATION REQUIREMENTS

• Use load balancer features of Selenium GRID for parallel execution

• Manage multiple applications / versions / languages

• Native app should not need to be modified

• Native app runtime inspection support




                                              SELENIUM – THE CURE FOR MERCURY POISONING   21
MOBILE WEB TEST AUTOMATION

• We use Selenium AndroidDriver and iPhoneDriver

• Tests are written in JAVA and are similar to web tests

• Tests are only executed on emulators




                                              SELENIUM – THE CURE FOR MERCURY POISONING   22
MOBILE WEB TEST CASE
 Tests
 Flow Objects
Objects
 Page




                       SELENIUM – THE CURE FOR MERCURY POISONING   23
ANDROID APP AUTOMATION

• We created the open source project CALABASH-DRIVER

• CALABASH-DRIVER integrates Calabash-Android into Selenium GRID

• CALABASH-DRIVER offers a Webdriver-like Java API for writing tests




                                          SELENIUM – THE CURE FOR MERCURY POISONING   24
ANDROID APP TEST CASE
 Tests
 Flow Objects
Objects
Dialog




                        SELENIUM – THE CURE FOR MERCURY POISONING   25
AUTOMATION OF IOS APPS

• We created the open source project iOS-Driver

• iOS-Driver integrates Apple’s official tool “UI Automation” into Selenium GRID

• iOS-Driver offers a convenient Webdriver-like Java API for writing tests




                                             SELENIUM – THE CURE FOR MERCURY POISONING   26
iOS APP TEST CASE
 Tests
Objects
 Flow
Objects
Dialog




                    SELENIUM – THE CURE FOR MERCURY POISONING   27
SUMMARY

• Use of open source tools enables innovation from within the organization

• World wide recognition for our work

• Zero attrition in 4 years!



• Solutions are integrated into the Selenium Grid which enables us to scale

• Same concept for automation of Web, Win32, mobile web, native apps

• Extremely low maintenance due to use of page object pattern

• Fast rampup for engineers due to similar approach


                                            SELENIUM – THE CURE FOR MERCURY POISONING   28
CHECK IT OUT ON GITHUB



• https://github.com/freynaud/ios-driver


• http://calabash-driver.github.com




                                           SELENIUM – THE CURE FOR MERCURY POISONING   29
THANK YOU!

COMMENTS?
WE ARE HIRING!

http://ebaycareers.com/

Or contact me: mpalotas@ebay.com

Contenu connexe

Similaire à Selenium - The Cure For Automated Testing

Test Automation and Innovation with Open Source Tools
Test Automation and Innovation with Open Source ToolsTest Automation and Innovation with Open Source Tools
Test Automation and Innovation with Open Source ToolsMichael Palotas
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsDominik Dary
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsMichael Palotas
 
Massively Continuous Integration: From 3 days to 30 minutes
Massively Continuous Integration: From 3 days to 30 minutesMassively Continuous Integration: From 3 days to 30 minutes
Massively Continuous Integration: From 3 days to 30 minutesseleniumconf
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBayDominik Dary
 
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUISPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUIandrew.macleod
 
Selenium vs QTP/ UFT | Edureka
Selenium vs QTP/ UFT | EdurekaSelenium vs QTP/ UFT | Edureka
Selenium vs QTP/ UFT | EdurekaEdureka!
 
Selenium at STPCon - Dallas 2011
Selenium at STPCon - Dallas 2011Selenium at STPCon - Dallas 2011
Selenium at STPCon - Dallas 2011hugs
 
Mobile Testing and Mobile Automation at eBay
Mobile Testing and Mobile Automation at eBayMobile Testing and Mobile Automation at eBay
Mobile Testing and Mobile Automation at eBayMichael Palotas
 
Mobile Test Automation at eBay
Mobile Test Automation at eBayMobile Test Automation at eBay
Mobile Test Automation at eBayDominik Dary
 
Basics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote ControlBasics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote Controlusha kannappan
 
Selenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | EdurekaSelenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | EdurekaEdureka!
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsEliane Collins
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Edureka!
 
Boston selenium meetup: Selenium 2
Boston selenium meetup: Selenium 2Boston selenium meetup: Selenium 2
Boston selenium meetup: Selenium 2epall
 
Selenium Basics Tutorial
Selenium Basics TutorialSelenium Basics Tutorial
Selenium Basics TutorialClever Moe
 
Ted Husted Presentation Testing Ajax Applications Ae2009
Ted Husted Presentation Testing Ajax Applications Ae2009Ted Husted Presentation Testing Ajax Applications Ae2009
Ted Husted Presentation Testing Ajax Applications Ae2009Ajax Experience 2009
 
Testing Ajax Applications
Testing Ajax ApplicationsTesting Ajax Applications
Testing Ajax ApplicationsTed Husted
 

Similaire à Selenium - The Cure For Automated Testing (20)

Test Automation and Innovation with Open Source Tools
Test Automation and Innovation with Open Source ToolsTest Automation and Innovation with Open Source Tools
Test Automation and Innovation with Open Source Tools
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Massively Continuous Integration: From 3 days to 30 minutes
Massively Continuous Integration: From 3 days to 30 minutesMassively Continuous Integration: From 3 days to 30 minutes
Massively Continuous Integration: From 3 days to 30 minutes
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
 
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUISPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
SPA 2009 - Acceptance Testing AJAX Web Applications through the GUI
 
Selenium vs QTP/ UFT | Edureka
Selenium vs QTP/ UFT | EdurekaSelenium vs QTP/ UFT | Edureka
Selenium vs QTP/ UFT | Edureka
 
Continuous Delivery
Continuous DeliveryContinuous Delivery
Continuous Delivery
 
Selenium at STPCon - Dallas 2011
Selenium at STPCon - Dallas 2011Selenium at STPCon - Dallas 2011
Selenium at STPCon - Dallas 2011
 
Mobile Testing and Mobile Automation at eBay
Mobile Testing and Mobile Automation at eBayMobile Testing and Mobile Automation at eBay
Mobile Testing and Mobile Automation at eBay
 
Mobile Test Automation at eBay
Mobile Test Automation at eBayMobile Test Automation at eBay
Mobile Test Automation at eBay
 
Basics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote ControlBasics of Selenium IDE,Core, Remote Control
Basics of Selenium IDE,Core, Remote Control
 
Selenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | EdurekaSelenium Interview Questions and Answers For Freshers And Experienced | Edureka
Selenium Interview Questions and Answers For Freshers And Experienced | Edureka
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
 
Selenium
SeleniumSelenium
Selenium
 
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
Software Testing Tutorial For Beginners | Manual & Automation Testing | Selen...
 
Boston selenium meetup: Selenium 2
Boston selenium meetup: Selenium 2Boston selenium meetup: Selenium 2
Boston selenium meetup: Selenium 2
 
Selenium Basics Tutorial
Selenium Basics TutorialSelenium Basics Tutorial
Selenium Basics Tutorial
 
Ted Husted Presentation Testing Ajax Applications Ae2009
Ted Husted Presentation Testing Ajax Applications Ae2009Ted Husted Presentation Testing Ajax Applications Ae2009
Ted Husted Presentation Testing Ajax Applications Ae2009
 
Testing Ajax Applications
Testing Ajax ApplicationsTesting Ajax Applications
Testing Ajax Applications
 

Plus de Michael Palotas

Berlin Selenium Meetup - Galen Framework
Berlin Selenium Meetup -  Galen FrameworkBerlin Selenium Meetup -  Galen Framework
Berlin Selenium Meetup - Galen FrameworkMichael Palotas
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object patternMichael Palotas
 
Berlin Selenium Meetup - A quick introduction to Selenium
Berlin Selenium Meetup - A quick introduction to SeleniumBerlin Selenium Meetup - A quick introduction to Selenium
Berlin Selenium Meetup - A quick introduction to SeleniumMichael Palotas
 
Zürich selenium meetup mobile and web automation under one umbrella
Zürich selenium meetup mobile and web automation under one umbrellaZürich selenium meetup mobile and web automation under one umbrella
Zürich selenium meetup mobile and web automation under one umbrellaMichael Palotas
 
Agile breakfast St. Gallen - Mindset. Skillset. Toolset
Agile breakfast St. Gallen - Mindset. Skillset. ToolsetAgile breakfast St. Gallen - Mindset. Skillset. Toolset
Agile breakfast St. Gallen - Mindset. Skillset. ToolsetMichael Palotas
 
Mobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructureMobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructureMichael Palotas
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionAgile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionMichael Palotas
 
Testing in the new world-bug prevention vs. bug detection
Testing in the new world-bug prevention vs. bug detectionTesting in the new world-bug prevention vs. bug detection
Testing in the new world-bug prevention vs. bug detectionMichael Palotas
 
Mobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMichael Palotas
 
German Testing Day Keynote - Testing at ebay - a look at a rather unconvent...
German Testing Day Keynote  - Testing at ebay  - a look at a rather unconvent...German Testing Day Keynote  - Testing at ebay  - a look at a rather unconvent...
German Testing Day Keynote - Testing at ebay - a look at a rather unconvent...Michael Palotas
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver SelendroidMichael Palotas
 
Scrum breakfast skillset_toolset_mindset
Scrum breakfast skillset_toolset_mindsetScrum breakfast skillset_toolset_mindset
Scrum breakfast skillset_toolset_mindsetMichael Palotas
 
ebay @ Hasso Plattner Institut Potsdam
ebay @ Hasso Plattner Institut Potsdamebay @ Hasso Plattner Institut Potsdam
ebay @ Hasso Plattner Institut PotsdamMichael Palotas
 
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learnedSwiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learnedMichael Palotas
 

Plus de Michael Palotas (15)

Berlin Selenium Meetup - Galen Framework
Berlin Selenium Meetup -  Galen FrameworkBerlin Selenium Meetup -  Galen Framework
Berlin Selenium Meetup - Galen Framework
 
Selenium - The page object pattern
Selenium - The page object patternSelenium - The page object pattern
Selenium - The page object pattern
 
Berlin Selenium Meetup - A quick introduction to Selenium
Berlin Selenium Meetup - A quick introduction to SeleniumBerlin Selenium Meetup - A quick introduction to Selenium
Berlin Selenium Meetup - A quick introduction to Selenium
 
Zürich selenium meetup mobile and web automation under one umbrella
Zürich selenium meetup mobile and web automation under one umbrellaZürich selenium meetup mobile and web automation under one umbrella
Zürich selenium meetup mobile and web automation under one umbrella
 
Agile breakfast St. Gallen - Mindset. Skillset. Toolset
Agile breakfast St. Gallen - Mindset. Skillset. ToolsetAgile breakfast St. Gallen - Mindset. Skillset. Toolset
Agile breakfast St. Gallen - Mindset. Skillset. Toolset
 
Mobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructureMobile Test Automation using one API and one infrastructure
Mobile Test Automation using one API and one infrastructure
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detectionAgile bodensee - Agile Testing: Bug prevention vs. bug detection
Agile bodensee - Agile Testing: Bug prevention vs. bug detection
 
Testing in the new world-bug prevention vs. bug detection
Testing in the new world-bug prevention vs. bug detectionTesting in the new world-bug prevention vs. bug detection
Testing in the new world-bug prevention vs. bug detection
 
Mobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driverMobile test automation with Selenium, Selendroid and ios-driver
Mobile test automation with Selenium, Selendroid and ios-driver
 
German Testing Day Keynote - Testing at ebay - a look at a rather unconvent...
German Testing Day Keynote  - Testing at ebay  - a look at a rather unconvent...German Testing Day Keynote  - Testing at ebay  - a look at a rather unconvent...
German Testing Day Keynote - Testing at ebay - a look at a rather unconvent...
 
Mobile WebDriver Selendroid
Mobile WebDriver SelendroidMobile WebDriver Selendroid
Mobile WebDriver Selendroid
 
Scrum breakfast skillset_toolset_mindset
Scrum breakfast skillset_toolset_mindsetScrum breakfast skillset_toolset_mindset
Scrum breakfast skillset_toolset_mindset
 
ebay @ Hasso Plattner Institut Potsdam
ebay @ Hasso Plattner Institut Potsdamebay @ Hasso Plattner Institut Potsdam
ebay @ Hasso Plattner Institut Potsdam
 
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learnedSwiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
Swiss Testing Day - Testautomation, 10 (sometimes painful) lessons learned
 

Selenium - The Cure For Automated Testing

  • 1. SELENIUM THE CURE FOR MERCURY POISONING MICHAEL PALOTAS – HEAD OF QUALITY ENGINEERING EUROPE OCTOBER 24 2012
  • 2. EBAY INC. FACTS • Founded in 1995 • Every 30 seconds, a woman’s handbag is purchased on eBay Mobile. • Based in San Jose, California • Every 2 minutes, a tablet is bought through eBay Mobile • 28000 employees worldwide • >100 million active buyers and sellers worldwide • Every week, more than 8,000 cars and 340,000 car parts are sold through eBay’s mobile apps. • 68 Billion USD transaction volume in 2011 • 7,493 tablets sold weekly from April – June; • 2000 USD transaction volume every second enough to cover the surface of 3 Olympic-sized pools. • >100 million downloads of eBay Inc’s mobile apps • Mobile transaction volume will double in 2012 to 10 billion USD • 1.7 million items listed via mobile apps every week • >10 Petabytes of data in Hadoop and Teradata clusters • 2 billion page views every day • 75 billion database calls every day SELENIUM – THE CURE FOR MERCURY POISONING 2
  • 3. WHO AM I? MICHAEL PALOTAS HEAD OF QUALITY ENGINEERING EUROPE MPALOTAS@EBAY.COM MICHAEL.PALOTAS@GRIDFUSION.NET +41 79 6690708 http://ch.linkedin.com/in/michaelpalotas http://www.xing.com/profile/Michael_Palotas SELENIUM – THE CURE FOR MERCURY POISONING 3
  • 4. Selenium was so named because Huggins, dissatisfied with testing tools on the market, was seeking a name that would position the product as an alternative to Mercury Interactive QuickTest Professional commercial testing software. The name, Selenium, was selected because selenium mineral supplements serve as a cure for mercury poisoning, Huggins explained. http://news.techworld.com/applications/3272444/open-source-selenium-web-app-test-suite-to-support-iphone-and-android/ SELENIUM – THE CURE FOR MERCURY POISONING 4
  • 5. SELENIUM VS. QTP JOB TRENDS SELENIUM – THE CURE FOR MERCURY POISONING 5
  • 6. AUTOMATION IS GOOD…BUT Manual • Tools help, but tools don’t test • Manual testing is equally important • Manual (exploratory) and automated testing complement each other Automation SELENIUM – THE CURE FOR MERCURY POISONING 6
  • 7. TEST AUTOMATION – WHY? • NOT to replace people • To save time and to reinvest that time into manual testing • To get early and instant feedback • Regression testing only • Safety net SELENIUM – THE CURE FOR MERCURY POISONING 7
  • 9. WHAT IS SELENIUM? Selenium automates browsers…that’s it Selenium is becoming a W3C standard: http://www.w3.org/TR/webdriver SELENIUM – THE CURE FOR MERCURY POISONING 9
  • 10. WHAT DO WE DO WITH SELENIUM? End to End functional test automation Manual Tests Selenium space E2 E Test s Integration Tests Unit Tests SELENIUM – THE CURE FOR MERCURY POISONING 10
  • 11. A LITTLE SELENIUM HISTORY AT EBAY Selenium2 / Webdriver Selenium GRID Selenium RC Selenium IDE Home baked solution SELENIUM – THE CURE FOR MERCURY POISONING 11
  • 12. HIGH LEVEL INFRASTRUCTURE ESX vCenter Server Selenium ESX Web GRID HUB Frontend ESX ESX TestNG ESX API Test Type ESX DB SELENIUM – THE CURE FOR MERCURY POISONING 12
  • 13. SELENIUM GRID Sequential Execution Parallel Execution Test Test Test Test Parallel Execution Parallel Execution Test Test Test Test Test Test Test Test Test Test Test Test Test 1 2 3 … 4500 Execution Time Execution Time Execution time: Execution time: 7000 minutes (~116 hours = ~5 days) 60 minutes by using 150 Virtual Machines / - 4500 end-to-end regression test cases - 2-3 minutes execution time for each test Browsers using the Selenium GRID SELENIUM – THE CURE FOR MERCURY POISONING 13
  • 14. TestNG • Data Provider • Dependency management • Groups • Listeners + Reports SELENIUM – THE CURE FOR MERCURY POISONING 14
  • 15. PAGES AND FLOWS eCommerce shopping site like eBay Select View Order Review Payment Category Summary Provider Search View View Update Item Category Orderlist View Delete Product View Item Shopping Cart Page Page Checkout Page Success Page SELENIUM – THE CURE FOR MERCURY POISONING 15
  • 16. HIGH LEVEL TEST ARCHITECTURE Tests Flow Objects Page Objects WebDriver Browser SELENIUM – THE CURE FOR MERCURY POISONING 16
  • 17. PAGE OBJECTS • http://code.google.com/p/selenium/wiki/PageObjects • Page objects model the pages and page interactions • Reduce code duplication • Reduce maintenance • Easy international support • Public methods represent the service of a page • Can be a subsection of a page • Don’t make assertions in page objects SELENIUM – THE CURE FOR MERCURY POISONING 17
  • 18. PAGE OBJECT EXAMPLE SELENIUM – THE CURE FOR MERCURY POISONING 18
  • 20. EBAY’S MOBILE PRODUCTS Mobile Web Android Native App iOS Native App SELENIUM – THE CURE FOR MERCURY POISONING 20
  • 21. MOBILE TEST AUTOMATION REQUIREMENTS • Use load balancer features of Selenium GRID for parallel execution • Manage multiple applications / versions / languages • Native app should not need to be modified • Native app runtime inspection support SELENIUM – THE CURE FOR MERCURY POISONING 21
  • 22. MOBILE WEB TEST AUTOMATION • We use Selenium AndroidDriver and iPhoneDriver • Tests are written in JAVA and are similar to web tests • Tests are only executed on emulators SELENIUM – THE CURE FOR MERCURY POISONING 22
  • 23. MOBILE WEB TEST CASE Tests Flow Objects Objects Page SELENIUM – THE CURE FOR MERCURY POISONING 23
  • 24. ANDROID APP AUTOMATION • We created the open source project CALABASH-DRIVER • CALABASH-DRIVER integrates Calabash-Android into Selenium GRID • CALABASH-DRIVER offers a Webdriver-like Java API for writing tests SELENIUM – THE CURE FOR MERCURY POISONING 24
  • 25. ANDROID APP TEST CASE Tests Flow Objects Objects Dialog SELENIUM – THE CURE FOR MERCURY POISONING 25
  • 26. AUTOMATION OF IOS APPS • We created the open source project iOS-Driver • iOS-Driver integrates Apple’s official tool “UI Automation” into Selenium GRID • iOS-Driver offers a convenient Webdriver-like Java API for writing tests SELENIUM – THE CURE FOR MERCURY POISONING 26
  • 27. iOS APP TEST CASE Tests Objects Flow Objects Dialog SELENIUM – THE CURE FOR MERCURY POISONING 27
  • 28. SUMMARY • Use of open source tools enables innovation from within the organization • World wide recognition for our work • Zero attrition in 4 years! • Solutions are integrated into the Selenium Grid which enables us to scale • Same concept for automation of Web, Win32, mobile web, native apps • Extremely low maintenance due to use of page object pattern • Fast rampup for engineers due to similar approach SELENIUM – THE CURE FOR MERCURY POISONING 28
  • 29. CHECK IT OUT ON GITHUB • https://github.com/freynaud/ios-driver • http://calabash-driver.github.com SELENIUM – THE CURE FOR MERCURY POISONING 29
  • 31. WE ARE HIRING! http://ebaycareers.com/ Or contact me: mpalotas@ebay.com