Selenium conference 2012 - One Step At A Time
Upcoming SlideShare
Loading in...5

Selenium conference 2012 - One Step At A Time






Total Views
Views on SlideShare
Embed Views



2 Embeds 8 5 3



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment
  • - Brief introduction & touch upon agenda.
  • - Thank Camelot, Bernie, Alan, Team & Komal- Image reference
  • 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
  • - Problem statement
  • Selenium IDERecord & PlaybackInstant gratificationBut important to understand it’s limitations and move on.
  • Export processExplain Script / benefits and ease of exporting scriptxUnit – how it’s used by WebDriverLimitations
  • Slightly modified and improved scriptCan perform thorough checks such as DB checks, network checks etcGenerate unique names
  • Explain tight coupling & it’s problems in the existing script.Coupling makes everything complicated as everything depends on everything
  • Benefits of decouplingIndividual parts are easier to manage and changeFaster development – changes are containedAbstraction – manage complexityStep towards more readable, maintainable test
  • Decouple physical world - Page ObjectsChanges in IDs will not affect the test now
  • 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
  • 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.
  • - 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?
  • Be aware of data and convert it into domain when make sense.Benefits of domain objectExplain problems
  • Final test scriptClose to businessChanges and how they will be contained @ specific places and how test will remain intact.
  • Conceptual model of app, work and interfaceBig picture – what problem app is solving, who are the actors – help in modelling and refactoring
  • 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?
  • 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 -

Selenium conference 2012 - One Step At A Time Selenium conference 2012 - One Step At A Time Presentation Transcript

  • 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 asWebDriver Script Crawling is fun but weExcellent First Step don’t crawl anymore
  • Power of xUnitDifferent FrameworkBrowsers Java, C#,Python, Ruby etc Step in right direction - but miles to go..
  • Clear is hiddenGuaranteed Username Checks are hidden
  • MaintainableReadable Difficult to Progress
  • DecouplingSeparation of concerns Abstraction Less friction, More development
  • Page insteadof elements
  • One place to find elementsPage Initializes everythingFunctions 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 WorkAdd 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 canactors to work work perform work On some interface
  • Value Enhancer
  • Anand Ramdeo @testinggeek