Why learn Selenium and Automation for Software Quality Assurance?

January 30, 2013  |  QA

The practice of Quality Assurance is evolving with technology. As websites get more and more complex, testing strategies, tools, and practices need to grow along side. Chances are, if you’re reading this, you’re someone either in the QA field or somehow involved with QA  and have an interesting in learning more about website automation, specifically the very popular Selenium testing tool. Maybe you’re thinking of enhancing you or your department’s skill set. Before we divulge into the specifics of Selenium, let’s understand why we should learn about it in the first place.

Pretend you’re working for an eCommerce site that sells technical books. Development has decided to implement a new feature in the registration process that validates email addresses – that is to say, it verifies that email addresses are real enough. Let’s say that when the user enters their email in the form, a little check appears if it’s a valid email. This is an example of how manual QA would work.

  1. QA gets the new feature
  2. QA tests the feature
    • They fill out the form with a valid email address
    • They fill out the form with an invalid email address
    • They fill out the form with international characters
    • They attempt SQL injections
    • They attempt to run arbitrary code
    • And other various tests
  3. QA approves the feature and it gets deployed to production!

Say this takes an hour. That’s not bad right? But let’s not forget we’re talking about the web, in which case we need to support multiple browsers and environments. So that hour now becomes four hours.

That’s still kind of okay, it’s not exactly forever. However, there’s two major problems with this scenario. We’re assuming a perfect build.

  1. If something is wrong and development needs to implement a fix, QA has to redo everything. This means they have to repeat every single test that they had done before. This is very time consuming (and can be quite boring).
  2. In the future, they might have to test this same functionality again, even if new changes may or may not be directly related. This is also very time consuming, multiplied by the fact that some systems and changes are very complex.

The answer to these problems lies in automation. If tests are automated, they can be redone quicker and at a lower cost (in time, effort, brain power). If we automated the previous scenario, we could severely boost QA’s efficiency. For example, we could be running every single browser doing the same tests in parallel, effectively multiplying our QA work force. Automation really provides a level of testing that is untouchable by manual processes. By using the best tools, QA becomes a vital and useful asset to any website or product.

Now let’s explore a little bit of background on Selenium. Selenium is the de facto tool in website browser automation. By spawning up actual browser instances, Selenium offers the closest experience to a live user on the site and allows automation to give the greatest analysis. Selenium is also supported actively by many programming languages so it’d fit right into any tech stack or skill set. In addition, there’s many libraries and tools that integrate right with Selenium to really power up automated testing. By leveraging Selenium and automation, QA can provide real quality value to a product and team.