From Fedora Project Wiki

No edit summary
(obsolete)
(23 intermediate revisions by 8 users not shown)
Line 1: Line 1:
{{draft}}
{{admon/important|This project is obsolete|We're working on replacing this project with [[Taskotron]]. AutoQA is no longer being developed.}}
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.


== Hooks ==
[[Image:Autoqa_logo.png|center]]


AutoQA defines "hooks" for events that we are interested in. A hook basically consists of:
= Introduction =
* A definition of the event we're watching for
'''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:
* A Watcher program to monitor for the event and gather arguments needed for the tests
* Code to handle the arguments passed from the watcher
* A list of tests to run when the hook is triggered
* Template files for writing new tests for this hook


=== Defining Events ===
* 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 AutoQA to respond to an event, someone needs to create a "hook" for that event. The first step in creating a new hook is, obviously, to define the event itself.
See '''[http://autoqa.fedoraproject.org AutoQA results web interface]'''.


For example, the <code>post-repo-update</code> hook is triggered whenever a Fedora repo is updated. The repo update is the event, and Obviously, any <code>post-repo-update</code> test needs to know the URL of the repo that was just updated. (This is an example of a ''required'' 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 ''optional'' argument to the tests.
= Get Involved =


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


The next part of a hook is the Watcher. This is a program that watches for the event and launches the autoqa harness when the event occurs. The Watcher is responsible for filling in all the optional arguments for the hook and passing that information along to autoqa.
* Examine [http://git.fedorahosted.org/cgit/autoqa.git/tree/tests the current list of tests]
* Review [http://git.fedorahosted.org/cgit/autoqa.git/tree/events the current test events being monitored]
* 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]


=== Test arguments ===
Interested in writing tests?


The autoqa test launcher needs to know how to process the arguments gathered by the watcher
* 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]]


More detailed information about implementing new hooks can be found in [[Writing AutoQA Hooks]].
How about contributing back to the AutoQA project?


== The autoqa Harness ==
* 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.


The autoqa harness is launched by the watchers in response to an event. It's basically just a python script, <code>/usr/bin/autoqa</code>, which handles the arguments passed by the watcher and schedules the appropriate tests to be run in autotest.
= Communicate =


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


Autotest is "a framework for automated testing". It handles scheduling test jobs from the job queue, putting the test code onto the appropriate test machine, running the test, and gathering the test results for later examination. For more information see [[Autotest]].
* [https://admin.fedoraproject.org/mailman/listinfo/qa-devel qa-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.
== Tests ==
* Talk about AutoQA on the permanent QA IRC channel {{fpchat|#fedora-qa}}
 
* Visit the project development page at https://fedorahosted.org/autoqa/
AutoQA tests consist of some test metadata, some setup and test reporting code, and the test itself - which may be a pre-existing test or a new test written specifically for AutoQA.
 
The test results are reported back to the [[Autotest]] system and can be examined through its web interface. Tests can also opt to report their results in other ways - commonly by sending email to the [http://fedorahosted.org/mailman/listinfo/autoqa-results autoqa-results] mailing list.  
 
For more detailed information about AutoQA tests, see [[Writing AutoQA Tests]].


[[Category:AutoQA]]
[[Category:AutoQA]]

Revision as of 15:38, 20 January 2014

Important.png
This project is obsolete
We're working on replacing this project with Taskotron. AutoQA is no longer being developed.
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)

See AutoQA results web interface.

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.