SlideShare a Scribd company logo
1 of 54
Testing @ eBay International



            Michael Palotas
            Francois Reynaud
            Potsdam, 20.01.2012
The Company




                                             2
              Produced by: Michael Palotas
eBay Inc.




                                           3
            Produced by: Michael Palotas
Setup


                 Mobile
   Global         Portland           Global
   Product         USA               Product

   San Jose                             Chennai
     USA                                 India

                   EU
                 Quality
               Engineering
    Global                            Local
    Product
               (Zürich, London,
                 Berlin, Paris)
                                     Product

    Shanghai                            Zürich,
     China                              London


                 Adjacencies
                 (i.e. Brands
                 for Friends)
                                                                 4
                                  Produced by: Michael Palotas
Not only the Web


                        Windows
                        Desktop
               Web
                     Mobile




                                                                 5
                                  Produced by: Michael Palotas
Testing at eBay in the past




                                                             6
                              Produced by: Michael Palotas
Testing Today – Ownership of Quality




                     Manual Test


         Consulting
             +
         Coaching


                       Automation


                                                                      7
                                       Produced by: Michael Palotas
Manual Test



        Still very important, mainly exploratory type

        All new features are tested manually first

                        Edge cases

                   Not automatable tests

   Manual testing still yields the highest number of bugs


                                                                            8
                                             Produced by: Michael Palotas
Automation



       Automation is not about eliminating jobs !!!

       Save time and reinvest into manual testing

             Regression Testing (fully) automated

               Programmatic approach (JAVA)

     Open source only (WebDriver/Selenium 2 GRID)

  3500 end to end testcases running in less than 1 hour
                                                                            9
                                             Produced by: Michael Palotas
GRID

eBay Europe:
-  3500 e2e regression testcases
-  2-3 minutes execution time (each)




                           executions
                                                    Execution time 7000 minutes (~116 hours = ~5 days)
Sequential

                           Parallel
Execution                                          Test
                                                    1
                                                          Test
                                                           2
                                                                 Test
                                                                  3
                                                                        Test
                                                                         …
                                                                               Test
                                                                                …
                                                                                        Test
                                                                                        3500

                                                                                        Execution Time




Parallel                                           Test   Test   Test   Test   Test
                             Parallel executions




                                                                 150 Virtual Machines / Browsers in
execution in                                       Test   Test
                                                                 the WebDriver GRID
                                                                 Test   Test  Test
                                                                 Execution time: 60 minutes
Grid
                                                   Test   Test   Test   Test   Test


                                                                                         Execution Time



                                                                                                                 10
                                                                                  Produced by: Michael Palotas
Coaching / Consulting




             EU team conducts project audits



                  Improvement initiatives



             Consulting for dev and test teams




                                                                           11
                                            Produced by: Michael Palotas
Project Audits




                                                12
                 Produced by: Michael Palotas
EU Quality Engineering Team – Automation Impact


                                                                          Team % of global Bugs 2009
"   Team
       makes up for      20.00%
                         18.00%      Start of
only 2% of global test   16.00%      automation
                                     efforts in
engineer headcount       14.00%
                                     early 2009                                                                                                              Contribution
                         12.00%                                                                                                                              Trendline
                         10.00%
                         8.00%
                         6.00%
"   Clear correlation    4.00%
between global bug       2.00%            headcount share

contribution and          .00%     1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13

                                                                                                  Week
automation
investment / coverage    18.0%                                            Team % of global Bugs 2010
                         16.0%
                         14.0%
                         12.0%
                         10.0%
                          8.0%
                          6.0%
                          4.0%
                                       headcount share
                          2.0%          headcount share
                          0.0%                                                                                                                                 13
                                  3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38Palotas 43 44 45 46 47 48 49 50 51
                                                                                                 Produced by: Michael 39 40 41 42
                                                                                                  Week
Bug Quality



Bug Quality = real bugs / submitted bugs
       100
                                    Bug Quality in % (2008-2010)

        95




        90
                            Start of
                            automation
                            efforts
        85                                                                                   Bug Quality 2008-2010




        80




        75
             Q1 08 Q2 08 Q3 08 Q4 08 Q1 09 Q2 09 Q3 09 Q4 09 Q1 10 Q2 10 Q3 10 Q4 10


                                                                                                                      14
                                                                                       Produced by: Michael Palotas
