Tuesday, June 2, 2009

Experience with Web Testing Frameworks

This series of posts details my experiences with Web Testing Frameworks. These are completely personal observations and your mileage may vary. I will write about using Selenium , Canoo Web Test and Tellurium.

Cutting to the end of the chase : We have chosen to stick with Tellurium since it matches our needs the most . In this post I will detail why we chose Tellurium and some of the important concepts of Tellurium. In the next post we will look at an example of using Tellurium for testing


I am not a QA person and most of my testing is from a Development / Unit Testing / Regression testing point of view. One of the main problems we had with a separate QA team trying test automation was that the QA team generally lagged behind the product cycle. Things change in the product and it was difficult for the QA Team to invest in an automation test . We decided to have the development team own the automation tests . We had a framework to run the automtaion tests daily and this detected changes more frequently.

We were looking for a framework that was
  • Easy for the java developers to use , understand and extend
  • Modular and will typically allow changes to be localised
  • Something that can be used with the same java IDE to debug
Other essential attributes were
  • Open source with an active community to support
  • Integration with a Testrunner framework to enable data driven testing

Tellurium fits all of the above. The difficult thing about Tellurium was the difficulty in locating it . Searching in google for Tellurium never yielded for much :-)

The good thing about Tellurium was that it had very good documentation. There are examples with live website (Tellurium's own wiki) which has a sufficient variety and beyond the usual "Hello World" examples. There are complete tests that show integration with Test runners like
  • TestNG
  • JUnit
I am a major fan of TestNG and the examples helped to jumpstart with Tellurium and TestNG.

A major strength of Tellurium which distinguishes it from Selenium is the fact that it allows for separation of UI from the Test framework. This is very important and helps you write maintainable code over a long run. It allows to bundle a page / set of related pages into a UI module and allows to define widgets which can be reused.

Two of the most important concepts of Tellurium are the Table and List UI widgets which help in handling repetitive content. The Container widget also is handy for maintaining a structure.

That completes an introduction to why I chose Tellurium as a testing framework. In the next post I will write about selectors and look at tests using Tellurium

No comments: