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
For the impatient:
You can find plenty of information on the autotest wiki