INNOVATE…and talk about it


                 Sydney, Australia, October 5th 2011




               Selenium GRID has 1.5K downloads / day




                                                        Produced by: Michael Palotas
Mobile



         Delight our customers with a fantastic user experience




                                                          Produced by: Michael Palotas
The problem




              Produced by: Michael Palotas
Where to test?




                 Produced by: Michael Palotas
Manual Testing & Automation




                              Produced by: Michael Palotas
Obstacles and opportunities




Mobile Web is easy…




Native App is not…




Planning to work with Google on open source project “nativeDriver”:
http://code.google.com/p/nativedriver/




                                                                      Produced by: Michael Palotas
Selenium tool suite integration at eBay




             HPI - 2012
Overview



What is Selenium
The different tools under the selenium umbrella
Integrating selenium for web testing
Leveraging the protocol for other technologies
Conclusion




                                                  Produced by: Michael Palotas
What is Selenium today ?



Web testing tool
Highly successful open source project, supported by big companies
Stable, and fast evolving


Protocol describing the user interactions
Comes with most browsers implementations
Works with most common languages




                                                                    Produced by: Michael Palotas
What it's not



A test framework
A network testing/monitoring tool
A performance testing tool




                                    Produced by: Michael Palotas
History



Started as a pure JS implementation
•  1 implementation for all browsers
•  browser specific features had to be hacks
•  XSS issues


Webdriver merged to Selenium
    •    real events
    •    new, documented, API


    •    backward compatibility of sel1 protocol
    •    faster,easier to maintain
    •    1 implementation per browser




                                                   Produced by: Michael Palotas
Webdriver JSON protocol



The one page to read :
    http://code.google.com/p/selenium/wiki/JsonWireProtocol
The core of the product
Built to be a standard
Based on the HTTP protocol
Specifies :
•  all the “normal” browsing interactions:
              GET /session/:sessionid/url
              POST /session/:sessionid/url
•  and the new generation interactions :
              POST /session/:sessionid/touch/longclick




                                                              Produced by: Michael Palotas
The vision behind selenium



The cure :)
Vendors are responsible for the implementation
Protocol becomes the standard for web testing




                                                 Produced by: Michael Palotas
When to use selenium



Reproduce use cases
Unit test of the web components for x-browser validation
End to end validation / regression ( eBay EU )




                                                           Produced by: Michael Palotas
When not to use it



Everything else :
•  Performance testing
•  Driver for anything with a UI...




                                      Produced by: Michael Palotas
Component 0/3 : Selenium IDE



Firefox plugin
Super easy to start
Usually first interaction with selenium




                                          Produced by: Michael Palotas
Component 1/3 : Selenium client driver



What testers see as “selenium”
Doesn't do much : generates the API calls
The part that will be called :
•  from the test framework
•  from the CI
Official selenium support
•  Java, c#, python, ruby
Not Officially supported
•  Perl, php




                                            Produced by: Michael Palotas
Component 2/3 : Selenium server



The more interesting part
Where the contributors spend their times
Drives the AUT
Officially supported by the selenium team:
•  IE, Firefox,iphone,android
Supported by vendors:
•  Chrome,Opera




                                             Produced by: Michael Palotas
Component 3/3 : Selenium grid



Proxy the HTTP requests to do 3 things :
•  Load balancer
•  Environment manager
•  Disaster recovery




                                           Produced by: Michael Palotas
Writing Selenium tests



IDE
•  Record / replay
•  (too) easy
•  Selenese / html
Client / server
•  Code
•  No record and replay
•  Testing requires basic dev skills




                                       Produced by: Michael Palotas
Selenium IDE - SIDE



Record and replay design
Entry barrier very low
Maintenance is a nightmare
Building abstraction layers for SIDE = reinventing the wheel




                                                               Produced by: Michael Palotas
Selenium client driver



Clear separation on the test code and the driver code
Stable API : update the driver without impacting the clients
Allows to run remotely
The tests are just another piece of software




                                                               Produced by: Michael Palotas
Tests are code !



Spend time on the design
Use page object
Don't test everything




                           Produced by: Michael Palotas
Next step : scaling using grid



Scalability :
•  manage multiple browsers / OS installations
•  run tests in parallel
•  hooks to deploy everything in a production environment




                                                            Produced by: Michael Palotas
Grid architecture




                    Produced by: Michael Palotas
Grid – create plugins !



Extension points
Change the default behavior :
•  Registration
•  Test
•  Command
Or tune it :
•  Custom priority
•  Custom matching


Plugins will :
•  execute on the hub
•  access the internal hub state ( mutable )
•  allow to overwrite methods




                                               Produced by: Michael Palotas
Plugin example : eBay



We moved away from Grid1
•  Self healing features covered mostly connectivity issues
•  Nodes were taken out after a crash, but no automatic recovery
•  We needed to manage more than just the browser : the OS too.
•  Managing a growing grid is error prone




                                                                   Produced by: Michael Palotas
eBay grid requirements



Maintenance :
•  (re)start everything automatically
•  Adding 1 node = 1 line in a config file
•  Nodes are restarted before having issues
•  Test isolation
Debugging :
•  Showcase for grid , adding features without changing the tests : VNC




                                                                      Produced by: Michael Palotas
Default grid startup overview




                                         Launcher
     Hub
                  registration request   webdriver
                                            server




                                          node




                                           Produced by: Michael Palotas
Grid : logic of the eBay plugin



The plugin ( proxy ) we currently use implement 2 interfaces :
•  Registration listener
       Restores the VM to a clean state
       Starts the display and VNC
       Starts webdriver server
       Validation
•  Test session listener :
       Counts the tests
       Directs the browsers to the right display




                                                                 Produced by: Michael Palotas
Integration with virtualization



Hub                           •  Custom node proxy
                              •  Registration doesn’t come from the node
                              •  New proxy code in the classpath. No need to re-compile grid.
                              •  Extra params for the proxy




                                                               Produced by: Michael Palotas
Console




          Produced by: Michael Palotas
VNC




      Produced by: Michael Palotas
More integration : TWIN


                                            http://code.google.com/p/twin




•  Webdriver implementation for automating Windows graphical applications.

• Open source project from eBay




                                                                             Produced by: Michael Palotas
eBay example : TWIN for Turbo Lister 2




                                         Produced by: Michael Palotas
Challenges of Turbo lister2 Automation



On top of driving the application, the test infrastructure needs to handle :
•  the software installation
•  the config files


This can be handled by a plain grid hub by adding a plugin :
•  When a node registers :
       it has a vm ID property
       the hub check for existing snapshots
       the hub triggers the installation for each site
       TurboLister2 is started for the first time
       the hub create a snapshot
•  When a new test is started :
       a VM is assigned
       the hub revert to the appropriate snapshot




                                                                          Produced by: Michael Palotas
Advantages of a single grid



All the tests follow the same high level life cycle :
•  automatically manage the context around the test
•  run the tests until the OS / AUT crashes
•  try to recover
•  or restart
Products release at different times :
•  re-assign the VMs




                                                        Produced by: Michael Palotas
Next step : mobile



Native driver + link
Early stage
Android
•  working for basic features
•  Linux makes it easy to integrate


Iphone
•  working for basic features
•  Mac OS makes it harder to integrate




                                         Produced by: Michael Palotas
Conclusion



Not the silver bullet
It allows your QE team to :
•  use the language they're comfortable to write their test
•  reuse the helpers
•  clean API allows you to extends to new technology “easily”




                                                                Produced by: Michael Palotas
Resources



https://github.com/freynaud/grid-spine-common
•  Depends on selenium 2.4.0
•  VMWare integration + restart every N tests logic
https://github.com/freynaud/grid-spine-selenium
•  Depends on common
•  All the selenium specific logic, VNC integration, Linux vs Windows code.



Built using
•  noVNC : http://kanaka.github.com/noVNC/
•  tightVNC
•  VIX ( VMWare API ) http://labs.vmware.com/flings/vix-java-toolkit
•  VMWare WS http://vijava.sourceforge.net/




                                                                       Produced by: Michael Palotas

More Related Content

What's hot

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentDhaval Dalal
 
Testing In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudTesting In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudSOASTA
 
Visual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management ToolsVisual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management ToolsAyman El-Hattab
 
Everything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexityEverything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexityJAX London
 
Mozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMatt Brandt
 
Using tests and mocks to drive the design of software
Using tests and mocks to drive the design of softwareUsing tests and mocks to drive the design of software
Using tests and mocks to drive the design of softwareAttila Magyar
 
programs testing programs
programs testing programsprograms testing programs
programs testing programsICANS GmbH
 
Unit testing for Cocoa developers
Unit testing for Cocoa developersUnit testing for Cocoa developers
Unit testing for Cocoa developersGraham Lee
 
Quality Assurance in a DevOps World
Quality Assurance in a DevOps WorldQuality Assurance in a DevOps World
Quality Assurance in a DevOps WorldKit Plummer
 
Por Que Scrum No Funciona
Por Que Scrum No FuncionaPor Que Scrum No Funciona
Por Que Scrum No FuncionaSergio Acosta
 

What's hot (12)

Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Testing In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the CloudTesting In Production (TiP) Advances with Big Data & the Cloud
Testing In Production (TiP) Advances with Big Data & the Cloud
 
Visual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management ToolsVisual Studio 2010 Testing & Lab Management Tools
Visual Studio 2010 Testing & Lab Management Tools
 
Everything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexityEverything I know about software in spaghetti bolognese: managing complexity
Everything I know about software in spaghetti bolognese: managing complexity
 
The Test way
The Test wayThe Test way
The Test way
 
Mozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMO
 
Using tests and mocks to drive the design of software
Using tests and mocks to drive the design of softwareUsing tests and mocks to drive the design of software
Using tests and mocks to drive the design of software
 
programs testing programs
programs testing programsprograms testing programs
programs testing programs
 
Unit testing for Cocoa developers
Unit testing for Cocoa developersUnit testing for Cocoa developers
Unit testing for Cocoa developers
 
CD
CDCD
CD
 
Quality Assurance in a DevOps World
Quality Assurance in a DevOps WorldQuality Assurance in a DevOps World
Quality Assurance in a DevOps World
 
Por Que Scrum No Funciona
Por Que Scrum No FuncionaPor Que Scrum No Funciona
Por Que Scrum No Funciona
 

Similar to ebay @ Hasso Plattner Institut Potsdam

How we Test at eBay Europe
How we Test at eBay EuropeHow we Test at eBay Europe
How we Test at eBay EuropeMichael 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
 
Mark robinson what does lean mean for software testing
Mark robinson   what does lean mean for software testingMark robinson   what does lean mean for software testing
Mark robinson what does lean mean for software testingAGILEMinds
 
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
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsMichael Palotas
 
Benefit From Unit Testing In The Real World
Benefit From Unit Testing In The Real WorldBenefit From Unit Testing In The Real World
Benefit From Unit Testing In The Real WorldDror Helper
 
Just Java2007 - Daniel Wildt - Tools For Java Test Automation
Just Java2007 - Daniel Wildt - Tools For Java Test AutomationJust Java2007 - Daniel Wildt - Tools For Java Test Automation
Just Java2007 - Daniel Wildt - Tools For Java Test AutomationDaniel Wildt
 
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsDr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsAgileSparks
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approachMichael Kopp
 
Continous testing for grails
Continous testing for grailsContinous testing for grails
Continous testing for grailswinkler1
 
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...manssandstrom
 
Technical meeting automated testing with vs2010
Technical meeting automated testing with vs2010Technical meeting automated testing with vs2010
Technical meeting automated testing with vs2010Clemens Reijnen
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cyclegueste730d5
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Fwdays
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita GalkinTesting in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita GalkinSigma Software
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support developmentChema del Barco
 
Gabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsGabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsFrancesco Fullone
 

Similar to ebay @ Hasso Plattner Institut Potsdam (20)

How we Test at eBay Europe
How we Test at eBay EuropeHow we Test at eBay Europe
How we Test at eBay Europe
 
test
testtest
test
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Mark robinson what does lean mean for software testing
Mark robinson   what does lean mean for software testingMark robinson   what does lean mean for software testing
Mark robinson what does lean mean for software testing
 
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
 
Implementing Test Automation in Agile Projects
Implementing Test Automation in Agile ProjectsImplementing Test Automation in Agile Projects
Implementing Test Automation in Agile Projects
 
Benefit From Unit Testing In The Real World
Benefit From Unit Testing In The Real WorldBenefit From Unit Testing In The Real World
Benefit From Unit Testing In The Real World
 
Just Java2007 - Daniel Wildt - Tools For Java Test Automation
Just Java2007 - Daniel Wildt - Tools For Java Test AutomationJust Java2007 - Daniel Wildt - Tools For Java Test Automation
Just Java2007 - Daniel Wildt - Tools For Java Test Automation
 
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex EnvironmentsDr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
Dr. Ronen Bar-Nahor - Optimizing Agile Testing in Complex Environments
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Continous testing for grails
Continous testing for grailsContinous testing for grails
Continous testing for grails
 
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
Att lyckas med integration av arbetet från flera scrum team - Christophe Acho...
 
