From Fedora Project Wiki

(Partial first draft)
 
(22 intermediate revisions by 7 users not shown)
Line 1: Line 1:
AutoQA is an automated test system for Fedora. Its basic design is simple: when certain events occur (a package is built, updates are pushed, a new Rawhide build is available, etc.) autoqa launches some automated tests.
[[Image:Autoqa_logo.png|center]]


== Events and Hooks ==
= Introduction =  
'''AutoQA''' is an automated test system for Fedora.  Its design is simple: when certain events occur, AutoQA launches automated tests.  Events that AutoQA monitors include:


For AutoQA to respond to an event, someone needs to write a "hook" for that event. The first step in creating a new hook is, obviously, to define the event it responds to.
* New packages in the [http://koji.fedoraproject.org koji build system]
* New Fedora updates submitted through [https://admin.fedoraproject.org/updates bodhi]
* Updated package repositories for [[Releases/Rawhide|rawhide]], the current [[Releases/Branched|branched]] release ({{FedoraVersion|long|next}}), and previous Fedora releases
* Updated installable images of the current [[Releases/Branched|branched]] release ({{FedoraVersion|long|next}})


For example, the <code>post-repo-update</code> hook is triggered whenever a Fedora repo is updated. Obviously, any test that will run in response to this event will need to know the URL of the repo that was just updated. (This is a <i>required</i> argument.) Certain repos can't be used properly without other "parent" repos (for example, the Fedora 11 <code>updates</code> repo isn't useful without also knowing the address of the main Fedora 11 repo). So a list of "parent repos" is an <i>optional argument</i> to the tests.
= Get Involved =


The <code>hooks/</code> directory in the <code>autoqa</code> source tree contains the hooks that AutoQA knows about. A hook has five main parts:
Just looking?  Follow the links below for general information on the AutoQA project.


# <code>README</code>
* Examine [http://git.fedorahosted.org/cgit/autoqa.git/tree/tests the current list of tests]
#* describes the event itself and the required (and optional) arguments that will be passed along to the tests.
* Review [http://git.fedorahosted.org/cgit/autoqa.git/tree/events the current test events being monitored]
# <code>hook.py</code>
* Review [https://fedorahosted.org/pipermail/autoqa-results/{{CURRENTYEAR}}-{{CURRENTMONTHNAME}}/thread.html recent test results] or [http://jlaska.wordpress.com/2010/06/01/fedora-package-maintainers-want-test-results/ sign-up for test result notification]
#* python code that is used to parse the test arguments, as described in the <code>README</code> file. This is the formal definition of the test arguments.
# <code>testlist</code>
#* contains the list of test names that will be launched when this hook is triggered.
# <code>control.template</code> and <code>test_class_template.py</code>
#* generic templates for creating new tests that use this hook. See below for more information on writing new tests.
# Watcher
#* This is the code that watches for the event and launches the <code>autoqa</code> harness with the arguments described in <code>README</code> and <code>hook.py</code>.
#* Currently, all existing watchers are scripts that get run periodically by <code>crond</code> to check to see if the event has occurred since the last time it was run. If so, it launches <code>autoqa</code>.
#* In the future this will change to a daemon that waits for notifications about the event - see the [[Messaging SIG]]'s [[Publish Subscribe Notification Proposal]] for further info about that.


Detailed information about implementing new hooks will be found in [[Writing AutoQA Hooks]].
Interested in writing tests?


== The autoqa Harness ==
* Read [[Writing AutoQA Tests]] and [[Verifying AutoQA tests]]
* Should your test require a new method to trigger testing, read [[Writing AutoQA Events and Watchers]] ''(optional)''
* Integrate your test with AutoQA - [[Install and configure AutoQA]]


The autoqa harness is launched by the watchers in response to an event.
How about contributing back to the AutoQA project?
 
* Familiarize yourself with the [[AutoQA_architecture|architecture overview]] and [[AutoQA_Roadmap|development roadmap]]
* Checkout the code -- [http://git.fedorahosted.org/git/?p=autoqa.git;a=summary autoqa.git]
* AutoQA uses the [[Autotest]] test harness, learn more by visiting [[Autotest]]
* AutoQA also has a set of [[AutoQA_Self_Testing|self tests]] that could always be expanded.
 
= Communicate =
 
Please contact us!  We look forward to your ideas and suggestions.
 
* [https://fedorahosted.org/mailman/listinfo/autoqa-devel autoqa-devel] is the mailing list for development discussion of the AutoQA project
* [https://fedorahosted.org/mailman/listinfo/autoqa-results autoqa-results] is where automated test results are submitted.  This is intended for test results review only.
* Talk about AutoQA on the permanent QA IRC channel {{fpchat|#fedora-qa}}
* Visit the project development page at https://fedorahosted.org/autoqa/
 
[[Category:AutoQA]]

Revision as of 13:54, 20 September 2012

Autoqa logo.png

Introduction

AutoQA is an automated test system for Fedora. Its design is simple: when certain events occur, AutoQA launches automated tests. Events that AutoQA monitors include:

  • New packages in the koji build system
  • New Fedora updates submitted through bodhi
  • Updated package repositories for rawhide, the current branched release (Fedora 41), and previous Fedora releases
  • Updated installable images of the current branched release (Fedora 41)

Get Involved

Just looking? Follow the links below for general information on the AutoQA project.

Interested in writing tests?

How about contributing back to the AutoQA project?

Communicate

Please contact us! We look forward to your ideas and suggestions.