Uttk - Unified Test Tool Kit

Unified Test Tool Kit, aka Uttk, is designed to ease the test stage of the development of your projects.

Testing is as important as design and implementation of a project. But it’s very cumbersome to write tests and tester scripts. That’s why a project such as Uttk can help you. It is written in Ruby, which is a high level object oriented scripting language. Unified Test Tool Kit allows two ways of test writing: a configuration file way (using YAML: an XML plain text format) and a class extension way where you can extend an already made class to specialize it for your own project case.

Uttk’s philosophy follows the principle that you can always extend already made test strategy to specialize/extend it. Initially, Uttk comes with a few test strategies and provides specially, abstract test strategies. Thus, Uttk will become bigger only by contributions from its users who publish their test strategies. At the end, it will provide enough test strategies that almost everybody will find the test strategy he needs.

Uttk comes with a set of classic test strategies, statistics computation, a test suite manager, a loader architecture, and a back-end that supports a powerful filtering system.

Previous releases were shipped with a distributed mode. This is no longer the case. Uttk’s architecture has changed and the former distributed mode doesn’t work any more to be almost rewritten from scratch. That’s why we decided to not include it in this release. It will be back soon!

Roadmap

  • If you want to use Uttk to test your command line based program, see the Uttk::Strategies::Cmd strategy documentation.

  • If you want to use Uttk to wrap your unit test suite, see the Uttk::Strategies::RUnit strategy documentation.

  • If you want to try writing your own strategy, see the Uttk::Strategies module documentation.

  • If you want to try writing your own loader, see the Uttk::Loaders module documentation.

  • If you want to try writing your own dumper, see the Uttk::Dumpers module documentation.

  • If you want to try writing your own filter, see the Uttk::Filters module documentation.

  • If you want to try writing your own filter, see the Uttk::Weights module documentation.

  • If you want to use Uttk as a library and to write your own driver, see the Uttk module documentation.

Usage

Uttk is invoked from the command line using:

% uttk <options> [files...]

Strategies described in the files are instantiated and run. The files format must follow the one the chosen loader understand. By default, Uttk uses the YAML loader. Use the -L option to use another loader.

You can have a description of all Uttk’s options using this command:

% uttk --long-help

A shorter help message is printed by:

% uttk -h

Uttk can show you a list of all dynamic strategies available, this way:

% uttk --strategy-list

If you want to have a description of all the available attributes of a given strategy, use this command:

% uttk -H <the-given-strategy>

If you want to see the list of all the available loader, type this command:

% uttk -L

For the filters/dumpers do that:

% uttk -F

And, for weight classes:

% uttk -W

To set the level of severity of the Uttk’s logger use the -d option. Without argument, it will show you all the available levels:

% uttk -d

Otherwise, give a correct level as argument to the -d option:

% uttk -d debug

By default, the severity level is fatal.

Examples

Some examples are available in the test/examples directory. These examples are written for the default loader of Uttk (the YAML loader). If you want to learn more about YAML, see its cookbook at yaml4r.sourceforge.net/cookbook/.

A detailed description of these examples is available in the test/examples/README file.

Stable and unstable parts

Uttk is still under development. Thus, there are some part of it which are still unstable. Of course, even some stable part are not bug free: Perfection doesn’t exist!

  • Stable parts:

    • The loaders, filters, dumpers, strategies and logger architecture.

    • The YAML and Ruby loader.

    • The YAML, XML and HTML dumper.

    • All strategies are considered stable except if a special warning is mentioned in its documentation.

  • Unstable parts:

    • The timeout features provided by the abstract strategy Strategy tend to be stable but it may block some times. You can use it, since it works most of the time.

    • The pre,post_assertion features provided by the abstract strategy Strategy doesn’t work yet.

    • Some old YAML loader are still in the repository, for backward compatibility reasons, but we discourage their usage.

Repository tree description

NEWS

What’s new in each release of Uttk.

AUTHORS

Present all authors and what they have done for Uttk.

bin

Contains all drivers provided by Uttk.

ChangeLog

Keep track of the changes of Uttk for all revisions.

COPYING

Describe the license.

LGPL

The Gnu Lesser General Public license.

GUIDELINES

Some guide lines for the developers.

doc

Documentation directory.

doc/html

RDoc output directory.

doc/demo

Some tutorials.

doc/presentation

Slides of presentation.

lib

Contains the library.

misc

Some useful miscellaneous scripts when developing Uttk.

NORM

Everybody who write code for Uttk must follow the rules written in this file.

Rakefile

For rubygem, doc generation and more generaly packaging operations.

README

This file.

script

Useful script for the end users and the developers similar to Rails script directory).

test

Contains Uttk’s tests.

TODO

What maintainers have to do.

VERSION

The current version of Uttk.

Bugs reports, features requests, and known bugs

If you want to send us a bug report or a feature request, have a look at the TODO file.

An exhaustive list of known bugs is available at dev.uttk.org.

License

Uttk is copyright © 2004-2005 Uttk’s maintainers. It is free software, and may be redistributed under the terms specified in the COPYING file of the Uttk distribution. Uttk’s maintainers refers to the people mentioned in the AUTHORS file.

– Uttk’s maintainers