Technical meeting automated testing with vs2010
Technical meeting automated testing with vs2010Technical meeting automated testing with vs2010
Technical meeting automated testing with vs2010
 
Agile QA Process
Agile QA ProcessAgile QA Process
Agile QA Process
 
Software Testing Life Cycle
Software Testing Life CycleSoftware Testing Life Cycle
Software Testing Life Cycle
 
Emerasoft Day 2012 - Test Automation con Polarion
Emerasoft Day 2012 - Test Automation con PolarionEmerasoft Day 2012 - Test Automation con Polarion
Emerasoft Day 2012 - Test Automation con Polarion
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita GalkinTesting in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita Galkin
 
Creating testing tools to support development
Creating testing tools to support developmentCreating testing tools to support development
Creating testing tools to support development
 
Gabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsGabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web Applications
 

More from 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 - A LOOK BEHIND THE SCENES
EBAY -  A LOOK BEHIND THE SCENESEBAY -  A LOOK BEHIND THE SCENES
EBAY - A LOOK BEHIND THE SCENESMichael Palotas
 
JAVA User Group Bern - Selenium
JAVA User Group Bern  - SeleniumJAVA User Group Bern  - Selenium
JAVA User Group Bern - SeleniumMichael Palotas
 
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
 
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
 
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
 

More from Michael Palotas (18)

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 - A LOOK BEHIND THE SCENES
EBAY -  A LOOK BEHIND THE SCENESEBAY -  A LOOK BEHIND THE SCENES
EBAY - A LOOK BEHIND THE SCENES
 
JAVA User Group Bern - Selenium
JAVA User Group Bern  - SeleniumJAVA User Group Bern  - Selenium
JAVA User Group Bern - Selenium
 
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
 
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
 
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
 

Recently uploaded

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 

Recently uploaded (20)

Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 

