Tellurium (software)
Encyclopedia
The Tellurium Automated Testing Framework is a UI module-based web automated testing framework. is a portable software testing
Software testing
Software testing is an investigation conducted to provide stakeholders with information about the quality of the product or service under test. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software...

 framework
Software framework
In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by user code, thus providing application specific software...

 for web applications that runs on top of Selenium
Selenium (software)
Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language . It also provides a test domain-specific language to write tests in a number of popular programming languages, including...

. Tellurium tests are written in Groovy and pure DSL scripts. Tellurium supports both TestNG
TestNG
- Features :TestNG features include:* Flexible test configuration.* Support for data-driven testing .* Support for multiple instances of the same test class * Support for parameters....

 and JUnit
JUnit
JUnit is a unit testing framework for the Java programming language. JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks collectively known as xUnit that originated with SUnit....

 unit testing frameworks.

Tellurium is an open source project licensed under Apache License 2. It is hosted on Google Code. It was created by Georgia Institute of Technology Ph.D. graduate Jian Fang, whose degree is in Electrical and Computer Engineering.

Tellurium Core

Tellurium Core is the flagship project of the tellurium team. Tellurium runs on top of Selenium to provide the following features not found in the selenium project:
  • UI module based tests
  • Object to Locator Mapping (OLM)
  • Composite Locators
  • Domain Specific Language for UI module definition
  • Uses Groovy - a powerful dynamic language built on top of java
  • Data driven testing


UI modules are the backbone of any Tellurium test. A UI module is used to define the html found on the page you are testing, but unlike selenium which uses xpath
XPath
XPath is a language for selecting nodes from an XML document. In addition, XPath may be used to compute values from the content of an XML document...

 and css
CSS
-Computing:*Cascading Style Sheets, a language used to describe the style of document presentations in web development*Central Structure Store in the PHIGS 3D API*Closed source software, software that is not distributed with source code...

 to define these elements, Tellurium uses a DSL which allows you not only to define the elements on the page, but also their relationships to each other.

Tellurium tests can be written in either java or groovy. You have a choice of using either TestNG or JUnit as the testing container. Writing a selenium test starts with writing the UI Module DSL, which can be either done by hand, or using Tellurium's firefox plugin Trump.

The Santa Algorithm in Tellurium 0.7.0 and higher improves the test robustness by locating the whole user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

 module at the run-time DOM
Document Object Model
The Document Object Model is a cross-platform and language-independent convention for representing and interacting with objects in HTML, XHTML and XML documents. Aspects of the DOM may be addressed and manipulated within the syntax of the programming language in use...

. The UI module group locating basic flow is illustrated in the following diagram in the link. The Algorithm is named Santa because most of the design and coding work were completed during the Christmas season in 2009. Previously, up to Tellurium 0.6.0, it was required that Tellurium Core to generate run-time locators based on the UI module definition and then pass Selenium
Selenium (software)
Selenium is a portable software testing framework for web applications. Selenium provides a record/playback tool for authoring tests without learning a test scripting language . It also provides a test domain-specific language to write tests in a number of popular programming languages, including...

 commands to the Selenium core to locate each individual UI element. This procedure can be illustrated by the following diagram.

Tellurium UI Model Plugin

Tellurium UI Model Plugin, or Trump is a Firefox plugin to automatically create UI modules for users. Using Trump, you can click on elements of the page, and then generate the UI Module DSL. You also have the ability to save the resulting DSL to a groovy class, ready to be used by your tests.

Testing approaches

Most existing web testing frameworks primarily focus on individual UI elements such as links and buttons. Tellurium takes a new approach to automated web-testing through the concept of the UI module. Objects are used to encapsulate web UI elements so that manually generalizing and refactoring of the UI locators is not required. The UI module is simply a composite UI object consisting of nested basic UI objects. The adoption of the UI module makes Tellurium expressive and easy to understand in the context of tests.

The framework runs in two modes. The first mode is to work as a wrapper to the Selenium framework. That is to say, the Tellurium core generates the runtime locator based on the UI object's attributes in a UI module. The generated runtime locator is then passed in the Selenium call to the Selenium core with Tellurium extensions.

See also

  • Acceptance testing (also referred to as functional testing)
  • Performance engineering
    Performance Engineering
    Performance engineering within systems engineering, encompasses the set of roles, skills, activities, practices, tools, and deliverables applied at every phase of the Systems Development Life Cycle which ensures that a solution will be designed, implemented, and operationally supported to meet the...

  • Performance testing
    Performance testing
    In software engineering, performance testing is in general testing performed to determine how a system performs in terms of responsiveness and stability under a particular workload...

  • Regression testing
    Regression testing
    Regression testing is any type of software testing that seeks to uncover new errors, or regressions, in existing functionality after changes have been made to a system, such as functional enhancements, patches or configuration changes....


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK