SlideShare a Scribd company logo
selenium   Users Anonymous
   34

   Se




                        by Dave Haeffner
Selenium Users Anonymous
Show of hands
How many of you are human?
   100%
How many of you use Selenium?
   Most
Just getting started in test automation?
   40%
Comfortable with test automation? Using it regularly?
   50%
Test automation guru's?
   1-2 people
Development background
   60%
Tech proficient -- know enough to be dangerous?
   15%
Scared to death of tech?
   Some smiles but no one raised their hand
Selenium Users Anonymous
Exercise 1
What are your biggest pain points when it comes to using
Selenium? Or Test Automation in general?

In 5 minutes, write them down

One issue per post-it

Keep it concise

Keep it to yourself
Selenium Users Anonymous
Evolutionary paths of Selenium Suites
Se-IDE
Simple tests captured that can grow into an albatross that
is unmaintainable, brittle, and makes you spit nails. Most
people (hopefully) realize this is not the way to go and
export their tests into a real programming language

Se-RC
What you used to export your Se-IDE tests into. But not
anymore, it's reaching end-of-life.

Se-WebDriver
Behold the future! Pure browser integration (read: fast and
awesome)
Entrees

Breaking/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 neck
Defects caught late in the cycle
Selenium Users Anonymous
Exercise 2
You have 5 minutes

Come to the front of the room with your post-its from
Exercise 1

Post them on the wall

Group like with like
12
1 - Admit You Have a Problem
It's not entirely your fault
Selenium was Built by Developers for Developers. Some
assembly required, oh, and RTFM.

Along the way someone built a Selenium IDE to make it
easy for mere mortals to capture automated tests, while
this got newcomers to use the tool, it reinforced some bad
habits -- causing people to build painful and unmaintainable
test suits

While there is a great community and good documentation,
there is not a cohesive, standard "here you guy" guide... yet

It can be overwhelming for a newcomer. But most times
you duct-tape together a solution to your problem with
answers found in blog posts and stack overflow threads.
2 - Take a deep breath
It's Okay

Take into account that you are doing something difficult

And that you are outside of your comfort zone, and that will
likely not change

But it's okay, people have gone before you

And you have to fail to learn
3 - Try looking at things differently
Try these on for size

Zooming
Be able to "zoom in" deal with the day to day details while
also "zooming out" to see the big picture -- making sure
that both the high and low level are aligned

Effectiveness = Quality x Acceptance
It's much easier to improve quality than it is acceptance.
Where are you spending your effort?

Personas & Motivation
QA's are either very technical or very analytical. Engineers
tend to want to solve problems. Understanding these things
will help you unlock untapped potential.
4 - Pump some Tech iron
Pump you up

I've seen a lot of people who are fearful of technology but
they play on the razor's edge of it. Weird.

Pump some iron. Learn to code. Or least, learn the broad
strokes. It will help you with your "tech comfort".

Resources abound -- books, blogs, meetups, classes,
conferences, etc.

Sharpen your tools
5

Find Your
  Inner
Napoleon,

Develop A
 Strategy
It's less about the tool and more about the people

Think big, keep it simple, capture value

Envision the future and build a roadmap to it

Some example questions to ask
Type 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?
6

Break
Down
 The
 Wall
Make friends with the Developers -- work together!

Choose a technology stack for building a framework that
makes sense for you and your team -- this is a topic in and
of itself

To start, focus on you and your team's context -- e.g.
strengths, comfort, confidence, and excitement

Also consider your company's current tech stack

Put it to the team to try and decide

Also, have them give it a fun name -- this stuff matters!
7 - Learn the
                terrain
Try stuff

             Commit and make progress

Learn what you need along the way to become effective

        Fill in your knowledge gaps as you go

         And don't be afraid to ask questions
8 - Test Less
Perform a Pareto analysis. It posits that 80% of the value
comes from 20% of the inputs -- and it's correct. Consider
this a power law.

A good heuristic to follow for this -- 3 buckets.

There are 3 things you should care about when it comes to
testing: 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 great

This requires tight collaboration with business and tech
9 - Test Well
Grow a framework that can be used by the whole team

Proper abstraction -- e.g. Page Object Pattern

Single Responsibility Principle -- do one thing and do it well

Atomic testing -- each test should be able to run and be
understood independently

Test under the hood -- you can verify important business
logic against the underlying API/WebServices

Parallelize -- e.g. SauceLabs, DIY w/ SeleniumGrid --
SeleniumHQ has a list of all of the players out there

Provide timely, valuable feedback for both Tech & Biz -- e.
g. Use CI & sexy reporting

Remember that manual/exploratory testing has its place
10

Keep It Lean
 & Optimize
This is a good way to gauge your success and mine for
ways to improve

Continually assess how you're doing

Are 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
                           Stack
Twitters    IRC            Overflow
                   Quora
12
Learn something that you had to cobble together?
   Write a blog post

See a question on Stack Overflow that you know the
answer to?
   Answer it

Have an idea worth sharing?
  Give a talk a local Selenium/Tech Meetup

No Local Selenium Meetup?
   Start one!
   Contact ashley@saucelabs.com to find out how
12 Steps Recap
Assess reality, always start with why, be strategic, test
smarter, pay attention, you've always got a friend, pay it
forward

This can be a linear progression, but it shouldn't be
You can practice any of these steps individually. In fact, I
encourage you to
You don't need to be an expert to pay it forward
You become an expert by paying it forward
If you have a strategy and it doesn't seem to be working, be
lean and revisit things
Always be learning and pumping your tech iron
And don't forget to breath

But most importantly, and I hope this has been readily
apparent. It's less about the tool than you think.
@TourDeDave


dave@arrgyle.com
Appendix
Recommendations
Sites
●   Official Selenium Blog
●   Sauce Labs Blog
●   Selenium HQ
●   Selenium Meetups
●   Quora
●   Agile Testing Mailing List
●   Selenium Users Google Group
Posts
●   What Makes A Good Test Suite
●   Testing vs Checking
●   Get Out of the Quality Assurance Business
●   Zooming
Books
● Bridging the Communication Gap
● Specification By Example
● Learn To Program
● Everyday Scripting with Ruby
● The Cucumber Book
● How Google Tests Software
● Continuous Integration

More Related Content

