One of the key foundations of a modern software development process is the use of automated tests. Automated tests offer many benefits, including:

  • Clearly documented requirements: executable requirements
  • Fast feedback: instant regression
  • Scalability: computers scale better than people
  • Accuracy: computers perform tests more reliably

Properly implementing automated test suites require a combination of tools and process improvements.  Many development teams start with tools such as JUnit/NUnit, and adopt continuous integration tools such as Hudson/Jenkins, TeamCity, or Team Foundation Server.

Use Selenium for web/functional testing, monitoring, and performance testing! 

At some point, the development and/or QA staff begins to look at web (sometimes referred to as functional) tests.  Some organizations have made investments in expensive and complex commercial suites such as QuickTest Pro, but face challenges with successful implementations.  Some of the challenges with these commercial suites include:

  • Challenges integrating these suites into their continuous integration environment
  • Using completely different languages and tools for writing tests than are used by the development team
  • Expensive licensing prohibits widespread adoption in the organization
  • Complex infrastructure implementations place too great a burden on IT resources to maintain
  • Specialized skill sets limit test implementation to a few key staff members

To deal with these challenges, many organizations are turning to the open source web test tool set called Selenium.  Selenium 2 offers many advantages, including:

  • Open source: budget friendly
  • Support for a wide range of browsers: new browsers all the time, include self-updating browsers
  • Drivers available in many languages: Java, C#, Python, etc
  • Supported by cloud vendors: browsers on demand, saving tremendously on infrastructure build out
  • Parallel test execution: run 1,000 integration tests in 15 minutes

Dev9 is the consulting organization behind the open source Selenium QuickStart and parallel-webtest Java projects.  These libraries provide a straight-forward framework for rapidly building and developing web tests.

In addition, Dev9 offers customized training and implementation support for Selenium.

Selenium Implementation

Typically, clients considering web testing already have one or more (sometimes many more!) applications in production.  This technical debt can be overwhelming - software continues to be written without tests, making it hard to keep up, much less provide automated test coverage for existing applications.

We have found that bringing in Dev9 consulting staff to help deal with this technical debt can be an excellent solution. Some clients prefer to work in a hybrid fashion, often in conjunction with training, where our staff pairs directly with existing staff.  Other clients prefer to work in a purely turnkey fashion, in which our staff works at our location building out the test suite (often based on existing manual test plans).

A typical engagement will start with an assessment, developing a project plan, and then convert to an Agile execution model (based on two week sprints).

Selenium Training

Dev9 Selenium Training typically includes the following:

  • Selenium Overview
  • Fundamentals of testing
  • Writing basic Selenium tests
  • Selenium QuickStart configuration
  • Review of modern browsers (including headless browsers)
  • Knowing where to draw the line (what to test, what not to test)

Training duration typically runs between 1-3 days, depending on the team's prior experience with basic software development and web technologies.