SlideShare a Scribd company logo
1 of 19
One Step At A Time

           Anand Ramdeo
            @testinggeek
Firefox Plugin        Sequential
  easy to install       execution


    Record &           Not easy to
    Playback           data drive


 Easy execution          No Basic
                       Programming
                        constructs
  Help @ Hand
                        Can not go
                       beyond pages
  Export as
WebDriver Script
                       Crawling is
                       fun but we
Excellent First Step   don’t crawl
                        anymore
Power of xUnit
Different                                              Framework
Browsers




  Java, C#,
Python, Ruby
     etc




               Step in right direction - but miles to go..
Clear is hidden


Guaranteed
 Username




             Checks are
              hidden
Maintainable
Readable




           Difficult to Progress
Decoupling
Separation of concerns




                                               Abstraction
                         Less friction, More
                           development
Page instead
of elements
One place to find
        elements




Page Initializes
  everything



Functions applicable
  on elements are
  exposed by page
Intelligent Page
    Objects
What needs to be
                    Done?




Test has no knowledge of physical implementation
Data to Domain
Actor

             Performs Work
Add Behaviour to
 Domain Object
                             Check Results
App solves                                  Test proves
 the problem                            That problem is solved
                      Problem


                                                 Test proves
 App allows      Solved by performing           that actor can
actors to work           work
                                                perform work


                 On some interface
Value Enhancer
Anand Ramdeo
 @testinggeek

More Related Content

Similar to Selenium conference 2012 - One Step At A Time

Indic threads java10-spring-roo-and-the-cloud
Indic threads java10-spring-roo-and-the-cloudIndic threads java10-spring-roo-and-the-cloud
Indic threads java10-spring-roo-and-the-cloud
Shekhar Gulati
 
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDavid Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
Day Software
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
Dominik Dary
 
Oscon2007 Windmill
Oscon2007 WindmillOscon2007 Windmill
Oscon2007 Windmill
oscon2007
 

Similar to Selenium conference 2012 - One Step At A Time (20)

Indic threads java10-spring-roo-and-the-cloud
Indic threads java10-spring-roo-and-the-cloudIndic threads java10-spring-roo-and-the-cloud
Indic threads java10-spring-roo-and-the-cloud
 
Creating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda LankalapalliCreating value using Agile Methods- Nanda Lankalapalli
Creating value using Agile Methods- Nanda Lankalapalli
 
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and RoadmapDavid Nuescheler: Igniting CQ 5.3: What's New and Roadmap
David Nuescheler: Igniting CQ 5.3: What's New and Roadmap
 
Web Test Automation Framework - IndicThreads Conference
Web Test Automation Framework  - IndicThreads ConferenceWeb Test Automation Framework  - IndicThreads Conference
Web Test Automation Framework - IndicThreads Conference
 
Agile Testing at eBay
Agile Testing at eBayAgile Testing at eBay
Agile Testing at eBay
 
Build Quality In
Build Quality InBuild Quality In
Build Quality In
 
What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.What's new in CQ 5.3? Top 10 features.
What's new in CQ 5.3? Top 10 features.
 
BDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product SuiteBDD and Test Automation in Evalutionary Product Suite
BDD and Test Automation in Evalutionary Product Suite
 
Releasing fast code - The DevOps approach
Releasing fast code - The DevOps approachReleasing fast code - The DevOps approach
Releasing fast code - The DevOps approach
 
Development without Testers: Myth or Real Option? (ConfeT&QA conference)
Development without Testers: Myth or Real Option? (ConfeT&QA conference)Development without Testers: Myth or Real Option? (ConfeT&QA conference)
Development without Testers: Myth or Real Option? (ConfeT&QA conference)
 
Jing and Capture
Jing and CaptureJing and Capture
Jing and Capture
 
Oscon2007 Windmill
Oscon2007 WindmillOscon2007 Windmill
Oscon2007 Windmill
 
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
Spring Roo and the Cloud (Tutorial) [5th IndicThreads.com Conference On Java,...
 
Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?Development without Testers: Myth or Real Option?
Development without Testers: Myth or Real Option?
 
Hypothesis Based Testing: Power + Speed.
Hypothesis Based Testing: Power + Speed.Hypothesis Based Testing: Power + Speed.
Hypothesis Based Testing: Power + Speed.
 
Introduction to Protractor - Habilelabs
Introduction to Protractor - HabilelabsIntroduction to Protractor - Habilelabs
Introduction to Protractor - Habilelabs
 
Paris Web - Javascript as a programming language
Paris Web - Javascript as a programming languageParis Web - Javascript as a programming language
Paris Web - Javascript as a programming language
 
How to Profit from Static Analysis
How to Profit from Static AnalysisHow to Profit from Static Analysis
How to Profit from Static Analysis
 
JRuby and Google App Engine
JRuby and Google App EngineJRuby and Google App Engine
JRuby and Google App Engine
 
Testability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testableTestability for developers – Fighting a mess by making it testable
Testability for developers – Fighting a mess by making it testable
 

More from Anand Ramdeo

Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsitePatterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
Anand Ramdeo
 

More from Anand Ramdeo (13)

Rano fest
Rano fest Rano fest
Rano fest
 
Ranosys jobs
Ranosys jobsRanosys jobs
Ranosys jobs
 
Misleading Validations - Be Aware Of Green
Misleading Validations - Be Aware Of GreenMisleading Validations - Be Aware Of Green
Misleading Validations - Be Aware Of Green
 
Keeping London On The Move - Interesting Solutions For Challenging Problems
Keeping London On The Move - Interesting Solutions For Challenging ProblemsKeeping London On The Move - Interesting Solutions For Challenging Problems
Keeping London On The Move - Interesting Solutions For Challenging Problems
 
Future of Retail is here with Artificial Intelligence (AI) - Are you ready?
Future of Retail is here with Artificial Intelligence (AI) - Are you ready?Future of Retail is here with Artificial Intelligence (AI) - Are you ready?
Future of Retail is here with Artificial Intelligence (AI) - Are you ready?
 
Workshop for Managing Expectations By Utilising A Communication Toolkit
Workshop for Managing Expectations By Utilising A Communication ToolkitWorkshop for Managing Expectations By Utilising A Communication Toolkit
Workshop for Managing Expectations By Utilising A Communication Toolkit
 
Testing strategies for the eCommerce stores built on Magento
Testing strategies for the eCommerce stores built on MagentoTesting strategies for the eCommerce stores built on Magento
Testing strategies for the eCommerce stores built on Magento
 
Tes automation for CMS Backed applications - Channel-4 Case Study
Tes automation for CMS Backed applications - Channel-4 Case StudyTes automation for CMS Backed applications - Channel-4 Case Study
Tes automation for CMS Backed applications - Channel-4 Case Study
 
Java primer
Java primerJava primer
Java primer
 
Ramdeo green
Ramdeo greenRamdeo green
Ramdeo green
 
Patterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsitePatterns in Testing and a claim - iCheckWebsite
Patterns in Testing and a claim - iCheckWebsite
 
Agile Testing
Agile TestingAgile Testing
Agile Testing
 
Simple tools to fight bigger quality battle
Simple tools to fight bigger quality battleSimple tools to fight bigger quality battle
Simple tools to fight bigger quality battle
 

Recently uploaded

Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 

Recently uploaded (20)

MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 

Selenium conference 2012 - One Step At A Time

Editor's Notes

  1. - Brief introduction & touch upon agenda.
  2. - Thank Camelot, Bernie, Alan, Team & Komal- Image reference http://thenextweb.com/shareables/2012/03/04/geek-love-10-reasons-to-date-a-geek/
  3. Start simple and small steps towards improvements based on our current knowledge.Improvements and increased knowledge will expose new limitationsEvolution is in respond to changeSet expectation – will start from IDE and move to a decent framework by taking one step at a time.Image from http://grunty.files.wordpress.com/2010/08/human-evolution-21c.jpg
  4. - Problem statement
  5. Selenium IDERecord & PlaybackInstant gratificationBut important to understand it’s limitations and move on.
  6. Export processExplain Script / benefits and ease of exporting scriptxUnit – how it’s used by WebDriverLimitations
  7. Slightly modified and improved scriptCan perform thorough checks such as DB checks, network checks etcGenerate unique names
  8. Explain tight coupling & it’s problems in the existing script.Coupling makes everything complicated as everything depends on everything
  9. Benefits of decouplingIndividual parts are easier to manage and changeFaster development – changes are containedAbstraction – manage complexityStep towards more readable, maintainable test
  10. Decouple physical world - Page ObjectsChanges in IDs will not affect the test now
  11. Test still aware of page and so real implementation.Abstraction not at right level – registration is pretty much exposed and will be copy pasted Explain annotations & factory method
  12. Intelligent page object - Registration logic is now moved to the page objectProblemsTest is aware of the appTest should be at the conceptual levelDependencies should be avoided from both directions.
  13. - Discrete functionality or a piece of work which user can perform.User completes registrationIf there is any change in how user is registered on site – test will still remain the same.What if we decide to add more fields for user?
  14. Be aware of data and convert it into domain when make sense.Benefits of domain objectExplain problems
  15. Final test scriptClose to businessChanges and how they will be contained @ specific places and how test will remain intact.
  16. Conceptual model of app, work and interfaceBig picture – what problem app is solving, who are the actors – help in modelling and refactoring
  17. Questions to askHow tests are looking? Are they abstracted at the right level?What is page changes?What if feature consume or display more data then before?What if checks are enhanced / introduced?What if presentation changes?http://www.gembapantarei.com/2009/04/12_leader_standard_work_questions_to_ask_on_the_ge.html
  18. ProgressTests which were aware of low level details on the page & registration process toHigher level tests which are aware of business domainWork and Checks are abstractedI know everything – sign of a bad code.Image from - http://www.sodahead.com/fun/makes-everything-easy-for-dummies-have-you-ever-used-one-of-the-books-from-the-for-dummies-series/question-2162751/?link=ibaf&q=i+know+everything&imgurl=http://images.sodahead.com/polls/002162751/4452224133_I_know_everything_answer_2_xlarge.jpeg
  19. http://uncyclopedia.wikia.com/wiki/File:I-dont-care.jpg