Selenium Users Anonymous

  • 1. selenium Users Anonymous 34 Se by Dave Haeffner
  • 3. Show of hands How many of you are human? 100% How many of you use Selenium? Most Just getting started in test automation? 40% Comfortable with test automation? Using it regularly? 50% Test automation guru's? 1-2 people Development background 60% Tech proficient -- know enough to be dangerous? 15% Scared to death of tech? Some smiles but no one raised their hand
  • 5. Exercise 1 What are your biggest pain points when it comes to using Selenium? Or Test Automation in general? In 5 minutes, write them down One issue per post-it Keep it concise Keep it to yourself
  • 7. Evolutionary paths of Selenium Suites Se-IDE Simple tests captured that can grow into an albatross that is unmaintainable, brittle, and makes you spit nails. Most people (hopefully) realize this is not the way to go and export their tests into a real programming language Se-RC What you used to export your Se-IDE tests into. But not anymore, it's reaching end-of-life. Se-WebDriver Behold the future! Pure browser integration (read: fast and awesome)
  • 8. Entrees Breaking/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
  • 9. Desserts Manual testing as a crutch QA as a bottle neck Defects caught late in the cycle
  • 11. Exercise 2 You have 5 minutes Come to the front of the room with your post-its from Exercise 1 Post them on the wall Group like with like
  • 12. 12
  • 13. 1 - Admit You Have a Problem
  • 14. It's not entirely your fault Selenium was Built by Developers for Developers. Some assembly required, oh, and RTFM. Along the way someone built a Selenium IDE to make it easy for mere mortals to capture automated tests, while this got newcomers to use the tool, it reinforced some bad habits -- causing people to build painful and unmaintainable test suits While there is a great community and good documentation, there is not a cohesive, standard "here you guy" guide... yet It can be overwhelming for a newcomer. But most times you duct-tape together a solution to your problem with answers found in blog posts and stack overflow threads.
  • 15. 2 - Take a deep breath
  • 16. It's Okay Take into account that you are doing something difficult And that you are outside of your comfort zone, and that will likely not change But it's okay, people have gone before you And you have to fail to learn
  • 17. 3 - Try looking at things differently
  • 18. Try these on for size Zooming Be able to "zoom in" deal with the day to day details while also "zooming out" to see the big picture -- making sure that both the high and low level are aligned Effectiveness = Quality x Acceptance It's much easier to improve quality than it is acceptance. Where are you spending your effort? Personas & Motivation QA's are either very technical or very analytical. Engineers tend to want to solve problems. Understanding these things will help you unlock untapped potential.
  • 19. 4 - Pump some Tech iron
  • 20. Pump you up I've seen a lot of people who are fearful of technology but they play on the razor's edge of it. Weird. Pump some iron. Learn to code. Or least, learn the broad strokes. It will help you with your "tech comfort". Resources abound -- books, blogs, meetups, classes, conferences, etc. Sharpen your tools
  • 21. 5 Find Your Inner Napoleon, Develop A Strategy
  • 22. It's less about the tool and more about the people Think big, keep it simple, capture value Envision the future and build a roadmap to it Some example questions to ask Type 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?
  • 24. Make friends with the Developers -- work together! Choose a technology stack for building a framework that makes sense for you and your team -- this is a topic in and of itself To start, focus on you and your team's context -- e.g. strengths, comfort, confidence, and excitement Also consider your company's current tech stack Put it to the team to try and decide Also, have them give it a fun name -- this stuff matters!
  • 25. 7 - Learn the terrain
  • 26. Try stuff Commit and make progress Learn what you need along the way to become effective Fill in your knowledge gaps as you go And don't be afraid to ask questions
  • 27. 8 - Test Less
  • 28. Perform a Pareto analysis. It posits that 80% of the value comes from 20% of the inputs -- and it's correct. Consider this a power law. A good heuristic to follow for this -- 3 buckets. There are 3 things you should care about when it comes to testing: 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 great This requires tight collaboration with business and tech
  • 29. 9 - Test Well
  • 30. Grow a framework that can be used by the whole team Proper abstraction -- e.g. Page Object Pattern Single Responsibility Principle -- do one thing and do it well Atomic testing -- each test should be able to run and be understood independently Test under the hood -- you can verify important business logic against the underlying API/WebServices Parallelize -- e.g. SauceLabs, DIY w/ SeleniumGrid -- SeleniumHQ has a list of all of the players out there Provide timely, valuable feedback for both Tech & Biz -- e. g. Use CI & sexy reporting Remember that manual/exploratory testing has its place
  • 31. 10 Keep It Lean & Optimize
  • 32. This is a good way to gauge your success and mine for ways to improve Continually assess how you're doing Are 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
  • 33. 11 Mailing Meetups Lists Google Blogs Groups Stack Twitters IRC Overflow Quora
  • 34. 12
  • 35. Learn something that you had to cobble together? Write a blog post See a question on Stack Overflow that you know the answer to? Answer it Have an idea worth sharing? Give a talk a local Selenium/Tech Meetup No Local Selenium Meetup? Start one! Contact ashley@saucelabs.com to find out how
  • 36. 12 Steps Recap Assess reality, always start with why, be strategic, test smarter, pay attention, you've always got a friend, pay it forward This can be a linear progression, but it shouldn't be You can practice any of these steps individually. In fact, I encourage you to You don't need to be an expert to pay it forward You become an expert by paying it forward If you have a strategy and it doesn't seem to be working, be lean and revisit things Always be learning and pumping your tech iron And don't forget to breath But most importantly, and I hope this has been readily apparent. It's less about the tool than you think.
  • 39. Sites ● Official Selenium Blog ● Sauce Labs Blog ● Selenium HQ ● Selenium Meetups ● Quora ● Agile Testing Mailing List ● Selenium Users Google Group
  • 40. Posts ● What Makes A Good Test Suite ● Testing vs Checking ● Get Out of the Quality Assurance Business ● Zooming
  • 41. Books ● Bridging the Communication Gap ● Specification By Example ● Learn To Program ● Everyday Scripting with Ruby ● The Cucumber Book ● How Google Tests Software ● Continuous Integration