Selenium, polishing crap or gold?

We all have heard that Selenium QA tests are helpful, in fact they are suppose to be of the highest business value of any type of testing. But, They feel so dirty. Why is that?

Let's take a look:

  1. One we all know already: Selenium is flaaakkkeeyyy! Random failures and edge-cases galore...
  2. It's hard to get test data setup (especially if you're in front-end)
  3. It's hard to teardown the test data as well.
  4. To debug, you gotta restart ALL the way over from the beginning and beg to the Selenium gods that this time it will pass.
  5. The code you are writing will break or become obsolete when the site changes.
  6. For full coverage, you have to run your tests against 50 different browsers for hours and watch half miserably fail because of Selenium edge cases.

Now that my gripe session is over, one question remains... Does the value justify the pain?

Your boss will say "YES!" emphatically... because QA tests are insanely valuable to a business whether we like it or not. Here is why:

They test the whole shebang.

Think about it, one tiny selenium test of someone logging in to an application hits ->

  1. Html/CSS
  2. JavaScript
  3. Server code
  4. Business rules
  5. Database
  6. Caching layers
  7. Cookies/session
  8. A specific browser

That's a lot for one test. try to match that with a unit or JMeter test...

Scale fast and avoid tanking the entire company

We all have seen sphagetti code. For example, I've seen one single javascript file running on 50 different template pages producing literally 1000s of pages for a site generating millions in revenue a day. That file was a train-wreck, but essential to the business.

Scratch unit tests... scratch JMeter... the only solution was QA Selenium tests. We could slowly chip away at fixing the solution while knowing we weren't losing the company in the process due to regressions.

Release with confidence

Being part of a big team can be scary. Getting code to work together takes constant communication, PR reviews, code comments etc. But the biggest solution is to run some QA tests on things, and release when they pass. Puts a smile on the face of every team member.

Etc.

  1. New devs feel safe
  2. Don't have to work as late on friday fixing crap you released.

Question is... how can we make Selenium testing sexy?

  • To start, we need a good combination of generating/configuring/writing tests.
  • We need help managing the scale of testing suites.
  • We need guidance on how to write good BDD assertions.
  • We need teams to work together, from the back to the front-end.
  • We need professionally generated code that avoids flakey tests.
  • We need new technologies that potentially circumvent Selenium entirely.
Group 6Record it…Play it…Generate it…GeneratorsSelector AlgorithmsPrivate modeTest organizationTeamsWorkspacesDedicated supportTest data storageDebugger toolsAdaptable TestsCLI tools and APIWhite-labeled codeVariablesMulti-test playbackManual testsComponents