Eric Li | 0a99391 | 2011-05-17 12:56:25 -0700 | [diff] [blame^] | 1 | = Autotest: Fully automated tests under the linux platform = |
| 2 | |
| 3 | Autotest is a framework for fully automated testing. It is designed primarily to |
| 4 | test the Linux kernel, though it is useful for many other functions such as |
| 5 | qualifying new hardware. It's an open-source project under the GPL and is used |
| 6 | and developed by a number of organizations, including Google, IBM, Red Hat, and |
| 7 | many others. |
| 8 | |
| 9 | Autotest is composed of a number of modules that will help you to do stand alone |
| 10 | tests or setup a fully automated test grid, depending on what you are up to. |
| 11 | A non extensive list of modules is: |
| 12 | |
| 13 | * Autotest client: The engine that executes the tests (dir client). Each |
| 14 | autotest test is a a directory inside (client/tests) and it is represented |
| 15 | by a python class that implements a minimum number of methods. The client |
| 16 | is what you need if you are a single developer trying out autotest and executing |
| 17 | some tests. Autotest client executes ''client side control files'', which are |
| 18 | regular python programs, and leverage the API of the client. |
| 19 | |
| 20 | * Autotest server: A program that copies the client to remote machines and |
| 21 | controls their execution. Autotest server executes ''server side control files'', |
| 22 | which are also regular python programs, but leverage a higher level API, since |
| 23 | the autotest server can control test execution in multiple machines. If you |
| 24 | want to perform tests slightly more complex involving more than one machine you |
| 25 | might want the autotest server |
| 26 | |
| 27 | * Autotest database: For test grids, we need a way to store test results, and |
| 28 | that is the purpose of the database component. This DB is used by the autotest |
| 29 | scheduler and the frontends to store and visualize test results. |
| 30 | |
| 31 | * Autotest scheduler: For test grids, we need an utility that can schedule and |
| 32 | trigger job execution in test machines, the autotest scheduler is that utility. |
| 33 | |
| 34 | * Autotest web frontend: For test grids, A web app, whose backend is written in |
| 35 | django (http://www.djangoproject.com/) and UI written in gwt |
| 36 | (http://code.google.com/webtoolkit/), lets users to trigger jobs and visualize |
| 37 | test results |
| 38 | |
| 39 | * Autotest command line interface: Alternatively, users also can use the |
| 40 | autotest CLI, written in python |
| 41 | |
| 42 | == Getting started with autotest client == |
| 43 | |
| 44 | For the impatient: |
| 45 | |
| 46 | http://autotest.kernel.org/wiki/QuickStart |
| 47 | |
| 48 | == Check out the main project documentation source == |
| 49 | |
| 50 | You can find plenty of information on the autotest wiki |
| 51 | |
| 52 | http://autotest.kernel.org/ |
| 53 | |
| 54 | That also contains references to the project activity |
| 55 | |
| 56 | http://autotest.kernel.org/timeline |
| 57 | |
| 58 | Links to an online view of the version control system |
| 59 | |
| 60 | http://autotest.kernel.org/browser |
| 61 | |
| 62 | == Grabbing the latest source == |
| 63 | |
| 64 | http://autotest.kernel.org/wiki/DownloadSource |
| 65 | |
| 66 | == Hacking and submitting patches == |
| 67 | |
| 68 | http://autotest.kernel.org/wiki/SubmissionChecklist |
| 69 | |
| 70 | == Downloading stable versions == |
| 71 | |
| 72 | http://autotest.kernel.org/wiki/Download |
| 73 | |