selenium Users Anonymous 34 Se by Dave Haeffner
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
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
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)
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
Desserts Manual testing as a crutch QA as a bottle neckDefects caught late in the cycle
Exercise 2You have 5 minutesCome to the front of the room with your post-its fromExercise 1Post them on the wallGroup like with like
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.
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
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.
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
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?
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!
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
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
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
11 Mailing Meetups Lists Google Blogs Groups StackTwitters IRC Overflow Quora
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 firstname.lastname@example.org to find out how
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.