Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Selenium Users Anonymous


Published on

Presented at Agile 2012

Published in: Technology, Education
  • Be the first to comment

Selenium Users Anonymous

  1. 1. selenium Users Anonymous 34 Se by Dave Haeffner
  2. 2. Show of handsHow many of you are human? 100%How many of you use Selenium? MostJust getting started in test automation? 40%Comfortable with test automation? Using it regularly? 50%Test automation gurus? 1-2 peopleDevelopment background 60%Tech proficient -- know enough to be dangerous? 15%Scared to death of tech? Some smiles but no one raised their hand
  3. 3. Exercise 1What are your biggest pain points when it comes to usingSelenium? Or Test Automation in general?In 5 minutes, write them downOne issue per post-itKeep it conciseKeep it to yourself
  4. 4. Evolutionary paths of Selenium SuitesSe-IDESimple tests captured that can grow into an albatross thatis unmaintainable, brittle, and makes you spit nails. Mostpeople (hopefully) realize this is not the way to go andexport their tests into a real programming languageSe-RCWhat you used to export your Se-IDE tests into. But notanymore, its reaching end-of-life.Se-WebDriverBehold the future! Pure browser integration (read: fast andawesome)
  5. 5. EntreesBreaking/brittle/untrustworthy/unstable tests Hard to decipher results Hard to interpret what your tests test False positives Slow Too many tests Ownership Maintenance Out of band communication Works on my machine
  6. 6. Desserts Manual testing as a crutch QA as a bottle neckDefects caught late in the cycle
  7. 7. Exercise 2You have 5 minutesCome to the front of the room with your post-its fromExercise 1Post them on the wallGroup like with like
  8. 8. 12
  9. 9. 1 - Admit You Have a Problem
  10. 10. Its not entirely your faultSelenium was Built by Developers for Developers. Someassembly required, oh, and RTFM.Along the way someone built a Selenium IDE to make iteasy for mere mortals to capture automated tests, whilethis got newcomers to use the tool, it reinforced some badhabits -- causing people to build painful and unmaintainabletest suitsWhile there is a great community and good documentation,there is not a cohesive, standard "here you guy" guide... yetIt can be overwhelming for a newcomer. But most timesyou duct-tape together a solution to your problem withanswers found in blog posts and stack overflow threads.
  11. 11. 2 - Take a deep breath
  12. 12. Its OkayTake into account that you are doing something difficultAnd that you are outside of your comfort zone, and that willlikely not changeBut its okay, people have gone before youAnd you have to fail to learn
  13. 13. 3 - Try looking at things differently
  14. 14. Try these on for sizeZoomingBe able to "zoom in" deal with the day to day details whilealso "zooming out" to see the big picture -- making surethat both the high and low level are alignedEffectiveness = Quality x AcceptanceIts much easier to improve quality than it is acceptance.Where are you spending your effort?Personas & MotivationQAs are either very technical or very analytical. Engineerstend to want to solve problems. Understanding these thingswill help you unlock untapped potential.
  15. 15. 4 - Pump some Tech iron
  16. 16. Pump you upIve seen a lot of people who are fearful of technology butthey play on the razors edge of it. Weird.Pump some iron. Learn to code. Or least, learn the broadstrokes. It will help you with your "tech comfort".Resources abound -- books, blogs, meetups, classes,conferences, etc.Sharpen your tools
  17. 17. 5Find Your InnerNapoleon,Develop A Strategy
  18. 18. Its less about the tool and more about the peopleThink big, keep it simple, capture valueEnvision the future and build a roadmap to itSome example questions to askType of app?Data heavy?Rich UI?How does the business makes money?Available Usage metrics?Browsers you care about?Current S/W dev workflow? Release cycle?Resources available?QA Team make-up? Dev Team make-up?Top-down support?Bottom-up interest?
  19. 19. 6BreakDown The Wall
  20. 20. Make friends with the Developers -- work together!Choose a technology stack for building a framework thatmakes sense for you and your team -- this is a topic in andof itselfTo start, focus on you and your teams context -- e.g.strengths, comfort, confidence, and excitementAlso consider your companys current tech stackPut it to the team to try and decideAlso, have them give it a fun name -- this stuff matters!
  21. 21. 7 - Learn the terrain
  22. 22. Try stuff Commit and make progressLearn what you need along the way to become effective Fill in your knowledge gaps as you go And dont be afraid to ask questions
  23. 23. 8 - Test Less
  24. 24. Perform a Pareto analysis. It posits that 80% of the valuecomes from 20% of the inputs -- and its correct. Considerthis a power law.A good heuristic to follow for this -- 3 buckets.There are 3 things you should care about when it comes totesting: Table Stakes, Money Makers, Back Breakers● Table Stakes: The simple things that should just work● Money Makers: How does your business make money/generate value?● What is risky, prone to breakage, overly complicated?If you get these right, then you are on to something greatThis requires tight collaboration with business and tech
  25. 25. 9 - Test Well
  26. 26. Grow a framework that can be used by the whole teamProper abstraction -- e.g. Page Object PatternSingle Responsibility Principle -- do one thing and do it wellAtomic testing -- each test should be able to run and beunderstood independentlyTest under the hood -- you can verify important businesslogic against the underlying API/WebServicesParallelize -- e.g. SauceLabs, DIY w/ SeleniumGrid --SeleniumHQ has a list of all of the players out thereProvide timely, valuable feedback for both Tech & Biz -- e.g. Use CI & sexy reportingRemember that manual/exploratory testing has its place
  27. 27. 10Keep It Lean & Optimize
  28. 28. This is a good way to gauge your success and mine forways to improveContinually assess how youre doingAre you solving problems or just testing for testing sake?Make changes, try, observe, make changes, try, observe…you get the idea!Once you are doing things that are generating value,optimize them, not before
  29. 29. 11 Mailing Meetups Lists Google Blogs Groups StackTwitters IRC Overflow Quora
  30. 30. 12
  31. 31. Learn something that you had to cobble together? Write a blog postSee a question on Stack Overflow that you know theanswer to? Answer itHave an idea worth sharing? Give a talk a local Selenium/Tech MeetupNo Local Selenium Meetup? Start one! Contact to find out how
  32. 32. 12 Steps RecapAssess reality, always start with why, be strategic, testsmarter, pay attention, youve always got a friend, pay itforwardThis can be a linear progression, but it shouldnt beYou can practice any of these steps individually. In fact, Iencourage you toYou dont need to be an expert to pay it forwardYou become an expert by paying it forwardIf you have a strategy and it doesnt seem to be working, belean and revisit thingsAlways be learning and pumping your tech ironAnd dont forget to breathBut most importantly, and I hope this has been readilyapparent. Its less about the tool than you think.
  33. 33.
  34. 34. AppendixRecommendations
  35. 35. Sites● Official Selenium Blog● Sauce Labs Blog● Selenium HQ● Selenium Meetups● Quora● Agile Testing Mailing List● Selenium Users Google Group
  36. 36. Posts● What Makes A Good Test Suite● Testing vs Checking● Get Out of the Quality Assurance Business● Zooming
  37. 37. Books● Bridging the Communication Gap● Specification By Example● Learn To Program● Everyday Scripting with Ruby● The Cucumber Book● How Google Tests Software● Continuous Integration