ebay @ Hasso Plattner Institut Potsdam

  • 1. Testing @ eBay International Michael Palotas Francois Reynaud Potsdam, 20.01.2012
  • 2. The Company 2 Produced by: Michael Palotas
  • 3. eBay Inc. 3 Produced by: Michael Palotas
  • 4. Setup Mobile Global Portland Global Product USA Product San Jose Chennai USA India EU Quality Engineering Global Local Product (Zürich, London, Berlin, Paris) Product Shanghai Zürich, China London Adjacencies (i.e. Brands for Friends) 4 Produced by: Michael Palotas
  • 5. Not only the Web Windows Desktop Web Mobile 5 Produced by: Michael Palotas
  • 6. Testing at eBay in the past 6 Produced by: Michael Palotas
  • 7. Testing Today – Ownership of Quality Manual Test Consulting + Coaching Automation 7 Produced by: Michael Palotas
  • 8. Manual Test Still very important, mainly exploratory type All new features are tested manually first Edge cases Not automatable tests Manual testing still yields the highest number of bugs 8 Produced by: Michael Palotas
  • 9. Automation Automation is not about eliminating jobs !!! Save time and reinvest into manual testing Regression Testing (fully) automated Programmatic approach (JAVA) Open source only (WebDriver/Selenium 2 GRID) 3500 end to end testcases running in less than 1 hour 9 Produced by: Michael Palotas
  • 10. GRID eBay Europe: -  3500 e2e regression testcases -  2-3 minutes execution time (each) executions Execution time 7000 minutes (~116 hours = ~5 days) Sequential Parallel Execution Test 1 Test 2 Test 3 Test … Test … Test 3500 Execution Time Parallel Test Test Test Test Test Parallel executions 150 Virtual Machines / Browsers in execution in Test Test the WebDriver GRID Test Test Test Execution time: 60 minutes Grid Test Test Test Test Test Execution Time 10 Produced by: Michael Palotas
  • 11. Coaching / Consulting EU team conducts project audits Improvement initiatives Consulting for dev and test teams 11 Produced by: Michael Palotas
  • 12. Project Audits 12 Produced by: Michael Palotas
  • 13. EU Quality Engineering Team – Automation Impact Team % of global Bugs 2009 "   Team makes up for 20.00% 18.00% Start of only 2% of global test 16.00% automation efforts in engineer headcount 14.00% early 2009 Contribution 12.00% Trendline 10.00% 8.00% 6.00% "   Clear correlation 4.00% between global bug 2.00% headcount share contribution and .00% 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 1 2 3 4 5 6 7 8 9 10 11 12 13 Week automation investment / coverage 18.0% Team % of global Bugs 2010 16.0% 14.0% 12.0% 10.0% 8.0% 6.0% 4.0% headcount share 2.0% headcount share 0.0% 13 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38Palotas 43 44 45 46 47 48 49 50 51 Produced by: Michael 39 40 41 42 Week
  • 14. Bug Quality Bug Quality = real bugs / submitted bugs 100 Bug Quality in % (2008-2010) 95 90 Start of automation efforts 85 Bug Quality 2008-2010 80 75 Q1 08 Q2 08 Q3 08 Q4 08 Q1 09 Q2 09 Q3 09 Q4 09 Q1 10 Q2 10 Q3 10 Q4 10 14 Produced by: Michael Palotas
  • 15. INNOVATE…and talk about it Sydney, Australia, October 5th 2011 Selenium GRID has 1.5K downloads / day Produced by: Michael Palotas
  • 16. Mobile Delight our customers with a fantastic user experience Produced by: Michael Palotas
  • 17. The problem Produced by: Michael Palotas
  • 18. Where to test? Produced by: Michael Palotas
  • 19. Manual Testing & Automation Produced by: Michael Palotas
  • 20. Obstacles and opportunities Mobile Web is easy… Native App is not… Planning to work with Google on open source project “nativeDriver”: http://code.google.com/p/nativedriver/ Produced by: Michael Palotas
  • 21. Selenium tool suite integration at eBay HPI - 2012
  • 22. Overview What is Selenium The different tools under the selenium umbrella Integrating selenium for web testing Leveraging the protocol for other technologies Conclusion Produced by: Michael Palotas
  • 23. What is Selenium today ? Web testing tool Highly successful open source project, supported by big companies Stable, and fast evolving Protocol describing the user interactions Comes with most browsers implementations Works with most common languages Produced by: Michael Palotas
  • 24. What it's not A test framework A network testing/monitoring tool A performance testing tool Produced by: Michael Palotas
  • 25. History Started as a pure JS implementation •  1 implementation for all browsers •  browser specific features had to be hacks •  XSS issues Webdriver merged to Selenium •  real events •  new, documented, API •  backward compatibility of sel1 protocol •  faster,easier to maintain •  1 implementation per browser Produced by: Michael Palotas
  • 26. Webdriver JSON protocol The one page to read : http://code.google.com/p/selenium/wiki/JsonWireProtocol The core of the product Built to be a standard Based on the HTTP protocol Specifies : •  all the “normal” browsing interactions: GET /session/:sessionid/url POST /session/:sessionid/url •  and the new generation interactions : POST /session/:sessionid/touch/longclick Produced by: Michael Palotas
  • 27. The vision behind selenium The cure :) Vendors are responsible for the implementation Protocol becomes the standard for web testing Produced by: Michael Palotas
  • 28. When to use selenium Reproduce use cases Unit test of the web components for x-browser validation End to end validation / regression ( eBay EU ) Produced by: Michael Palotas
  • 29. When not to use it Everything else : •  Performance testing •  Driver for anything with a UI... Produced by: Michael Palotas
  • 30. Component 0/3 : Selenium IDE Firefox plugin Super easy to start Usually first interaction with selenium Produced by: Michael Palotas
  • 31. Component 1/3 : Selenium client driver What testers see as “selenium” Doesn't do much : generates the API calls The part that will be called : •  from the test framework •  from the CI Official selenium support •  Java, c#, python, ruby Not Officially supported •  Perl, php Produced by: Michael Palotas
  • 32. Component 2/3 : Selenium server The more interesting part Where the contributors spend their times Drives the AUT Officially supported by the selenium team: •  IE, Firefox,iphone,android Supported by vendors: •  Chrome,Opera Produced by: Michael Palotas
  • 33. Component 3/3 : Selenium grid Proxy the HTTP requests to do 3 things : •  Load balancer •  Environment manager •  Disaster recovery Produced by: Michael Palotas
  • 34. Writing Selenium tests IDE •  Record / replay •  (too) easy •  Selenese / html Client / server •  Code •  No record and replay •  Testing requires basic dev skills Produced by: Michael Palotas
  • 35. Selenium IDE - SIDE Record and replay design Entry barrier very low Maintenance is a nightmare Building abstraction layers for SIDE = reinventing the wheel Produced by: Michael Palotas
  • 36. Selenium client driver Clear separation on the test code and the driver code Stable API : update the driver without impacting the clients Allows to run remotely The tests are just another piece of software Produced by: Michael Palotas
  • 37. Tests are code ! Spend time on the design Use page object Don't test everything Produced by: Michael Palotas
  • 38. Next step : scaling using grid Scalability : •  manage multiple browsers / OS installations •  run tests in parallel •  hooks to deploy everything in a production environment Produced by: Michael Palotas
  • 39. Grid architecture Produced by: Michael Palotas
  • 40. Grid – create plugins ! Extension points Change the default behavior : •  Registration •  Test •  Command Or tune it : •  Custom priority •  Custom matching Plugins will : •  execute on the hub •  access the internal hub state ( mutable ) •  allow to overwrite methods Produced by: Michael Palotas
  • 41. Plugin example : eBay We moved away from Grid1 •  Self healing features covered mostly connectivity issues •  Nodes were taken out after a crash, but no automatic recovery •  We needed to manage more than just the browser : the OS too. •  Managing a growing grid is error prone Produced by: Michael Palotas
  • 42. eBay grid requirements Maintenance : •  (re)start everything automatically •  Adding 1 node = 1 line in a config file •  Nodes are restarted before having issues •  Test isolation Debugging : •  Showcase for grid , adding features without changing the tests : VNC Produced by: Michael Palotas
  • 43. Default grid startup overview Launcher Hub registration request webdriver server node Produced by: Michael Palotas
  • 44. Grid : logic of the eBay plugin The plugin ( proxy ) we currently use implement 2 interfaces : •  Registration listener Restores the VM to a clean state Starts the display and VNC Starts webdriver server Validation •  Test session listener : Counts the tests Directs the browsers to the right display Produced by: Michael Palotas
  • 45. Integration with virtualization Hub •  Custom node proxy •  Registration doesn’t come from the node •  New proxy code in the classpath. No need to re-compile grid. •  Extra params for the proxy Produced by: Michael Palotas
  • 46. Console Produced by: Michael Palotas
  • 47. VNC Produced by: Michael Palotas
  • 48. More integration : TWIN http://code.google.com/p/twin •  Webdriver implementation for automating Windows graphical applications. • Open source project from eBay Produced by: Michael Palotas
  • 49. eBay example : TWIN for Turbo Lister 2 Produced by: Michael Palotas
  • 50. Challenges of Turbo lister2 Automation On top of driving the application, the test infrastructure needs to handle : •  the software installation •  the config files This can be handled by a plain grid hub by adding a plugin : •  When a node registers : it has a vm ID property the hub check for existing snapshots the hub triggers the installation for each site TurboLister2 is started for the first time the hub create a snapshot •  When a new test is started : a VM is assigned the hub revert to the appropriate snapshot Produced by: Michael Palotas
  • 51. Advantages of a single grid All the tests follow the same high level life cycle : •  automatically manage the context around the test •  run the tests until the OS / AUT crashes •  try to recover •  or restart Products release at different times : •  re-assign the VMs Produced by: Michael Palotas
  • 52. Next step : mobile Native driver + link Early stage Android •  working for basic features •  Linux makes it easy to integrate Iphone •  working for basic features •  Mac OS makes it harder to integrate Produced by: Michael Palotas
  • 53. Conclusion Not the silver bullet It allows your QE team to : •  use the language they're comfortable to write their test •  reuse the helpers •  clean API allows you to extends to new technology “easily” Produced by: Michael Palotas
  • 54. Resources https://github.com/freynaud/grid-spine-common •  Depends on selenium 2.4.0 •  VMWare integration + restart every N tests logic https://github.com/freynaud/grid-spine-selenium •  Depends on common •  All the selenium specific logic, VNC integration, Linux vs Windows code. Built using •  noVNC : http://kanaka.github.com/noVNC/ •  tightVNC •  VIX ( VMWare API ) http://labs.vmware.com/flings/vix-java-toolkit •  VMWare WS http://vijava.sourceforge.net/ Produced by: Michael Palotas