Autotest: Fully automated tests under the linux platform
--------------------------------------------------------

Autotest is a framework for fully automated testing. It is designed primarily to
test the Linux kernel, though it is useful for many other functions such as
qualifying new hardware. It's an open-source project under the GPL and is used
and developed by a number of organizations, including Google, IBM, Red Hat, and
many others.

Autotest is composed of a number of modules that will help you to do stand alone
tests or setup a fully automated test grid, depending on what you are up to.
A non extensive list of modules is:

* Autotest client: The engine that executes the tests (dir client). Each
autotest test is a a directory inside (client/tests) and it is represented
by a python class that implements a minimum number of methods. The client
is what you need if you are a single developer trying out autotest and executing
some tests. Autotest client executes ''client side control files'', which are
regular python programs, and leverage the API of the client.

* Autotest server: A program that copies the client to remote machines and
controls their execution. Autotest server executes ''server side control files'',
which are also regular python programs, but leverage a higher level API, since
the autotest server can control test execution in multiple machines. If you
want to perform tests slightly more complex involving more than one machine you
might want the autotest server

* Autotest database: For test grids, we need a way to store test results, and
that is the purpose of the database component. This DB is used by the autotest
scheduler and the frontends to store and visualize test results.

* Autotest scheduler: For test grids, we need an utility that can schedule and
trigger job execution in test machines, the autotest scheduler is that utility.

* Autotest web frontend: For test grids, A web app, whose backend is written in
django (http://www.djangoproject.com/) and UI written in gwt
(http://code.google.com/webtoolkit/), lets users to trigger jobs and visualize
test results

* Autotest command line interface: Alternatively, users also can use the
autotest CLI, written in python


Getting started with autotest client
------------------------------------

For the impatient:

http://autotest.kernel.org/wiki/QuickStart


Check out the main project documentation source
-----------------------------------------------

You can find plenty of information on the autotest wiki

http://autotest.kernel.org/

That also contains references to the project activity

http://autotest.kernel.org/timeline

Links to an online view of the version control system

http://autotest.kernel.org/browser


Grabbing the latest source
--------------------------

http://autotest.kernel.org/wiki/DownloadSource


Hacking and submitting patches
------------------------------

http://autotest.kernel.org/wiki/SubmissionChecklist


Downloading stable versions
---------------------------

http://autotest.kernel.org/wiki/Download

